Solving ODE system on matlab
Infos
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Afficher commentaires plus anciens
I am trying to solve a system ODEs with no specific initial values and I am not sure how to go about it. Here is what I have so far. I'm trying to use ODE45 and solve with several initial conditions to have an idea of how the system ( with 3 equations) behaves. Thank you in advance!!
function Untitled
t= 1:0.5:50;
a=.004;
b=0.5;
c=1;
initial=[a b c];
[~,y]= ode45(@model,t,initial)
plot3(y(1),y(2),y(3));
end
function y=model(~,y)
y=zeros(3,1);
dy(1)=y(1)*(1-y(1)-2*y(2)-y(3)/2);
dy(2)=y(2)*(1-y(2)-2*y(3)-y(1)/2);
dy(3)=y(3)*(1-y(3)-2*y(1)-y(2)/2);
end
Réponses (1)
James Tursa
le 21 Avr 2016
Your plot3 only picks off three points to plot ... it does not plot all of the results. Also, your model derivative function sets y to 0 and then returns that, rather than returning the dy you calculate. So with those changes maybe you can use this:
function Untitled
t= 1:0.5:50;
a=.004;
b=0.5;
c=1;
initial=[a b c];
[~,y]= ode45(@model,t,initial);
figure; plot3(y(:,1),y(:,2),y(:,3));grid on
figure; plot(t,y(:,1),t,y(:,2),t,y(:,3));grid on
end
function dy=model(~,y)
dy=zeros(3,1);
dy(1)=y(1)*(1-y(1)-2*y(2)-y(3)/2);
dy(2)=y(2)*(1-y(2)-2*y(3)-y(1)/2);
dy(3)=y(3)*(1-y(3)-2*y(1)-y(2)/2);
end
Cette question est clôturée.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!