如何用matlab求解微分方程组的数值解
发布网友
发布时间:2022-03-25 19:55
我来回答
共1个回答
热心网友
时间:2022-03-25 21:25
在Matlab下输入:edit _feiying.m,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=_feiying(t,x)
a=1;
b=2;
c=3;
d=4;
%%比方说
%f=a*x+y-z;
%g=b*sin(x*y)-c*cos(z);
%h=d*y-a*x;
%%注意x用x(1)代,y用x(2)代,z用x(3)代
f=a*x(1)+x(2)-x(3);
g=b*sin(x(1)*x(2))-c*cos(x(3));
h=d*x(2)-a*x(1);
y=[f;g;h];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
在Matlab下面输入:
t_end=5;
x0=[1;1;1];
[t,x]=ode45('_feiying',[0,t_end],x0);
plot(t,x)
legend('x','y','z')
上面只是固定d的情况,
你如果想做出随d的变化,估计比较麻烦一些,一方面ode45并不是等不长的。
另一方面,参数不好弄。