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]

 Risposta accettata

darova
darova il 3 Mag 2020
Modificato: darova il 3 Mag 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 Commenti

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

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by