您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 用Matlab解微分方程
用Matlab软件求解微分方程1.解析解(1)一阶微分方程求21ydxdy的通解:dsolve('Dy=1+y^2','x')求yxdxdy21的通解:dsolve('Dy=1+x^2-y','x')求1)0(12yydxdy的特解:dsolve('Dy=1+y^2',’y(0)=1’,'x')(2)高阶微分方程求解.2)2(,2)2(,0)(222yyynxyxyx其中,21n,命令为:dsolve('x^2*D2y+x*Dy+(x^2-0.5^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')求042xyyy的通解,命令为:dsolve('D3y-2*Dy+y-4*x=0','x')输出为:ans=8+4*x+C1*exp(x)+C2*exp(-1/2*(5^(1/2)+1)*x)+C3*exp(1/2*(5^(1/2)-1)*x)(3)一阶微分方程组求).(3)(4)(),(4)(3)(xgxfxgxgxfxf的通解:[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','x')输出为:f=exp(3*x)*(cos(4*x)*C1+sin(4*x)*C2)g=-exp(3*x)*(sin(4*x)*C1-cos(4*x)*C2)若再加上初始条件1)0(,0)0(gf,则求特解:[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1','x')输出为:f=exp(3*x)*sin(4*x)g=exp(3*x)*cos(4*x)2.数值解(1)一阶微分方程.1)0(,10,2yxyxydxdy现以步长h=0.1用“4阶龙格—库塔公式”求数值解:先建立“函数M—文件”:functionf=eqs1(x,y)f=y-2*x/y;再命令:格式为:[自变量,因变量]=ode45(‘函数文件名’,节点数组,初始值)命令为:[x,y]=ode45('eqs1',0:0.1:1,1)若还要画图,就继续命令:plot(x,y)(2)一阶微分方程组.3.0)0(,2.0)0(,2sin,10,2cos21212211yyyyxyxyyxy只须向量化,即可用前面方法:functionf=eqs2(x,y)f=[cos(x)+2*y(1)-y(2);sin(x)-y(1)+2*y(2)];将此函数文件,以文件名eqs2保存后,再下命令:[x,y]=ode45('eqs2',0:0.1:1,[0.2;0.3])(注:输出的y是矩阵,第i列为函数iy的数值解)要画图,继续命令:holdon,plot(x,y(:,1)),plot(x,y(:,2)),holdoff(3)高阶微分方程先化成一阶微分方程组,再用前面方法。上机练习:.0)0(,2.0)0(,1)0(,10,042yyyxxyyy准备:令yyyyyy321,,,化成.02.01)0()0()0(,423212132321yyyxyyyyyyy用机器:函数文件eqs3内容?命令?画图?
本文标题:用Matlab解微分方程
链接地址:https://www.777doc.com/doc-7078215 .html