Simultaneously numerically integrate multiple ODE's in MATLAB

2 views (last 30 days)
I was trying to solve a system of muptiple ODEODE at the same time in Matlab but wasn't sure how should I solve for that.
So if I have
dy1/dx=sum of yi , i from 1 to j
dy2/dx=y1^2-y2*sum of yi, i from 1 to j
dy3/dx=y1*y2+y2^2- y3*sum of yi, i from 1 to j
and given initial condition that y1(0)=1 other yi=0 (i>1)
Could anyone have me with this please? Thank you!
  2 Comments
Rong Song
Rong Song on 5 Oct 2019
K=10;
% Initial Conditio
for k=1:K
if k==1
yi(k)=1;
else
yi(k)=0;
end
end
b=0;
d=20;
% y include y1 y2 y3 y4...to yK
y=zeros(1,100);
for k=1:K
if k==1
y=e(k);
dydd{k}=@(y,t) -y(k)*sum(y);
else
y=e(k);
for j=1:k-1
b=b+y(j)*y(k-j);
end
dydd{k}=@(y,t) 1/(2*y(k))*b-y(k)*sum(y);
end
end
interval=linspace(0,d,100);
[t,y]=ode45(dydd,interval,yi);

Sign in to comment.

Answers (2)

Pavel Osipov
Pavel Osipov on 5 Oct 2019
"I was trying to solve a system of multiple orders at the same time in Matlab but wasn't sure how should I solve for that". "is that right?"
Then imagine the left part as a system of equations of the 1st order and solve in Matlab in vector form. Good luck!
  1 Comment
Rong Song
Rong Song on 5 Oct 2019
Do you mean treat the y1 y2... yi as a vector ? But ode45 doesn't allow me to integrate a vector.

Sign in to comment.


Pavel Osipov
Pavel Osipov on 6 Oct 2019
ode45.PNG
odefun.PNG

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!