作业帮 > 数学 > 作业

matlab 微分方程的画图问题:

来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/13 08:02:40
matlab 微分方程的画图问题:
我定义了一个方程(函数)
function zdoc=fkinemic(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);
zdoc=[w*z(2);
-w*z(1)+v;
w];
现在就是需要画出其中v,w的图像,时间 [0,90],初值随便给一个.
关于z的微分方程见插图
matlab 微分方程的画图问题:
问题一,你要画v,w是y坐标,x坐标是时间么?
画在一张图上?
z等于啥?
时间步长你要多少,为什么要给初值?
这又不是常微分方程.
再问: 是的,v,w随时间的变化图像;画在同一张图上。 z=?, 那个函数就是关于z的微分方程~!我确定这是个常微分方程! 时间步长有什么关系?你可以取0.1,也可以0.01 谢谢
再答: 请你把常微分方程定义一下,没看明白 就是方程是什么,非code版的
再问: function zdoc=fkinemic(t,z) k1=1;k2=1;k3=0.5; zdoc=[w*z(2); -w*z(1)+v; w]; 其中: v=-k1*tanh(z(2)); w=-k2*tanh(z(3))+k3*tanh(z(1))*sin(t); 如果画图画出z的图像那很容易 关键就是不知道怎么画这个v,w?
再答: 你z怎么画的。。。 zdoc是啥? 你把画z的code发上来看看
再问: 你好,请关注一下插图;其中v,w 的定义应该是清楚的 v=-k1*tanh(z(2)); w=-k2*tanh(z(3))+k3*tanh(z(1))*sin(t);
再答: 我们可以通过z来还原w和v的 取足够小的dt,w(n)~[z3(n+1)-z3(n)]/dt v~[z2(n+1)-z2(n)]/dt+w(n)*z1(n) code如下: clc clear all close all t=linspace(0,90,1001); [t,z] = ode45(@fkinemic,t,[1,1,1]); z1=reshape(z(:,1),1,1001); z2=reshape(z(:,2),1,1001); z3=reshape(z(:,3),1,1001); dt=90/1000; w=zeros(1,1000); v=w; w=[z3(2:1001)-z3(1:1000)]/dt; v=[z2(2:1001)-z2(1:1000)]/dt+w.*z1(1:1000); plot(t(1:1000),w,t(1:1000),v) legend('w','v') xlabel('Time')