作业帮 > 综合 > 作业

matlab 画图问题(与常微分方程有关)

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/19 05:15:28
matlab 画图问题(与常微分方程有关)
这样的一个常微分方程:(关于z1,z2,z3)
z1导数=w*z2
z2导数=-w*z1+v
z3导数=w
其中:
v=-k1*tanh(z(2));
w=-k2*tanh(z(3))+k3*tanh(z(1))*sin(t);
k1=1;k2=1;k3=0.5;
假设初值为: [0.6,-0.2,0.5]
现在需要在一张图内画出v,w随着时间的变化曲线,时间为[0,90],步长0.01;
谢谢了!
matlab 画图问题(与常微分方程有关)
这是主程序
t=0:0.01:90;
[t,z]=ode45('myfunc',t,[0.6,-0.2,0.5]);
k1=1;k2=1;k3=0.5;
v=-k1*tanh(z(:,2));
w=-k2*tanh(z(:,3))+k3*tanh(z(:,1)).*sin(t);
plot(t,v,t,w)
legend('v','w')
这是调用的程序
function dz=myfunc(t,z)
k1=1;k2=1;k3=0.5;
v=-k1*tanh(z(2));
w=-k2*tanh(z(3))+k3*tanh(z(1))*sin(t);
dz=zeros(3,1);
dz(1)=w*z(2);
dz(2)=-w*z(1)+v;
dz(3)=w;
祝你学习愉快!