用Matlab软件求解微分方程
1.解析解
(1)一阶微分方程求的通解:dsolve('Dy=1+y^2','x')
求的通解:dsolve('Dy=1+x^2-y','x')
求的特解:dsolve('Dy=1+y^2',’y(0)=1’,'x')
(2)高阶微分方程求解其中,,命令为:
dsolve('x^2*D2y+x*Dy+(x^2-0.5^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')
求的通解,命令为:
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)一阶微分方程组求的通解:[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,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)一阶微分方程
现以步长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)一阶微分方程组
只须向量化,即可用前面方法:
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列为函数的数值解)
要画图,继续命令:hold on,plot(x,y(:,1)),plot(x,y(:,2)),hold off
(3)高阶微分方程先化成一阶微分方程组,再用前面方法。
上机练习:
准备:令,化成
用机器,函数文件eqs3内容?
命令?
画图?
1.解析解
(1)一阶微分方程求的通解:dsolve('Dy=1+y^2','x')
求的通解:dsolve('Dy=1+x^2-y','x')
求的特解:dsolve('Dy=1+y^2',’y(0)=1’,'x')
(2)高阶微分方程求解其中,,命令为:
dsolve('x^2*D2y+x*Dy+(x^2-0.5^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')
求的通解,命令为:
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)一阶微分方程组求的通解:[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,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)一阶微分方程
现以步长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)一阶微分方程组
只须向量化,即可用前面方法:
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列为函数的数值解)
要画图,继续命令:hold on,plot(x,y(:,1)),plot(x,y(:,2)),hold off
(3)高阶微分方程先化成一阶微分方程组,再用前面方法。
上机练习:
准备:令,化成
用机器,函数文件eqs3内容?
命令?
画图?