当前位置: 代码迷 >> 综合 >> 数模:微分方程
  详细解决方案

数模:微分方程

热度:79   发布时间:2023-11-27 02:41:10.0

常微分方程
ODE,是未知函数中只含有一个自变量的微分方程

偏微分方程
PDE,是未知函数是多元函数的微分方程

解析解

求解这个问题

>> y=dsolve('D2y=0','x')%%%%%%%%%%%%%%%%%%%%%%%%D2y指y的2阶导,x指自变量
y =C2 + C1*x

在这里插入图片描述

>> u=dsolve('Du=1+u^2','t')u =tan(C4 + t)1i-1i

在这里插入图片描述

>> dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')ans =3*sin(5*x)*exp(-2*x)

在这里插入图片描述

[x,y,z]=dsolve('Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*z,Dz=4*x-4*y+2*z','t')
%%%%%%%%%%%%结果%%%%%%%%%%%
x = 
C8*exp(2*t) + C9*exp(-t) 
y =
C8*exp(2*t) + C9*exp(-t) + C10*exp(-2*t)
z = 
C8*exp(2*t) + C10*exp(-2*t)

总结一下:
dsolve(‘方程1,方程2,…方程n’ , ‘初值条件1,初值条件2’ , 自变量)

数值解

在这里插入图片描述
对多阶:在这里插入图片描述
举个例子:
求解 y′=?2y+2x2+2x ,0 < x < 0.5 , y ( 0 ) = 1

%%
clc, clear
yx=@(x,y)-2*y+2*x^2+2*x; %yx指的是y对x的一阶导
[x,y]=ode45(yx,[0,0.5],1) %0~0.5是求解区间,1是y的初值

求解出来的y即x在 0~0.5区间所对应的函数值
在这里插入图片描述
在这里插入图片描述
要全部换成一阶导,才可求解

[T,Y]=ode15s(@f,[0 3000],[2 0]); %[2 0]表示初值 
plot(T,Y(:,1),'b-')% Y中第一列是y1,第二列是y2function dy=f(t,y)
dy=zeros(2,1);%初始化
dy(1)=y(2);    
dy(2)=1000*(1-y(1)^2)*y(2)-y(1); 
end