用 Matlab 求解微分方程
借助 Matlab 软件,可以方便地求出微分方程(组)的解析解和数值解。
用 Matlab 求解微分方程
微分方程(组)的解析解
求微分方程(组)解析解的命令为
dsolve(‘eqn1’, ‘eqn2’, ..., ‘x’)
其中“eqni”表示第 i 个方程,“x”表示微分方程(组)中的自变量,默认时自变量为 t。此外,在“eqni”表示的方程式中,用 D 表示求微分,D2、D3 等表示求高阶微分,任何 D 后所跟的字母表示因变量。
用 Matlab 求解微分方程
例 求解一阶微分方程 dy/dx = 1 + y2。
求通解
输入:dsolve(‘Dy=1+y^2’, ‘x’)
输出:ans = tan(x+C1)
求特解
输入:dsolve(‘Dy=1+y^2’, ‘y(0)=1’, ‘x’)
输出:ans = tan(x+1/4*pi)
用 Matlab 求解微分方程
例 求解下列微分方程的通解及 y(0) = 0 和
y (0) = 15 条件下的特解
求通解
输入:y=dsolve('D2y+4*Dy+29*y=0', 'x')
输出:y = C1*exp(-2*x)*sin(5*x)+C2*exp(-2*x)*cos(5*x)
求特解
输入:y=dsolve('D2y+4*Dy+29*y=0', 'y(0)=0, Dy(0)=15', 'x')
输出:y = 3*exp(-2*x)*sin(5*x)
用 Matlab 求解微分方程
例 求解下列微分方程组
用 Matlab 求解微分方程
求通解
方式一
输入:
[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 = C2*exp(-t)+C3*exp(2*t)
y = C2*exp(-t)+C3*exp(2*t)+exp(-2*t)*C1
z = C3*exp(2*t)+exp(-2*t)*C1
用 Matlab 求解微分方程
方式二
输入:[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=simple(x) % 将x化简
y=simple(y)
z=simple(z)
输出:x = C2/exp(t)+C3*exp(t)^2
y = C2*exp(-t)+C3*exp(2*t)+exp(-2*t)*C1
z = C3*exp(2*t)+exp(-2*t)*C1
用 Matlab 求解微分方程
求特解
输入:[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',
'x(0)=0', 'y(0)=1', 'z(0)=2', 't');
x=simple(x) % 将x化简
y=simple(y)
z=simple(z)
输出:x = exp(2*t)-exp(-t)
y = exp(2*t)-exp(-t)+exp(-2*t)
z = exp(2*t)+exp(-2*t)
用 Matlab 求解微分方程
微分方程(组)的数值解
事实上,能够求得解析解的微分方程或微分方程组少之又少,多数情况下需要求出微分方程(组)的数值解。
Matlab中求微分方程数值解的函数有五个:ode45,ode23,ode113,ode15s,ode23s。调用格式为
[t, x] = solver (‘f’, ts, x0, options)
用 Matlab 求解微分方程
需要特别注意的是:
① solver 可以
用 Matlab 求解微分方程 来自淘豆网m.daumloan.com转载请标明出处.