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]

 Akzeptierte Antwort

darova
darova am 3 Mai 2020
Bearbeitet: darova am 3 Mai 2020

0 Stimmen

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 Kommentare

Ameer Hamza
Ameer Hamza am 3 Mai 2020
Bearbeitet: Ameer Hamza am 3 Mai 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 am 3 Mai 2020
Don't know what you are talking about
Ameer Hamza
Ameer Hamza am 3 Mai 2020
Sorry!! I pasted the wrong code.
Carlos Ojeda
Carlos Ojeda am 3 Mai 2020
Is there a way to make each line a different color?
darova
darova am 3 Mai 2020
Of course
line(t,y,'color',rand(1,3))
Carlos Ojeda
Carlos Ojeda am 3 Mai 2020
Thank you, kindly, sir!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by