用matlab 6.5 求著名的Van der Pol方程 的解,并画出解的图形.

立志做鬼嫁 1年前 已收到1个回答 举报

tatoo上海 幼苗

共回答了17个问题采纳率:100% 举报

function xdot=vdp(t,x)
%求著名的Van Der Pol 方程x"+( x^2 −1)x' + x = 0的数值解并绘制其时间响应
%曲线和状态轨迹图
%1.演化为状态方程
%令x1 = x',x2= x, 把x"+( x^2 −1)x' + x = 0写成状态方程x1'=(1-x2^2)*x1-x2,x2'=x1
xdot=zeros(2,1);%使xdot 成为二元零向量采用列向量以便被matlab 其他指令调用
xdot(1)=(1-x(2)^2)*x(1)-x(2);
xdot(2)=x(1);
将上面语句保存为vdp.m后,在窗口中输入下面语句看结果:
t0=0;tf=20;x0=[0,0.25]';[t,x]=ode45('vdp',[t0,tf],x0);subplot(1,2,1),plot(t,x(:,1),':b',t,x(:,2),'-r'),
legend('速度','位移'),subplot(1,2,2),plot(x(:,1),x(:,2))

1年前

4
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.027 s. - webmaster@yulucn.com