用Matlab求解微分方程借助Matlab软件,可以方便地求出微分方程(组)的解析解和数值解微分方程(组)的解析解求微分方程(组)解析解的命令为dsolve('eqn1,,'eqn2其中“eqni”表示第i个方程,“x”表示微分方程(组)中的自变量,默认时自变量为t。此外,在“eqni”表示的方程式中,用D表示求微分,D2、D3等表示求高阶徼分,=1+y2求通解输入:dsolve(Dy=1+y^2,x2)输出:ans=tan(x+C1)求特解输入:dsolve(Dy=1+y^2,y(0)=1,x)输出:ans=tan(x+114*pi)(O)=0和y'(O)=15条件下的特解a+42+29y=0求通解输入:y=dsolve(D2y+4*Dy+29*y=0,x)HHHy=C1*exp(-2*x)*sin(5*x)+C2exp(-2*)*cos(5*x)求特解输入:y=dsolve(D2y+4*Dy+29*y=0,’y(O)=0,Dy(0)=15,x)输出:y=3*exp(-2*x)*in(5*x)=2x-3y+37d=4x-5y+372+-x=2pdt求通解方式输入Ix,y,z]=dsolve(Dx=2x-3y+3z,Dy=4X5*y+3*z,DZ=4*x-4*y+2*z,t);输出:x=C2*exp(-t)+C3*exp(2*y=C2*exp(-t+C3*exp(2*t)+exp(-2*t)*CIZ=C3*eXp(2求t)+eXp(-2求t*C1方式二输入:【x,y,]=dsolve(Dx=2*x3*y+3*z,Dy=4*x-5*y+3*z,DZ=4*x4*y+2*Z,t);x=simple(x)%将x化简y=simple(y)z=Simple(z输出:x=C2/exp(t)+C3*exp(t)^2y=C2*exp(-t)+C3*exp(2)+exp(-2t)CIZ三C3*eXp(2t)十eXp(-2求t)米C1求特解输入:【x,y,Z]=dsolve(Dx=2*x-3*y+3*z,Dy=4*x-5*y+3*,DZ=4*x-4*y+2乙,x(O)=0),’y(0)=-1,'z(O)=2,t);X=simple(x)%将x化简y=simple(y)z=Simple(z)输出:x=exp(2*t)exp(t)y=exp(2t)-exp(t)+exp(-2t)Z三exp(2*t)+exp(-2米1微分方程(组)的数值解事实上,能够求得解析解的微分方程或微分方程组少之又少,多数情况下需要求出微分方程(组)的数值解。Matlab中求微分方程数值解的函数有五个:ode45,ode23,odel13,odel5s,ode23s。调用格式为[t,x]=solver('f,ts,xO,options)需要特别注意的是:①solver可以取以上五个函数之一,不同的函数代表不同的内部算法:ode23运用组合的23阶龙格一库塔一费尔贝算法,ode45运用组合的4/5阶龙格—库塔—费尔贝算法。通常使用函数ode45;②f是由待解方程写成的m文件的文件名③ts=[t,t,t、t为自变量的初值和终值;④x0为函数的初值;
用 Matlab 求解微分方程 来自淘豆网m.daumloan.com转载请标明出处.