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

un

guest
1 / ?
back to lessons

切線近似

幾何概念

常微分方程 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 與真實值 2.71828 相比。誤差:0.468。相對誤差:~17%。

將歐拉法應用於 dy/dx = -2y,初始條件 y(0) = 1,步長 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 }

對於實數、負數 λ(像 dy/dx = -2y 這樣的衰減 ODE):hλ 必須位於實軸上的區間 (-2, 0] 內。使用 λ = -2 和 h = 0.5:hλ = -1。這正好在穩定性邊界上 — 方法邊界穩定,這解釋了前面例子中的定性失敗。

使用 h = 1 和 λ = -2:hλ = -2,將我們置於穩定性區域之外。解會以不斷增長的幅度振盪。

尋找穩定性邊界

龍格-庫塔法 4(RK4)的穩定性區域比歐拉法大,這是它優於大多數問題的原因之一。

對於實數負數 λ,RK4 在實軸上允許 hλ 降至大約 -2.785(相比歐拉法的 -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 平衡點的位置,與發散到另一個吸引子的位置。

模擬迴路是一個離散動力系統。其定性行為 — 收斂、振盪、發散 — 取決於步長 h 相對於 ODE 方向場幾何的關係。

將幾何連接到模擬設計

數值模擬的幾何歸結為三個問題:

1. 穩定性區域在哪裡?對於歐拉:圓盤 |1 + hλ| ≤ 1。對於 RK4 更大。對於隱式方法無界(整個左半平面)。

2. ODE 的特徵值在哪裡?f 在每個點的雅可比矩陣的特徵值 λ 決定了哪個穩定性區域必須包含 hλ。

3. 什麼 h 使所有 hλ 保持在區域內?最大允許 h = (穩定性區域半徑)/ max|λ|。

對於剛性系統:max|λ| 非常大,強制顯式方法使用微小 h。隱式方法每步很昂貴但允許大 h — 它們用每步成本換穩定性。

漢明的洞察轉化為:數值方法的選擇編碼了關於 ODE 特徵值譜幾何的賭注。使該賭注明確是任何模擬中的第一個設計決定。

一個物理系統有三個分量,特徵時間尺度為 0.01s、1s 和 100s — 意味著 ODE 的特徵值大約為 λ₁ = -100、λ₂ = -1、λ₃ = -0.01。你想使用歐拉法(穩定性極限:h·|λ| ≤ 2)和 RK4(穩定性極限:h·|λ| ≤ 2.785)模擬 1000 秒的系統。每個方法的最大穩定步長是多少?1000 秒內每個方法需要多少步?這對為什麼隱式求解器對剛性系統很重要顯示了什麼?