Using ODE45 with sine function
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a preliminary simple system with the code as follows. I keep getting an error for 'Not enought input arguments'. I'm not really sure what is going wrong here.
function Fv=funsys(t,Y)
Fv(1,1)=2*Y(1)+Y(2)+5*Y(3)+exp(-2*t);
Fv(2,1)=-3*Y(1)-2*Y(2)-8*Y(3)+2*exp(-2*t)-cos(3*t);
Fv(3,1)=3*Y(1)+3*Y(2)+2*Y(3)+cos(3*t);
[tv,Yv]=ode23(@(t,Y)funsys(t,Y),[0 pi/2],[1;-1;0]);
plot(tv,Yv)
Any help would be appreciated.
2 commentaires
James Tursa
le 2 Déc 2021
Is the code you posted all in one file as written? You should not have the ode23 and plot code inside the funsys function.
Réponses (1)
Star Strider
le 2 Déc 2021
‘... is there any way to write ode and plot within the same file?’
See if this produces the desired result —
[tv,Yv]=ode23(@(t,Y)funsys(t,Y),[0 pi/2],[1;-1;0]);
figure
plot(tv,Yv)
grid
legend(compose('Y_{%d}',1:size(Yv,2)), 'Location','best')
function Fv=funsys(t,Y)
Fv(1,1)=2*Y(1)+Y(2)+5*Y(3)+exp(-2*t);
Fv(2,1)=-3*Y(1)-2*Y(2)-8*Y(3)+2*exp(-2*t)-cos(3*t);
Fv(3,1)=3*Y(1)+3*Y(2)+2*Y(3)+cos(3*t);
end
All in one script (.m) file.
.
0 commentaires
Voir également
Catégories
En savoir plus sur Ordinary Differential Equations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
