常微分方程的基本概念
讲课内容
一、常微分方程的定义与分类
常微分方程是描述未知函数与其导数之间关系的方程,通常用于表示自然现象中的动态系统。常微分方程可以分为不同的类别。
1.1 常微分方程的定义
常微分方程可以表示为:
F
(
x
,
y
,
y
′
,
y
′
′
,
…
,
y
(
n
)
)
=
0
F(x, y, y', y'', \dots, y^{(n)}) = 0
F(x,y,y′,y′′,…,y(n))=0
其中:
- x x x 是自变量;
- y y y 是未知函数;
- y ′ , y ′ ′ , … , y ( n ) y', y'', \dots, y^{(n)} y′,y′′,…,y(n) 是函数 y y y 关于 x x x 的导数。
1.2 初值问题与边值问题
-
初值问题:给定方程及其在某个初始点(通常是 x = x 0 x = x_0 x=x0)上的函数值或导数值,要求求解该方程。
y ′ ( x ) = f ( x , y ) , y ( x 0 ) = y 0 y'(x) = f(x, y), \quad y(x_0) = y_0 y′(x)=f(x,y),y(x0)=y0
例如,已知方程 y ′ ( x ) = − 2 y ( x ) y'(x) = -2y(x) y′(x)=−2y(x) 且初始条件为 y ( 0 ) = 1 y(0) = 1 y(0)=1,要求求解该常微分方程。 -
边值问题:给定方程及其在区间两端的边值,要求求解方程。通常出现在描述空间或物理系统的问题中。
1.3 线性与非线性方程
-
线性常微分方程:如果方程中的未知函数及其导数只以一次项出现,并且系数是已知的常数或已知函数,那么该方程是线性的。例如:
y ′ ′ ( x ) + p ( x ) y ′ ( x ) + q ( x ) y ( x ) = g ( x ) y''(x) + p(x)y'(x) + q(x)y(x) = g(x) y′′(x)+p(x)y′(x)+q(x)y(x)=g(x) -
非线性常微分方程:如果方程中的未知函数及其导数的幂次大于1或出现未知函数的乘积项,则该方程为非线性的。例如:
y ′ ′ ( x ) + y ( x ) 2 = 0 y''(x) + y(x)^2 = 0 y′′(x)+y(x)2=0
1.4 方程的阶数和阶次
常微分方程的阶数指的是方程中最高阶导数的阶数。比如,对于方程 y ′ ′ ( x ) + y ′ ( x ) + y ( x ) = 0 y''(x) + y'(x) + y(x) = 0 y′′(x)+y′(x)+y(x)=0,它的阶数是2。
1.5 解的存在性与唯一性
-
解的存在性定理:常微分方程的解是否存在,取决于初始条件和方程的性质。皮卡-林德勒夫定理给出了关于解存在性的条件:
如果方程满足Lipschitz条件,那么解在某个区间内是存在的。 -
解的唯一性定理:对于给定的初值问题,解不仅要存在,而且应该是唯一的。皮卡-林德勒夫定理也给出了唯一性条件。
1.6 例子与计算
我们将通过一个简单的例子来演示如何解决常微分方程。
例子 1: 求解初值问题 y ′ ( x ) = − 2 y ( x ) , y ( 0 ) = 1 y'(x) = -2y(x), y(0) = 1 y′(x)=−2y(x),y(0)=1
步骤:
- 通过分离变量法,将方程转化为:
d y y = − 2 d x \frac{dy}{y} = -2dx ydy=−2dx - 对两边积分:
ln ∣ y ∣ = − 2 x + C \ln|y| = -2x + C ln∣y∣=−2x+C - 解得:
y ( x ) = C e − 2 x y(x) = Ce^{-2x} y(x)=Ce−2x - 根据初始条件
y
(
0
)
=
1
y(0) = 1
y(0)=1,求得
C
=
1
C = 1
C=1,因此解为:
y ( x ) = e − 2 x y(x) = e^{-2x} y(x)=e−2x
课堂活动
活动 1:初值问题的求解
任务:通过分离变量法,求解初值问题 y ′ ( x ) = 3 y ( x ) , y ( 0 ) = 2 y'(x) = 3y(x), y(0) = 2 y′(x)=3y(x),y(0)=2。
步骤:
- 写出方程:
y ′ ( x ) = 3 y ( x ) y'(x) = 3y(x) y′(x)=3y(x) - 分离变量,得到:
d y y = 3 d x \frac{dy}{y} = 3dx ydy=3dx - 对两边积分:
ln ∣ y ∣ = 3 x + C \ln|y| = 3x + C ln∣y∣=3x+C - 取指数,得到:
y ( x ) = C e 3 x y(x) = Ce^{3x} y(x)=Ce3x - 根据初始条件
y
(
0
)
=
2
y(0) = 2
y(0)=2,得到:
C = 2 C = 2 C=2
所以解为:
y ( x ) = 2 e 3 x y(x) = 2e^{3x} y(x)=2e3x
活动 2:边值问题的求解
任务:求解边值问题 y ′ ′ ( x ) − 4 y ( x ) = 0 y''(x) - 4y(x) = 0 y′′(x)−4y(x)=0 在区间 [ 0 , π ] [0, \pi] [0,π] 上的解,满足边值条件 y ( 0 ) = 0 , y ( π ) = 0 y(0) = 0, y(\pi) = 0 y(0)=0,y(π)=0。
步骤:
- 假设解的形式为 y ( x ) = e r x y(x) = e^{rx} y(x)=erx。
- 代入方程
y
′
′
(
x
)
−
4
y
(
x
)
=
0
y''(x) - 4y(x) = 0
y′′(x)−4y(x)=0,得到特征方程:
r 2 − 4 = 0 r^2 - 4 = 0 r2−4=0 - 解得
r
=
2
r = 2
r=2 或
r
=
−
2
r = -2
r=−2,所以通解为:
y ( x ) = A e 2 x + B e − 2 x y(x) = A e^{2x} + B e^{-2x} y(x)=Ae2x+Be−2x - 代入边值条件 y ( 0 ) = 0 y(0) = 0 y(0)=0,得到 A + B = 0 A + B = 0 A+B=0,即 B = − A B = -A B=−A。
- 代入边值条件
y
(
π
)
=
0
y(\pi) = 0
y(π)=0,得到:
A e 2 π + ( − A ) e − 2 π = 0 A e^{2\pi} + (-A) e^{-2\pi} = 0 Ae2π+(−A)e−2π=0
这给出了 A = 0 A = 0 A=0,所以解为:
y ( x ) = 0 y(x) = 0 y(x)=0
Python 代码实现示例
1. 解初值问题 y ′ ( x ) = − 2 y ( x ) , y ( 0 ) = 1 y'(x) = -2y(x), y(0) = 1 y′(x)=−2y(x),y(0)=1
import numpy as np
import matplotlib.pyplot as plt
# 定义方程
def dydx(x, y):
return -2 * y
# 初始条件
y0 = 1
x0 = 0
x_values = np.linspace(0, 5, 100)
# 使用odeint解常微分方程
from scipy.integrate import odeint
y_values = odeint(dydx, y0, x_values)
# 绘制图像
plt.plot(x_values, y_values, label='y(x) = e^(-2x)')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Solution to y\'(x) = -2y(x), y(0) = 1')
plt.legend()
plt.show()
2. 解边值问题 y ′ ′ ( x ) − 4 y ( x ) = 0 y''(x) - 4y(x) = 0 y′′(x)−4y(x)=0 进行求解
from scipy.integrate import solve_bvp
# 定义常微分方程
def fun(x, y):
return np.vstack((y[1], 4 * y[0]))
# 边值条件
def bc(ya, yb):
return np.array([ya[0], yb[0]])
# 网格和初值
x = np.linspace(0, np.pi, 100)
y_init = np.zeros((2, x.size))
y_init[0] = np.sin(x)
# 使用solve_bvp求解
solution = solve_bvp(fun, bc, x, y_init)
# 绘制解的图像
plt.plot(solution.x, solution.y[0], label='Solution to y\'\'(x) - 4y(x) = 0')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Solution to Boundary Value Problem')
plt.legend()
plt.show()
总结
- 常微分方程是描述自然现象的数学工具,通常通过初值问题或边值问题来求解。
- 解的存在性与唯一性保证了解的合理性,常常借助皮卡-林德勒夫定理进行分析。
- 使用Python库(如
odeint
和solve_bvp
)可以有效地求解常微分方程并绘制解的图像,帮助学生理解微分方程的解决过程。