求解微分方程组matlab

求解微分方程组matlab_第1张图片 

function dy=rigid(t, y)  %其中y包含为三个未知函数对应的三个未知量,t为自变量

dy=zeros(3,1);

dy(1)=y(2)*y(3);

dy(2)=-y(1)*y(3);

dy(3)=-0.51*y(1)*y(2);



运行命名:

[T,Y]=ode45('rigid',[0 12],[0 1 1]);   %其中[0,12]为自变量取值范围,[0 1 1]为初始值



plot(T,Y(:,1),'k-',T,Y(:,2),'r*',T,Y(:,3),'b+')

求解微分方程组matlab_第2张图片

也可以利用dsolve函数将他求解

下面的代码运行有错误等后面我会慢慢改正

syms y t
[x,y,z]=dsolve('Dy(1)=y(2)*y(3)','Dy(2)=-y(1)*y(3)','Dy(3)=-0.51*y(1)*y(2)','y(1)(0)=0','y(2)(0)=0','y(3)(0)=1','t')

求解微分方程组matlab_第3张图片求解解析解的时候利用dsolve函数求解,再定义自变量的取值范围,代入到刚求解的函数使用plot画图即可

具体操作如下:

syms y t
dsolve('Dy=-y+t+1','y(0)=1','t')
t=1:0.1:2
z =t + exp(-t)
plot(t,z)

 

你可能感兴趣的:(matlab)