用 Matlab软件求解微分方程 1.解析解 (1)一阶微分方程 求 dy 1+y2的通解: dsolve(Dy=l+y^2",x) 求中=1+x2-y的通解:dse(Dy=1+x2yx) =1+ 求 的特解: dsolve(Dy=1+y^2,’y(0=1”,x) y(0)=1 (2)高阶微分方程 求解 y”+xy+(x2-n2)y=0, 其中,n=-,命令为 y(x/2)=2,y(x/2)=-2/x dsolve('x2D2y+x*Dy+(x 2-0.5 2)y=0, y(pi/2)=2, Dy(pin2F-2/pi,X 求y"-2y2+y-4x=0的通解,命令为: dsolve(D3y-2 Dy+y-4 x=0,X) 输出为 ans=8+4*x+Cl*exp(x)+C2*exp(-1*(5^(1/2)+1)*x)+C3*exp(12*(5^(12)-1)*x) (3)一阶微分方程组 求 ∫(x)=3f(x)+4g(x) 的通解:f,g] d solve(Df=3*f+4*g,Dg=4*f+3°gx) g(x)=-4f(x)+3g(x) 输出为:f=exp(3*x)+(cos(4*x)+Cl+si(4*x)+C2) g=-exp(3*x)(sin(4*)*Cl-coS(4*x)*C2) 若再加上初始条件f(0)=0,g(0)=1,则求特解: fg}= dsolve(Df=3*f+4*g,Dg=4*f+3*gf(0)=0,g(0)=1,x) 输出为:f=exp(3*x)*sn(4*x) g =exp(3*x)*cos(4*x 2.数值解 (1)一阶微分方程
用 Matlab 软件求解微分方程 1.解析解 (1)一阶微分方程 求 2 1 y dx dy = + 的通解:dsolve('Dy=1+y^2','x') 求 x y dx dy = + − 2 1 的通解:dsolve('Dy=1+x^2-y','x') 求 = = + (0) 1 1 2 y y dx dy 的特解:dsolve('Dy=1+y^2',’y(0)=1’,'x') (2)高阶微分方程 求解 = = − + + − = ( 2) 2, ( 2) 2 . ( ) 0, 2 2 2 y y x y xy x n y 其中, 2 1 n = ,命令为: dsolve('x^2*D2y+x*Dy+(x^2-0.5^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x') 求 y − 2y + y − 4x = 0 的通解,命令为: 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)一阶微分方程组 求 = − + = + ( ) 4 ( ) 3 ( ). ( ) 3 ( ) 4 ( ), g x f x g x f x f x g x 的通解:[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) 若再加上初始条件 f (0) = 0, g(0) =1 ,则求特解: [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)一阶微分方程
2 dx y ,0≤x≤1 现以步长h=0.1用“4阶龙格—库塔公式”求数值解 y(0)=1 先建立“函数M一文件”: function f=eqsl(xy) 再命令:格式为: 自变量因变量]=0de45(函数文件名’,节点数组,初始值) 命令为:[xy]=ode45(eqs,00.1:1,1) 若还要画图,就继续命令:plot(xy) (2)一阶微分方程组 y=cosx+2y1-y2,0≤x≤1 y2=sn,+2y2, 只须向量化,即可用前面方法 y(O)=02,y2(0)=0.3 function f-eqs 2(x,y) f=[cos(x)+2*y(1)y(2),sin(x)-y(1)+2*y(2)] 将此函数文件,以文件名eqS2保存后,再下命令: xy]=ode45(eqs2"0.0.1:1.[0.2:0.3] (注:输出的y是矩阵,第i列为函数y的数值解) 要画图,继续命令: hold on, plot(x,y(,1)plot(xy(2) hold off (3)高阶微分方程 先化成一阶微分方程组,再用前面方法。 y-2y+y-4x=0,0≤x≤1, 上机练习:101y0)=0210)0 准备:令y=yy2=y2y3=y”,化成 y2 y y3 y2(0)|=02 y3)(-y+2y2+4x)人(y3(0)(0 用机器:函数文件eqs3内容? 命令? 画图?
= = − (0) 1. , 0 1, 2 y x y x y dx dy 现以步长 h=0.1 用“4 阶龙格—库塔公式”求数值解: 先建立“函数 M—文件”:function f=eqs1(x,y) f=y-2*x/y; 再命令: 格式为: [自变量,因变量]=ode45(‘函数文件名’,节点数组,初始值) 命令为: [x,y]=ode45('eqs1',0:0.1:1,1) 若还要画图,就继续命令: plot(x,y) (2)一阶微分方程组 = = = − + = + − (0) 0.2, (0) 0.3. sin 2 , cos 2 , 0 1, 1 2 2 1 2 1 1 2 y y y x y y y x y y x 只须向量化,即可用前面方法: function f=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 列为函数 i y 的数值解) 要画图,继续命令:hold on,plot(x,y(:,1)),plot(x,y(:,2)),hold off (3)高阶微分方程 先化成一阶微分方程组,再用前面方法。 上机练习: = = = − + − = (0) 1, (0) 0.2, (0) 0. 2 4 0, 0 1, y y y y y y x x 准备:令 y = y y = y y = y 1 2 3 , , ,化成 . 0 0.2 1 (0) (0) (0) , 2 4 3 2 1 1 2 3 2 3 2 1 = − + + = y y y y y x y y y y y 用机器: 函数文件 eqs3 内容? 命令? 画图?