常微分方程数值解法
--------以下为各部分具体知识点:
一、引言
1.1 背景
1、原因:对于大量来源于实际问题的常微分方程,该初值问题存在唯一解,但其精确解却不能用初等函数表示出来。
2、常见方法:解析近似方法(级数解法,逐次逼近法),数值解法
3、相关概念:单步法、两步方法、多步法、显示公式、隐式公式
1.2 基本思想
y ( x n + 1 ) − y ( x n ) = ∫ x n x n + 1 f ( x , y ( x ) ) d x y(x_{n+1}) - y(x_n) = \int_{x_n}^{x_{n+1}}f(x,y(x))dx y(xn+1)−y(xn)=∫xnxn+1f(x,y(x))dx
- 左矩形:
∫ x n x n + 1 f ( x , y ( x ) ) d x = h f ( x n , y ( x n ) ) + O ( h 2 ) \int_{x_n}^{x_{n+1}}f(x,y(x))dx = hf(x_n,y(x_n)) + O(h^2) ∫xnxn+1f(x,y(x))dx=hf(xn,y(xn))+O(h2)
- E u l e r Euler Euler 公式
y n + 1 = y n + h f ( x n , y n ) , n = 0 , 1 , ⋅ ⋅ ⋅ y_{n+1} = y_n + hf(x_n,y_n), n = 0,1, ··· yn+1=yn+hf(xn,yn),n=0,1,⋅⋅⋅
- 梯形差分公式
{ y n + 1 = y n + h 2 [ f ( x n , y n ) + f ( x n + 1 , y n + 1 ) ] y 0 = α , n = 0 , 1 , ⋅ ⋅ ⋅ \begin{cases} y_{n+1} = y_n + \frac{h}{2}[f(x_n,y_n) + f(x_{n+1},y_{n+1})] \\ y_0 = \alpha, n = 0,1, ··· \end{cases} {yn+1=yn+2h[f(xn,yn)+f(xn+1,yn+1)]y0=α,n=0,1,⋅⋅⋅
- E u l e r Euler Euler 中点公式
{ y n + 1 = y n − 1 + 2 h f ( x n , y n ) y 0 = α , n = 1 , 2 , ⋅ ⋅ ⋅ \begin{cases} y_{n+1} = y_{n-1} + 2hf(x_n,y_n) \\ y_0 = \alpha, n = 1,2, ··· \end{cases} {yn+1=yn−1+2hf(xn,yn)y0=α,n=1,2,⋅⋅⋅
二、改进的 E u l e r Euler Euler 方法和 T a y l o r Taylor Taylor 展开方法
2.1 改进的 E u l e r Euler Euler 方法
{ y n + 1 = y n + h 2 ( K 1 + K 2 ) K 1 = f ( x n , y n ) K 2 = f ( x n + h , y n + h K 1 ) y 0 = α , n = 0 , 1 , 2 , ⋅ ⋅ ⋅ \begin{cases} y_{n+1} = y_n + \frac{h}{2}(K_1 + K_2) \\ K_1 = f(x_n, y_n) \\ K_2 = f(x_n + h, y_n + hK_1) \\ y_0 = \alpha, n = 0,1, 2,··· \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧yn+1=yn+2h(K1+K2)K1=f(xn,yn)K2=f(xn+h,yn+hK1)y0=α,n=0,1,2,⋅⋅⋅
2.2 误差分析
- 局部截断误差
y ( x n + 1 ) − y n + 1 y(x_{n+1}) - y_{n+1} y(xn+1)−yn+1
- E u l e r Euler Euler 公式的局部截断误差: O ( h 2 ) O(h^2) O(h2)
- 改进的 E u l e r Euler Euler 公式的局部截断误差 : O ( h 3 ) O(h^3) O(h3)
- 梯形公式的局部截断误差 : O ( h 3 ) O(h^3) O(h3)
- p p p 阶方法:如果单步差分方法的局部截断误差为 O ( h p + 1 ) O(h^{p+1}) O(hp+1) 阶,则称该方法为 p p p 阶方法。
2.3 T a y l o r Taylor Taylor 展开方法
y n + 1 = y n + h f ( x n , y n ) + h 2 2 f ( 1 ) ( x n , y n ) + ⋅ ⋅ ⋅ + h p p ! f ( p − 1 ) ( x n , y n ) y_{n+1} = y_n +hf(x_n,y_n) + \frac{h^2}{2}f^{(1)}(x_n,y_n) + ··· + \frac{h^p}{p!}f^{(p-1)}(x_n,y_n) yn+1=yn+hf(xn,yn)+2h2f(1)(xn,yn)+⋅⋅⋅+p!hpf(p−1)(xn,yn)
三、 R u n g e − K u t t a Runge-Kutta Runge−Kutta 方法
3.1 公式
3.2 二阶 R − K R-K R−K
1、公式
2、截断误差
3.3 三阶 R − K R-K R−K
1、公式
2、截断误差
3.4 四阶 R − K R-K R−K
1、公式
2、截断误差
3.5 变步长 R − K R-K R−K
四、单步方法的收敛性和稳定性
4.1 单步方法的收敛性
∣ Φ ( x , y , h ) − Φ ( x , y ‾ , h ) ∣ ≤ L ∣ y − y ‾ ∣ |\Phi(x,y,h) - \Phi(x,\overline{y},h)| \le L|y - \overline{y}| ∣Φ(x,y,h)−Φ(x,y,h)∣≤L∣y−y∣
4.2 稳定性
- 绝对稳定、绝对稳定域、绝对稳定区间
- 公式
y n + 1 = f ( λ , h ) y n y_{n + 1} = f(\lambda, h) y_n yn+1=f(λ,h)yn
五、线性多步方法(利用待定系数法构造线性多步方法)