Silly question but how can I plot a simple ODE like the following?
My ODE is:
dy/dt=1-(t/n)-y
where n is an array
n=[1 2 3 5 Inf]

 Accepted Answer

darova
darova on 3 May 2020
Edited: darova on 3 May 2020
Use for loop to solve equation 5 times for each n
n = [1 2 3 5 inf];
f = @(t,y,n) 1-t/n+y;
for i = 1:length(n)
[t,y] = ode45(f,[0 5],ic,[],n(i));
line(t,y)
end

6 Comments

Ameer Hamza
Ameer Hamza on 3 May 2020
Edited: Ameer Hamza on 3 May 2020
This syntax of ode45 is obsolete and no longer documented. Using new documented syntax will avoid any confusion for the readers
n = [1 2 3 5 inf];
f = @(t,y,n) 1-t/n-y;
ic = 1;
for i = 1:length(n)
[t,y] = ode45(@(t,y) f(t,y,n(i)), [0 5], ic);
line(t,y)
end
Even for the obsolete syntax, the correct line is
[t,y] = ode45(f,[0 5], ic, [], n(i));
darova
darova on 3 May 2020
Don't know what you are talking about
Sorry!! I pasted the wrong code.
Is there a way to make each line a different color?
Of course
line(t,y,'color',rand(1,3))
Thank you, kindly, sir!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!