New Matlab user. My equations say I do not have enough inputs. How do I correct this?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Alex F
le 14 Sep 2018
Modifié(e) : Walter Roberson
le 15 Sep 2018
tspan = linspace(0,15,201);
y0=[0 15];
[t, y] = ode15s(f,tspan,y0);
function dydt=f(t,y)
dydt(1)=1.57-.00145 *y(1)*y(2);
dydt(2)=7.30-.53*y(1)-.00145*y(1)*y(2);
plot(t,y);
end
0 commentaires
Réponse acceptée
madhan ravi
le 14 Sep 2018
Modifié(e) : madhan ravi
le 14 Sep 2018
tspan = linspace(0,15,201);
y0=[0 ;15];
[t, y] = ode15s(@f1,tspan,y0)
plot(t,y(:,1),'-o')
hold on
plot(t,y(:,2),'-ob')
function dydt=f1(t,y)
dydt(1)=1.57-.00145 *y(1)*y(2);
dydt(2)=7.30-.53*y(1)-.00145*y(1)*y(2);
dydt=[dydt(1);dydt(2)] %added this line to make sure it’s a column vector.
end
Note:See the function file attached.
Use
[t, y] = ode15s(@f1,tspan,y0)
Instead of
[t, y] = ode15s(f1,tspan,y0)
6 commentaires
madhan ravi
le 14 Sep 2018
Modifié(e) : madhan ravi
le 14 Sep 2018
@f indicates that the function is called with its inputs. I don’t know why you’re getting empty graph but I didn’t have any problem getting the graph.
Stephen23
le 15 Sep 2018
"Is there a reason why the @f is used?"
Because ode15s requires the first input to be a function handle:
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Ordinary Differential Equations dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!