English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

正切线近似

几何思想

常微分方程 dy/dx = f(x,y) 为 (x,y) 平面中的每个点分配一个斜率——一个方向场。真实解 y(x) 是一条曲线,在每处都遵循指定的斜率。

欧拉方法将连续方向场转换为离散行走:

> (xₙ, yₙ) → (xₙ + h, yₙ + h·f(xₙ, yₙ))

从点 (xₙ, yₙ) 开始,沿正切线移动距离 h。到达近似的下一个点。重复。

几何误差:点 (xₙ, yₙ) 处的正切线斜率为 f(xₙ, yₙ),但在区间 [xₙ, xₙ + h] 中的每个点,真实曲线有不同的斜率。欧拉步长在整个区间中使用左端点的斜率——'曾经的斜率'。每步的误差随 h² 增长。

欧拉方法:正切线步长

累积误差

在 N 步到达固定端点 x = a,其中 h = a/N:

- 每步局部截断误差:O(h²)

- 步数:N = a/h

- 全局误差:O(h²) × (a/h) = O(h) — 一阶精度

欧拉方法是一阶的:将 h 减半会将全局误差减半。

运行欧拉方法

考虑 dy/dx = y,初始条件 y(0) = 1。真实解:y(x) = eˣ,所以 y(1) = e ≈ 2.71828。

应用欧拉方法,步长 h = 0.5,从 x = 0 到 x = 1(2 步):

第 1 步:y₁ = y₀ + h·f(x₀, y₀) = 1 + 0.5·(1) = 1.5。新点:(0.5, 1.5)。

第 2 步:y₂ = y₁ + h·f(x₁, y₁) = 1.5 + 0.5·(1.5) = 2.25。新点:(1.0, 2.25)。

欧拉给出 2.25 vs 真实值 2.71828。误差:0.468。相对误差:~17%。

对初始条件 y(0) = 1 的微分方程 dy/dx = -2y 应用欧拉方法,使用步长 h = 0.5。计算 y(0.5) 和 y(1.0)。与真实解 y(x) = e^(-2x) 比较。显示所有步骤。

推导欧拉的稳定性区域

对于测试方程 dy/dx = λy(其中 λ 是复数),欧拉方法给出:

> yₙ₊₁ = yₙ + h·λ·yₙ = yₙ·(1 + hλ)

每步的放大因子:z = 1 + hλ。

稳定性条件:当且仅当 |z| ≤ 1,即 |1 + hλ| ≤ 1 时,计算的解保持有界。

这是复 hλ 平面中的几何条件:点 hλ 必须位于以 (-1, 0) 为中心、半径为 1 的圆内。

欧拉的稳定性区域:{ hλ ∈ ℂ : |1 + hλ| ≤ 1 }

对于实负 λ(衰减 ODE,如 dy/dx = -2y):hλ 必须位于实轴上的区间 (-2, 0] 中。对于 λ = -2 和 h = 0.5:hλ = -1。这正好在稳定性边界上——方法是边界稳定的,这解释了前面例子中的定性失败。

对于 h = 1 和 λ = -2:hλ = -2,将我们置于稳定性区域之外。解呈现振荡且幅度增长。

找到稳定性边界

Runge-Kutta 4(RK4)的稳定性区域比欧拉大,这是它被用于大多数问题的原因之一。

对于实负 λ,RK4 允许 hλ 在实轴上下降到大约 -2.785(vs 欧拉的 -2 限制)。

对于刚性方程,其特征值 λ 在非常不同的大小上——比如 λ₁ = -1 和 λ₂ = -1000——稳定性要求 hλ₂ 保留在该区域内。对于实轴上的 RK4:h·(-1000) ≥ -2.785,所以 h ≤ 0.002785。

这个由刚性特征值 λ₂ 设定的微小步长使仿真昂贵,即使缓慢分量 λ₁ 可以使用 h = 2。

对于应用于 dy/dx = λy 的欧拉方法,稳定性区域是 |1 + hλ| ≤ 1。如果 λ = -4(一个中等刚性的、实值衰减 ODE),欧拉稳定积分的最大步长 h 是多少?显示从稳定性条件的推导。然后:如果 RK4 允许实负 hλ 下降到 -2.785,这个相同 ODE 上 RK4 的最大 h 是多少?

不动点与吸引盆地

应用于 dy/dx = f(y) 的欧拉方法定义了一个离散映射:yₙ₊₁ = g(yₙ) = yₙ + h·f(yₙ)。

这个映射的不动点:y 使得 g(y) = y。对于欧拉在 dy/dx = f(y) 上,不动点满足 f(y) = 0——ODE 的平衡点。

不动点的稳定性:如果 |g'(y)| < 1,附近的迭代收敛到 y。如果 |g'(y*)| > 1,它们发散。

g'(y) = 1 + h·f'(y)。在不动点 y:|1 + h·f'(y)| < 1 表示稳定。

这正好是欧拉稳定性条件,λ = f'(y*) — ODE 在平衡点处的线性化。

吸引盆地:初始条件的集合,在欧拉映射下收敛到 y*。对于非线性系统,盆地边界定义了仿真将可靠地跟踪 ODE 平衡点的位置,或发散到另一个吸引子。

仿真循环是一个离散动力系统。它的定性行为——收敛、振荡、发散——取决于相对于 ODE 方向场几何的步长 h。

将几何与仿真设计相连接

数值仿真的几何归结为三个问题:

1. 稳定性区域在哪里?对于欧拉:圆盘 |1 + hλ| ≤ 1。对于 RK4 更大。对于隐式方法无界(整个左半平面)。

2. ODE 的特征值在哪里?在每个点处 f 的雅可比矩阵的特征值 λ 确定稳定性区域必须包含 hλ。

3. 什么 h 将所有 hλ 保留在该区域内?最大允许的 h = (稳定性区域半径)/ max|λ|。

对于刚性系统:max|λ| 巨大,强制显式方法的 h 微小。隐式方法每步昂贵但允许大 h——它们用每步成本交换稳定性。

Hamming 的见解转化为:数值方法的选择编码了一个关于 ODE 特征值谱几何的赌注。使那个赌注显式是任何仿真中的第一个设计决策。

物理系统有三个分量,特征时间尺度分别为 0.01s、1s 和 100s——意味着 ODE 的特征值大约是 λ₁ = -100、λ₂ = -1、λ₃ = -0.01。你想使用欧拉方法(稳定性限制:h·|λ| ≤ 2)和 RK4(稳定性限制:h·|λ| ≤ 2.785)仿真该系统 1000 秒。每种方法的最大稳定步长是多少?每种方法对 1000 秒需要多少步?这对为什么隐式求解器对刚性系统重要揭示了什么?