Using ODE45 with sine function
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
James Tursa
2021-12-2
Is the code you posted all in one file as written? You should not have the ode23 and plot code inside the funsys function.
回答(1 个)
Star Strider
2021-12-2
‘... 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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
