用ode45解微分方程老是提示错误,求帮助。

下面是计算时使用的程序
M: function y=vdp(t,x)
y=[x(2);-929*x(1)^2-162*cos(100*t)]
计算程序:
>> x0=[0.002;0001];t_final=20;
>> options=odeset('RelTol',10^-20,'AbsTol',10^-20);
>> [t1,y1]=ode45('vdp',[0,t_final],x0,options); plot(t1,y1)

 Accepted Answer

lodaki
lodaki on 22 Nov 2022

0 votes

可以缩小t的区间,t在0.6左右,就是你上面提示的0.67--开始,x2迅速减少。
所以时间过长的话可能不能显示微分方程变化。
x0=[0.002;0001];
ode45(@vdp,[0:0.001:0.6],x0);
grid on

More Answers (0)

Categories

Find more on 编程 in Help Center and File Exchange

Tags

Asked:

on 22 Nov 2022

Answered:

on 22 Nov 2022

Community Treasure Hunt

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

Start Hunting!