求解微分方程
在具有或不具有初始条件的情况下使用 dsolve
函数以解析方式求解微分方程。要求解微分方程组,请参阅Solve a System of Differential Equations。
一阶线性 ODE
求解下列微分方程。
首先,通过使用 syms
创建符号函数 y(t)
,来表示 。
syms y(t)
使用 ==
定义该方程,并使用 diff
函数表示微分。
ode = diff(y,t) == t*y
ode(t) =
使用 dsolve
求解该方程。
ySol(t) = dsolve(ode)
ySol(t) =
求解具有条件的微分方程
在上一个解中,由于未指定条件,因此出现了常量 。求解具有初始条件 y(0) == 2
的方程。dsolve
函数用于求满足条件的 值。
cond = y(0) == 2; ySol(t) = dsolve(ode,cond)
ySol(t) =
如果 dsolve
无法求解方程,则尝试以数值方式求解方程。请参阅Solve a Second-Order Differential Equation Numerically。
具有初始条件的非线性微分方程
求解具有初始条件的下列非线性微分方程。该方程有多个解。
syms y(t)
ode = (diff(y,t)+y)^2 == 1;
cond = y(0) == 0;
ySol(t) = dsolve(ode,cond)
ySol(t) =
具有初始条件的二阶 ODE
求解具有两个初始条件的下列二阶微分方程。
定义方程和条件。第二个初始条件涉及 y 的一阶导数。通过创建符号函数 Dy = diff(y)
表示该导数,然后使用 Dy(0)==0
定义条件。
syms y(x)
Dy = diff(y);
ode = diff(y,x,2) == cos(2*x)-y;
cond1 = y(0) == 1;
cond2 = Dy(0) == 0;
求解 y
的 ode
。使用 simplify
函数简化解。
conds = [cond1 cond2]; ySol(x) = dsolve(ode,conds); ySol = simplify(ySol)
ySol(x) =
具有初始条件的三阶 ODE
求解具有三个初始条件的下列三阶微分方程。
由于初始条件包含一阶和二阶导数,因此请创建两个符号函数 Du = diff(u,x)
和 D2u = diff(u,x,2)
以指定初始条件。
syms u(x)
Du = diff(u,x);
D2u = diff(u,x,2);
创建方程和初始条件,并对其求解。
ode = diff(u,x,3) == u; cond1 = u(0) == 1; cond2 = Du(0) == -1; cond3 = D2u(0) == pi; conds = [cond1 cond2 cond3]; uSol(x) = dsolve(ode,conds)
uSol(x) =
更多 ODE 示例
下表显示了微分方程及其 Symbolic Math Toolbox™ 语法的示例。
微分方程 | 使用 Symbolic Math Toolbox 的命令 |
---|---|
| |
| |
艾里方程。 |
|
皮瑟级数解。 |
|
另请参阅
dsolve
| odeFunction
| odeToVectorField
| reduceDifferentialOrder
| daeFunction