📜  二阶线性微分方程(1)

📅  最后修改于: 2023-12-03 14:49:02.634000             🧑  作者: Mango

二阶线性微分方程

介绍

二阶线性微分方程指的是形如 $y''(x)+p(x)y'(x)+q(x)y(x)=f(x)$ 的微分方程,其中 $y(x)$ 是未知函数,$p(x)$、$q(x)$ 和 $f(x)$ 都是已知函数。

解法

二阶线性微分方程的求解可以分为两步:

  1. 求出对应齐次方程的通解;
  2. 求出非齐次方程的一个特解,将通解和特解相加即可得到非齐次方程的通解。
齐次方程

对应齐次方程为 $y''(x)+p(x)y'(x)+q(x)y(x)=0$。

解法为先猜测一个解为 $y(x) = e^{mx}$,然后代入方程中解出 $m$ 的值。

当 $m$ 为两个不同的实数时,通解为 $y(x) = c_1e^{m_1x}+c_2e^{m_2x}$,其中 $c_1$ 和 $c_2$ 是任意常数。

当 $m$ 为两个相同的实数时,通解为 $y(x) = (c_1+c_2x)e^{mx}$,其中 $c_1$ 和 $c_2$ 是任意常数。

当 $m$ 为共轭复数对时,通解为 $y(x) = e^{\alpha x}(c_1\cos(\beta x)+c_2\sin(\beta x))$,其中 $\alpha$ 和 $\beta$ 分别为该复数对的实部和虚部,$c_1$ 和 $c_2$ 是任意常数。

非齐次方程

根据叠加原理,非齐次方程的通解为齐次通解和非齐次特解之和。因此,我们只需要找到一个非齐次特解即可。

常见的求解非齐次特解的方法有常数变易法、待定系数法和拉普拉斯变换法等。

常数变易法

常数变易法的基本思想是将非齐次方程中的 $f(x)$ 替换为一个常数 $C$,然后求出对应的特解 $y_p(x)$,再将 $C$ 求出来。

将 $y_p(x)$ 代入原方程,解出 $C$,然后将 $C$ 带回 $y_p(x)$ 中即可。

待定系数法

待定系数法的基本思想是假设特解 $y_p(x)$ 具有某种特定的形式,然后代入非齐次方程中解出系数,最后得到特解。

待定系数法常用的形式有常数、一次函数、二次函数、指数函数、三角函数等。

拉普拉斯变换法

拉普拉斯变换法的基本步骤为:

  1. 对非齐次方程两边进行拉普拉斯变换;
  2. 利用拉普拉斯变换的性质将方程化为关于 $Y(p)$ 的一元方程;
  3. 解出 $Y(p)$ 并求出其拉普拉斯反变换即可得到特解。
示例代码
# 二阶线性微分方程
import sympy as sp
from sympy.abc import x
y = sp.Function('y')
f = sp.Function('f')(x)
p = sp.Function('p')(x)
q = sp.Function('q')(x)

# 对应齐次方程
y_homogeneous = sp.Eq(sp.diff(y(x), x, x) + p(x)*sp.diff(y(x), x) + q(x)*y(x), 0)

# 非齐次方程
y_nonhomogeneous = sp.Eq(sp.diff(y(x), x, x) + p(x)*sp.diff(y(x), x) + q(x)*y(x), f)

# 求解齐次方程通解
homogeneous_solution = sp.dsolve(y_homogeneous).rhs

# 求解非齐次方程的特解
particular_solution = sp.dsolve(y_nonhomogeneous).rhs

# 求解非齐次方程通解
general_solution = homogeneous_solution + particular_solution

以上代码使用 SymPy 模块实现,可用于 Python 中二阶线性微分方程的求解。其中,dsolve 函数用于求解微分方程的通解,rhs 属性用于获取一个特定解(右侧的通解)。

返回代码片段已按markdown标明