Functional Equation

引言

真實世界的物理現象,物理學家習慣寫成函數方程式。想要用電腦模擬真實世界,設計函數方程式、解函數方程式是必備技能。

比方說,記錄物體所在位置。根據人類目前所知,物體不會分身,不會同時出現在兩個位置,符合函數的概念;物體不會瞬移,不會瞬時出現在遙遠位置,符合連續的概念。因此物體所在位置可以表示成一個連續函數x(t),簡寫成x。

數學家創造了函數、連續,主要是為了符合人類認知。如果影分身之術、飛雷神之術成真,那麼數學家勢必要創造其他數學元件,以符合新認知。

位置的變化多寡,稱作速度,符合微分的概念。因此物體當前速度可以表示成d/dt x(t),簡寫成x′。

物理課教過等速運動。物體速度是40,可以列出等式x′ = 40。大家把40視作一個函數,而非一個實數。

速度也可以忽快忽慢。自訂速度v,可以列出等式x′ = v。

速度的變化多寡,稱作加速度,符合二次微分的概念。因此物體當前加速度可以表示成 d²/dt² x(t),簡寫成x″。

物理課教過等加速度運動。自由落體,加速度是重力加速度g,g是一個常數約9.8,可以列出等式x″ = -g。如果又有空氣阻力f,得到加速度a = f/m,可以列出等式x″ = -g + f/m。

加速度也可以不斷變化。彗星撞地球,加速度是引力加速度g = -Gm₁m₂ / r²,G是萬有引力常數約6.7e-11,m₁ m₂是質量,r是距離。地心座標定成0,可以列出等式x″ = -Gm₁m₂ / x²。

我們的目標就是解x,知道物體的所在位置。

Functional Equation

方程式:已知數、未知數全是實數。實數運算有加減乘除。

x² + 2xy + 2y = 1

函數方程式:已知數、未知數全是函數。函數運算有加減乘除微積代入複合。

                d            g(x+2)
∫ f(x) dx + 2 = —— f(g(x)) + ——————
                dx            f(x)

函數方程式當中的實數,其實是函數,稱作「常數函數」。

Functional

函數:輸入、輸出全是實數。

f(x, y) = x² + 2xy + 2y - 1

泛函數:輸入、輸出全是函數。函數的函數。

                                d            g(x+2)
L(f(x), g(x)) = ∫ f(x) dx + 2 - —— f(g(x)) - ——————
                                dx            f(x)

我不清楚數學家為何故意讓「泛函數(名詞)」跟「函數的(形容詞)」撞名。

Symbolic Solution / Numeric Solution

方程式的解,區分為符號解、數值解。

符號解外觀宛如公式、宛如定律,深受數學家喜愛。

操作科學計算軟體、查閱工程數學書籍,推導符號解。

solve ax² + bx + c = 0   |  solve f(x) + f′(x) = 0
          _________      |
    -b ± V b² - 4ac      |          -x
x = ———————————————      |  f(x) = e
          2a             |

數值解外觀宛如陣列、宛如資料,深受計算學家喜愛。

操作數值模擬軟體、查閱數值分析書籍,演算數值解。

solve 3x² + 12x + 8 = 0  |  solve f(x) + f′(x) = 0
x = -0.7790              |  f(x) = [7.4, 2.7, 1.0, 0.4, 0.1]

古代沒有計算機,古人只找符號解。導致數學課本只教符號解,不教數值解。大部分的方程式,沒人知道符號解,只好改找數值解。

符號解計算工具如Symbolab。數值解計算工具如sundials

符號解的詳細分類

符號組成式子,式子細分為代數式、閉合式、解析式、……。大家口語上不說符號解,而是說代數解、閉合解、解析解、……。

algebraic solution:只有四則運算。
closed-form solution:包含以上項目,而且多了三角函數。
analytic solution:包含以上項目,而且多了無窮級數。

許多方程式已被證明不存在代數解、閉合解、解析解、……。

Kepler's Equation:橢圓軌道運動,已知座標位置(x,y),求時刻t,沒有閉合解。
Bézier Curve:加權平均數曲線,已知座標位置(x,y),求參數t,沒有閉合解。

Differential Equation

Differential Equation

「微分方程式」。函數方程式,只有四則運算、微分運算。

           d 
f(x) + 2 = —— f(x) + 2 g(x)
           dx

符號解數學公式

微分等於零。解是任意的常數函數。

d
—— f(x) = 0     --->   f(x) = c
dx

微分等於原本函數。解是ex。原理是ex微分之後還是ex

d                              x
—— f(x) = f(x)  --->   f(x) = e
dx

數學家以此為基礎,讓方程式漸趨複雜,發展各種求解技巧。由於這不是我的專長,就不多提了。例如彈簧位置符號解:

符號解演算法(Least Squares Method)(Regression)

函數方程式重新整理成「泛函數等於零」的格式。

函數方程式。
d
—— f(x) = f(x) + 1
dx

等量減法公理,兩邊同減一樣多的東西。(移項)
d
—— f(x) - f(x) - 1 = 0
dx

整理成泛函數的模樣。
          d
L(f(x)) = —— f(x) - f(x) - 1
          dx         

省略括號,簡化符號,比較好讀。
L(f) = f′ - f - 1

推定解是自訂函數,係數待求。

assume f(x) = ax² + bx + c     find a,b,c

自訂函數代入泛函數。通常不是零,通常有誤差。

L(f(x)) = (2a + b) - (ax² + bx + c) - 1

平方誤差盡量小:函數每一處的平方,總和盡量小。

-∞累計到+∞,誤差無限大。因此大家只累計一小段區間。

argmin L(f(x)) dot L(f(x))     點積風格
 a,b,c
argmin ∫ L(f(x))² dx           積分風格
 a,b,c

最小值位於一次微分等於零的地方。對各個係數偏微分。

{ ∂/∂a ∫ L(f(x))² dx = 0
{ ∂/∂b ∫ L(f(x))² dx = 0
{ ∂/∂c ∫ L(f(x))² dx = 0

如果積分很難算,可以偷工減料,對輸入取樣。

let x = -2, -1, 0, 1, 2
⎧ ∂/∂a L(f(-2))² + L(f(-1))² + L(f(0))² L(f(1))² + L(f(2))² = 0
⎨ ∂/∂b L(f(-2))² + L(f(-1))² + L(f(0))² L(f(1))² + L(f(2))² = 0
⎩ ∂/∂c L(f(-2))² + L(f(-1))² + L(f(0))² L(f(1))² + L(f(2))² = 0

整件事情宛如迴歸。一筆資料:輸入值、輸出值(零)。迴歸函數:自訂函數代入泛函數。

data: { (-2,0), (-1,0), (0,0), (1,0), (2,0) }
regression function: L(f(x)) = (2a + b) - (ax² + bx + c) - 1

自訂函數可以推廣成自訂函數網路。函數網路末端接上泛函數,即是代入。大量資料拿來訓練函數網路。

符號解演算法(Galerkin Method)(Linearization)

推定解是自訂函數的加權總和(基底的線性組合),係數待求。

assume f(x) = w₀ φ₀(x) + w₁ φ₁(x) + w₂ φ₂(x)

再推定泛函數與自訂函數的點積等於零。

可以想成施測。挑選數個函數,進行投影,必須為零。

⎧ L(f(x)) dot φ₀(x) = 0
⎨ L(f(x)) dot φ₁(x) = 0
⎩ L(f(x)) dot φ₂(x) = 0

值得一提的是,一次微分方程式,得到一次方程組,容易求解。

符號解演算法(Parker–Sochacki Method)(Approximation)

推定解是多項式函數(例如泰勒級數),係數待求。

多項式函數容易微分、容易移項。

數值解演算法(Backward Euler Method)(Dynamic Programming)

函數方程式離散化,移項整理,得到遞迴公式,依序填值。

d
—— f(x) = f(x) + 1
dx
(f(x) - f(x - Δx)) / Δx = f(x) + 1     1st-order backward derivative
(f[i] - f[i-1]   ) / Δx = f[i] + 1     implicit method
f[i] - f[i-1]  = f[i] Δx + Δx
f[i] - f[i] Δx = f[i-1] + Δx
f[i] (1 - Δx)  = f[i-1] + Δx
f[i] = (f[i-1] + Δx) / (1 - Δx)        recurrence

數值解演算法(Forward Euler Method)(Extrapolation)

難以移項整理的情況下,不得不修改索引值。恰是右邊差分。

d
—— f(x) = x sqrt(f(x))
dx
(f(x) - f(x - Δx)) / Δx = x     sqrt(f(x))     1st-order backward derivative
(f[i] - f[i-1]   ) / Δx = (i-1) sqrt(f[i-1])   explicit method
f[i] = f[i-1] + (i-1) sqrt(f[i-1]) Δx          recurrence
(f(x + Δx) - f(x)) / Δx = x sqrt(f(x))         1st-order forward derivative
(f[i+1]    - f[i]) / Δx = i sqrt(f[i])
f[i+1] = f[i] + Δx i sqrt(f[i])                same recurrence

畫成函數圖形,宛如外插。利用原處斜率,求得下一處函數值。

斜率取自微分方程式的右式,完全不需要移項整理。

f(xₙ₊₁) = f(xₙ) + Δx f′(xₙ)

數值解演算法(Linear Multistep Method)

指數函數、三角函數、非線性函數,函數曲線斜率變化極大。只取一處斜率,往往不夠精準。因此取多處斜率,求加權平均數。取先前計算過的斜率,節省計算時間。宛如線性遞迴公式。

斜率數量、斜率地點、權重大小,可以自由設定,但是必須滿足一致性、滿足泰勒近似。一致性留待後面章節介紹。

經典的設定方式是AB2。取兩處斜率:原處、上一處。其兩個權重:3/2、-1/2。

另外還有很多花招,例如AM4、BDF2,這裡就不介紹了。

⎰ f(xₙ₊₁) = f(xₙ) + Δx sₙ
⎱ sₙ = 3/2 f′(xₙ) - 1/2 f′(xₙ₋₁)
f(xₙ) = f(xₙ₋₁) + 3/2 Δx f′(xₙ₋₁) - 1/2 Δx f′(xₙ₋₂)

數值解演算法(Runge–Kutta Method)

方才取左方多處斜率。現在取右方多處斜率。畢竟目的是右方函數值。

即時採用最新斜率,更加精準。遞增法改成遞推法。從原處斜率開始,遞推下一處斜率。採用線狀遞推,不採用網狀遞推,事情比較簡單。

斜率數量、斜率地點、權重大小,可以自由設定,但是必須滿足一致性、滿足泰勒近似。一致性留待後面章節介紹。

經典的設定方式是RK4。取四處斜率:原處、半步、半步、一步。其四個權重:1/6、1/3、1/3、1/6。

另外還有很多花招,例如BS23、RKF45,這裡就不介紹了。

Differential Equation (Numerical Simulation)🚧

Numerical Simulation

數值模擬。函數方程式,求得數值解。

Numerical Iteration:數值遞推。建立遞迴公式,逐步遞推求得數值解。
Numerical Error:數值誤差。數值遞推過程,數值解與符號解不相符。
Numerical Stability:數值穩定。如何讓數值誤差趨近零。
Numerical Scheme:數值方案。如何設計遞迴公式,使得數值穩定。

Numerical Iteration

據我所知,數值模擬目前只有這一套手法,沒有其他手法了。這一套手法基於Euler Method,建立遞迴公式,依序填值。

方才處理單變數函數。現在處理多變數函數,衍生大量細節。

為了做成動畫,時間變化放在左式,空間變化放在右式。

為了做成動畫,左式採用backward difference。

Recurrence

離散化。三種版本差分。


計算過程,建立表格,依序填值,得到數值解。

symbolic solution                   | numeric solution
------------------------------------| ----------------
f(t, x)                             | f[⋅][⋅]
f(t₀, x₀)                           | f[0][0]
f(tₙ, xᵢ) = f(t₀ + n Δt, x₀ + i Δx) | f[n][i]

符號解、數值解,數學符號改寫成遞推風格。

symbolic solution | numeric solution
------------------| -----------------
f⁽˙⁾(⋅)           | f̂⁽˙⁾(⋅)
f⁽⁰⁾(x₀)          | f̂⁽⁰⁾(x₀)
f⁽ⁿ⁾(xᵢ)          | f̂⁽ⁿ⁾(xᵢ)

Initial Value / Boundary Value

邊界。計算範圍。輪廓形狀。

我們通常只關心一小塊範圍,而不是從負無限大到正無限大。

邊界形狀視實際問題而定。例如矩形、圓形、特殊造型。

其中最棒的形狀是一維區間、二維矩形、三維立方體,恰好符合程式語言的陣列格式。

f(t)       5 ≤ t ≤ 10      time interval
                           zero-dimensional space
                           = interval boundary

f(t,x)     5 ≤ t ≤ 10      time interval
           -10 ≤ x ≤ +10   space interval
                           = rectangle boundary

f(t,x,y)   5 ≤ t ≤ 10      time interval
           x² + y² ≤ 10    circular space
                           = cylinder boundary

數值模擬當中,變數被分成時間變數與空間變數,邊界被分成初始值與邊界值。

Initial Value:初始值。時刻是t₀的時間變數邊界。
Boundary Value:邊界值。空間變數邊界。

初始值視實際問題而定。例如零函數、脈衝函數、隨機函數。

其中最難纏的初始值是隨機函數。必須謹慎內插適當數值,以確保邊界內部數值連續。一種替代方案是【尚待確認】:函數值是隨機弦波疊加。

(1) Zero Initial Condition         零初始條件(一律是零)
(2) Delta-pulse Initial Condition  脈衝初始條件(一處非零)
(3) Random Initial Condition       隨機初始條件(亂數)

邊界值視實際問題而定。例如無界函數、對稱函數、週期函數。

其中最難纏的邊界值是無界函數。必須謹慎外插適當數值,以確保邊界內緣數值不受影響。一種替代方案是Sponge Layer:海綿層置於邊界外緣,海綿層的函數值快速衰減至零。

(1) Open Boundary Condition      開放邊界條件:無限空間
(2) Symmetric Boundary Condition 對稱邊界條件:牆面反彈
(3) Periodic Boundary Condition  週期邊界條件:無限循環

Initial Value Problem / Boundary Value Problem

數值模擬當中,問題被分成初始值問題與邊界值問題。前者較簡單,演算法如前所述。後者較困難,演算法更加複雜,此處省略。

Initial Value Problem:初始值問題。邊界值不是指定數值。請見上個小節。
Boundary Value Problem:邊界值問題。邊界值是指定數值。

指定數值之邊界值視實際問題而定。例如函數值、函數導數值。

(1) Dirichlet Boundary Condition 函數值
(2) Neumann Boundary Condition   函數導數值(的邊界法線分量)
(3) Cauchy Boundary Condition    上述兩者
(4) Robin Boundary Condition     上述兩者的加權總和

實際問題還有各式各樣的初始條件與邊界條件,但是目前尚未形成一套知識體系,無法為大家介紹。例如零散時間零散地點已知數值、外力即時影響數值。等你發表論文。

Numerical Error

數值誤差。符號轉數值導致的誤差。分為兩種類型。

round-off error:四捨五入誤差。實數四則運算從符號轉數值導致的誤差。
truncation error:截斷誤差。函數微分運算從符號轉數值導致的誤差。

實數從符號轉數值,一般採用浮點數。四捨五入誤差,一般就是浮點數運算誤差。請見本站文件「Bit」。

函數微分從符號轉數值,一般採用泰勒近似。截斷誤差,一般就是泰勒近似誤差。請見本站文件「Approximation」。

Round-off Error

四捨五入誤差。浮點數運算結果將消滅多餘的低位數。

簡易統計方式:單次運算誤差x運算次數=總誤差。

機器精度ϵ,時間複雜度O(N),總誤差O(ϵN)。

更細膩的分析,請自行上網搜尋講義。此非本文重點。

Truncation Error

截斷誤差。泰勒近似結果將消滅多餘的高次方項。

函數方程式、其離散化(遞迴公式),兩者差距。

函數方程式重新整理成泛函數的模樣,才能相減。

微分運算的泰勒近似,保留越多項,遞迴公式越精準。

大家習慣用大O符號呈現截斷誤差。

differential equation:
d/dx f(x) = f(x) + 1
d/dx f(x) - (f(x) + 1) = 0

discretization:
(f[i] - f[i-1]) / Δx = f[i] + 1
(f[i] - f[i-1]) / Δx - (f[i] + 1) = 0

truncation error:
  ( d/dx f(x) - (f(x) + 1) )
- ( (f[i] - f[i-1]) / Δx - (f[i] + 1) )

consistence:
  d/dx f(x) - (f(x) + 1)
= lim (f[i] - f[i-1]) / Δx - (f[i] + 1)
  Δx→0

Numerical Stability

判斷數值誤差是否趨近零,藉以判斷數值模擬是否精準。

Local Error / Global Error

local error: distance of 1st iteration of
             a symbolic solution and a numeric solution.
             ‖f⁽¹⁾ - f̂⁽¹⁾‖ ≡ distance(f⁽¹⁾(x), f̂⁽¹⁾(x))
                           ≡ distance(f(t₁, ⋅), f[1][⋅])

global error: distance of nth iteration of
              a symbolic solution and a numeric solution.
              ‖f⁽ⁿ⁾ - f̂⁽ⁿ⁾‖ ≡ distance(f⁽ⁿ⁾(x), f̂⁽ⁿ⁾(x))
                            ≡ distance(f(tₙ, ⋅), f[n][⋅])
局部誤差:符號解、數值解做一步,兩者差距。
全域誤差:符號解、數值解做n步,兩者差距。

順帶一提,累加n處local error並不等於global error。

順帶一提,截斷誤差同時考慮時間變數與空間變數的步進,局部誤差只考慮時間變數的步進。有些文獻誤將截斷誤差與局部誤差視為相同,誤將O((Δt)ᵖ + (Δx)𐞥)與‖f⁽¹⁾ - f̂⁽¹⁾‖視為相同。

時間變數的步進,大家習慣採用一階泰勒近似,沒什麼好談的。因此大家省略時間變數的步進,並將截斷誤差與局部誤差視為相同,將O((Δx)𐞥)與‖f⁽¹⁾ - f̂⁽¹⁾‖視為相同。

Metric

局部誤差、全域誤差的距離函數,通常設定成平方距離。

沒有空間變數:兩個數字的距離。通常設定成absolute-value norm。
擁有空間變數:兩個函數的距離。通常設定成Hibert norm。
‖f⁽ⁿ⁾ - g⁽ⁿ⁾‖₂ = | f(tₙ) - g(tₙ) |

‖f⁽ⁿ⁾ - g⁽ⁿ⁾‖₂ = √ ∫ (f(tₙ,x) - g(tₙ,x))² dx

‖f⁽ⁿ⁾ - g⁽ⁿ⁾‖₂ = √ ∫∫ (f(tₙ,x,y) - g(tₙ,x,y))² dxdy

兩個離散化函數的距離:如法炮製。黎曼積分改成黎曼和。

我們習慣在邊界取樣,導致黎曼和在左右邊界各多出½Δx寬度。無傷大雅。如果你很在意,你可以扣掉它。

‖f̂⁽ⁿ⁾ - ĝ⁽ⁿ⁾‖₂ = √ sum (f̂⁽ⁿ⁾(xᵢ) - ĝ⁽ⁿ⁾(xᵢ))² Δx
               = √ sum (f[i] - g[i])² Δx

一個函數與一個離散化函數的距離:大家採用兩個離散化函數的距離,事情比較簡單。

‖f⁽ⁿ⁾ - f̂⁽ⁿ⁾‖₂ = √ sum (f⁽ⁿ⁾(xᵢ) - f̂⁽ⁿ⁾(xᵢ))² Δx

Fundamental Theorem of Numerical Analysis

數值分析基本定理。if consistent then converge = stable。

簡化說法:consistent + stable = converge。

這三個詞彙的中文翻譯:

adjective   形容詞丨 noun        名詞 
------------一一一丨-------------一一一
consistent  一致的丨 consistency 一致性
stable      穩定的丨 stability   穩定性
convergent  收斂的丨 convergence 收斂性

這三個詞彙的原始意義:

consistency: 1. theorems have no contradiction.
             2. an equation have a unique solution.

stability: distance of corresponding term of
           two sequences is bounded.
           |aₙ - bₙ| ≤ K |a₀ - b₀| when n ≥ n₀
           where K and n₀ are constants

convergency: ending of a sequence leads to a constant.
             aₙ → C when n → ∞
             where C is a constant
一致性:定理無矛盾。等式有唯一解。表裡如一。
穩定性:兩串數列,對應項差距範圍受限。牽繩遛狗。
收斂性:一串數列,數字趨近定值。矢志不渝。

這三個詞彙在數值模擬當中的用法:

(我沒有照抄文獻裡的句子。我不確定我的理解是否正確。)

consistency: difference of the functional equation and
             its discretization approaches zero.
             L(f(t,x)) - L(f̂(t,x)) → 0 when Δt→0, Δx→0

             big-O notation is used somehow.
             L(f(t,x)) = L(f̂(t,x)) + O((Δt)ᵖ + (Δx)𐞥)
             where p>0, q>0

stability: distance of corresponding iteration of
           two numeric solutions with
           different initial conditions is bounded.
           ‖f̂⁽ⁿ⁾ - ĝ⁽ⁿ⁾‖ ≤ K ‖f̂⁽⁰⁾ - ĝ⁽⁰⁾‖ when n≥0
           K is a constant

           with consistency,
           distance of corresponding iteration of
           a symbolic solution and a numeric solution with
           same initial condition is bounded.
           ‖f⁽ⁿ⁾ - f̂⁽ⁿ⁾‖ ≤ K ‖f⁽⁰⁾ - f̂⁽⁰⁾‖ when n≥0
           K is a constant

convergency: distance of corresponding iteration of
             a symbolic solution and a numeric solution with
             same initial condition leads to zero.
             ‖f⁽ⁿ⁾ - f̂⁽ⁿ⁾‖ → 0 when n→∞
一致性:函數方程式、其離散化(遞迴公式),兩者趨近相等。
穩定性:兩組數值解(初始條件不同),各回合距離受限。
一致性且穩定性:符號解、數值解,各回合距離受限。
收斂性:符號解、數值解,各回合趨近相等。
一致性:截斷誤差趨近零。
穩定性:任兩數值解,各回合距離受限。
一致性且穩定性:全域誤差受限。
收斂性:全域誤差趨近零。

許多文獻採用另一種定義,將函數f(t,x)改成斜率d/dt f(t,x),即是微分方程式的右式。我推測原因是避免在Δt→0的情況下乘以Δt,並且確保時間變化和空間變化可以分離成左式右式。

證明我還沒有學會。等我學完泛函分析不知何年何月。Banach space、mean value theorem、uniform boundedness principle、dominated convergence theorem。

實務上容易檢查一致性。檢查遞迴公式是否符合泰勒近似即可。實務上很難檢查穩定性。大家將穩定性換成其他東西、換成其特例。

asymptotic stability漸近穩定性:
線性遞迴公式,改寫成矩陣,特徵值絕對值(奇異值)皆小於1。
數值解每回合變小或不變。
我懷疑我在竹篙鬬菜刀。

zero-stability零穩定性:
遞迴公式,改寫成特徵方程式,根的絕對值皆小於1。
Courant–Friedrichs–Lewy Condition:
IVP、一次微分方程式且滿足連續方程式、Linear Numerical Scheme
得到asymptotic stability。

Lax Equivalence Theorem:
IVP、一次微分方程式、Linear Numerical Scheme
得到asymptotic stability。

Dahlquist Equivalence Theorem:
IVP、非一次微分方程式、Linear Multistep Method
得到zero-stability。
Hyperbolic partial differential equations
Peter D. Lax
線性遞迴公式,數值解,冪級數不超過一

Difference methods for initial-value problems
Robert D. Richtmyer, K. W. Morton.
線性遞迴公式,數值解,頻譜強度不超過一
應該就是Von Neumann Stability Analysis

Numerical Solution of Partial Differential Equations: An Introduction
K. W. Morton, D. F. Mayers
線性遞迴公式,數值解差距,冪級數收斂

An Introduction to Numerical Analysis
Endre Süli, David F. Mayers
一般遞迴公式,數值解差距,冪級數收斂

Numerical solution of partial differential equations: finite difference methods
Gordon D. Smith
線性遞迴公式,數值解,最大的奇異值不超過一

Asymptotic Stability

當遞迴公式是一次遞迴函數,可以將穩定性換成漸進穩定性。

當遞迴公式是一次遞迴函數,得以簡化成矩陣運算。常數項弄成齊次座標。【尚待確認】

‖Aⁿf̂⁽⁰⁾ - Aⁿĝ⁽⁰⁾‖ ≤ K ‖f̂⁽⁰⁾ - ĝ⁽⁰⁾‖   stability

當遞迴公式恰是一次遞迴函數,兩種數值解相加減仍是數值解。穩定性改寫成:數值解範圍受限。

‖Aⁿf̂⁽⁰⁾‖ ≤ K ‖f̂⁽⁰⁾‖   stability of linear recurrence

實務上很難檢查穩定性。一種替代方案是令矩陣範數受限,導致矩陣範數小於等於1,稱作漸進穩定性。

‖Aⁿf̂⁽⁰⁾‖ ≤ ‖Aⁿ‖ ‖f̂⁽⁰⁾‖ ≤ ‖A‖ⁿ ‖f̂⁽⁰⁾‖   sub-multiplicative
let ‖A‖ⁿ ≤ |K| for all n
‖A‖ ≤ 1

採用平方範數。矩陣所有特徵值均介於±1。矩陣特徵值絕對值最大者小於等於1。矩陣不一定有特徵值,嚴謹起見寫成奇異值。

‖A‖₂ = max(sigval(A)) = max(abs(eigval(A))) ≤ 1
0 ≤ sigval(A) = abs(eigval(A)) ≤ 1
-1 ≤ eigval(A) ≤ 1

想要檢查漸進穩定性,只需將遞迴公式改寫成矩陣,然後檢查所有奇異值皆小於等於1。

0 ≤ sigval(A) ≤ 1 => asymptotically stable => stable

援引三角不等式,形成單調性。數值解每回合變小或不變。

‖f̂⁽ⁿ⁺¹⁾‖₂ = ‖Af̂⁽ⁿ⁾‖₂ ≤ ‖A‖₂ ‖f̂⁽ⁿ⁾‖₂   sub-multiplicative
‖f̂⁽ⁿ⁺¹⁾‖₂ ≤ ‖f̂⁽ⁿ⁾‖₂                   monotonicity

Absolute Stability

數值分析基本定理,要求Δt與Δx趨近零。然而浮點數位數有限,不可能趨近零。實務上必須檢查特定大小的Δt與Δx是否滿足穩定性。嚴謹起見,數學家另造一詞,稱作絕對穩定性。簡單起見,大家還是稱作穩定性。

先前章節Backward Euler Method的微分方程式作為範例。

d
—— f(t) = f(t) + 1
dt
(f(t) - f(t - Δt)) / Δt = f(t) + 1     1st-order backward derivative
(f[i] - f[i-1]   ) / Δt = f[i] + 1     implicit method
f[i] = (f[i-1] + Δt) / (1 - Δt)        recurrence

沒有空間變數的情況下,矩陣退化為數字,事情比較簡單。

遞迴公式係數介於±1。以此推導Δt的適當範圍。

f[i] = (f[i-1] + Δt) / (1 - Δt)
f[i] = f[i-1] / (1 - Δt) + Δt / (1 - Δt)
f[i] = a f[i-1] + b   where a =  1 / (1 - Δt)
                            b = Δt / (1 - Δt)
f[i] is stable iff |a| ≤ 1
f[i] is stable iff Δt ≥ 2 or Δt ≤ 0

implicit method支援大Δt,容易滿足穩定性。explicit method支援小Δt,不容易滿足穩定性。

若有需要採用特定的Δt,又想滿足穩定性,解決方法是更換implicit method和explicit method。

Stiffness

難以移項整理的情況下,只好採用explicit method。explicit method支援小的Δt與Δx,不容易滿足穩定性。

根據函數方程式的造型,甚至只能支援很小很小的Δt與Δx,導致計算時間很久很久。數學家稱作剛硬性,硬篤歹舞。

剛硬性沒有明確數學定義。只是一種感覺。

Numerical Scheme

數值方案。面對各式各樣的函數方程式,想方設法調整遞迴公式,以便滿足穩定性、緩解剛硬性。

Finite Difference

計算技巧,共三種。自由組合。

1a. implicit method       (backward method)  :取新值。
1b. explicit method       (forward method)   :取舊值。
1c. Crank–Nicolson method                    :半新加半舊。雞肋。
2.  operator splitting                       :分割計算步驟。
3.  semi-implicit method  (symplectic method):更動計算順序。

implicit。取新值。不見得能夠移項整理。有時無法使用。

d/dx f(x) = f(x) + 1   --->   (f[i] - f[i-1]) / Δx = f[i] + 1
                                                     ^^^^

explicit。取舊值。

d/dx f(x) = f(x) + 1   --->   (f[i] - f[i-1]) / Δx = f[i-1] + 1
                                                     ^^^^^^

operator splitting。項次太多,逐步更新。

d/dx f(x) = 2f(x) + 3g(x)   --->   1. (f[i] - f[i-1]) / Δx = 2 f[i]
                                   2. (f[i] - f[i-1]) / Δx = 3 g[i]

semi-implicit。式子太多,設定順序。

d/dx f(x) = 2f(x) + 3g(x)   --->   1. (f[i] - f[i-1]) / Δx = 3 g[i]
                                   2. (f[i] - f[i-1]) / Δx = 2 f[i]

Stencil

一階微分方程式。implicit。

d
—— f(t) = f(t) + 1
dt
(f(t) - f(t-Δt)) / Δt = f(t) + 1
(f[i] - f[i-1]) / Δt = f[i] + 1
f[i] - f[i-1] = f[i] ⋅ Δt + Δt
f[i] - f[i] ⋅ Δt = f[i-1] + Δt
f[i] ⋅ (1 - Δt) = f[i-1] + Δt
f[i] = (f[i-1] + Δt) / (1 - Δt)

一階微分方程式。explicit。

d
—— f(t) = f(t) + 1
dt
(f(t) - f(t-Δt)) / Δt = f(t) + 1
(f[i] - f[i-1]) / Δt = f[i-1] + 1
(f[i] - f[i-1]) = (f[i-1] + 1) ⋅ Δt
f[i] = f[i-1] + (f[i-1] + 1) ⋅ Δt

二階微分方程式。explicit。

d²         d
——— f(t) = —— f(t) - f(t)
dt²        dt
(f(t+Δt) - 2f(t) + f(t-Δt)) / (Δt)² = (f(t) + f(t-Δt)) / Δt - f(t)
(f[i+1] - 2f[i] + f[i-1]) / (Δt)² = (f[i] + f[i-1]) / Δt - f[i]
f[i+1] = (2f[i] - f[i-1]) + (f[i] + f[i-1]) ⋅ Δt - f[i] ⋅ (Δt)²
f[i] = (2f[i-1] - f[i-2]) + (f[i-1] + f[i-2]) ⋅ Δt - f[i-1] ⋅ (Δt)²

一階微分方程組。

Lotka–Volterra Equation:
⎰ d/dt x(t) = 1.1 x(t) - 0.4 x(t) y(t)
⎱ d/dt y(t) = 0.1 x(t) y(t) - 0.4 y(t)

高階微分方程式。化作各階微分方程組。

d³           d²           d                   
——— f(t) = 6 ——— f(t) + 7 —— f(t) + 8 f(t) + 9
dt³          dt²          dt                  
錯誤方式
⎧ f  = f                              ⎡ f  ⎤   ⎡ 0 1 0 0 ⎤ ⎡ 1  ⎤
⎨ f′ = f′                             ⎢ f′ ⎥   ⎢ 0 0 1 0 ⎥ ⎢ f  ⎥
⎪ f″ = f″                      --->   ⎢ f″ ⎥ = ⎢ 0 0 0 1 ⎥ ⎢ f′ ⎥
⎩ f‴ = 6f″ + 7f′ + 8f + 9             ⎣ f‴ ⎦   ⎣ 9 8 7 6 ⎦ ⎣ f″ ⎦

正確方式
⎧ (f )′ = f′                          ⎧ f₀′ = f₁
⎨ (f′)′ = f″                   --->   ⎨ f₁′ = f₂
⎩ (f″)′ = 6f″ + 7f′ + 8f + 9          ⎩ f₂′ = 6f₂ + 7f₁ + 8f₀ + 9

一階偏微分方程式。explicit。

Advection Equation:
∂                 ∂        
—— f(t,x) = -0.4  —— f(t,x)
∂t                ∂x       
(f(t,x) + f(t-Δt,x)) / Δt = -0.4 ⋅ (f(t,x) - f(t,x-Δx)) / Δx
(f[i][j] + f[i-1][j]) / Δt = -0.4 ⋅ (f[i-1][j] - f[i-1][j-1]) / Δx
f[i][j] = f[i-1][j] - 0.4 ⋅ (f[i-1][j] - f[i-1][j-1]) ⋅ Δt / Δx
f[i][j] = f[i-1][j] - k ⋅ (f[i-1][j] - f[i-1][j-1])
where k = 0.4 ⋅ Δt / Δx

一階偏微分方程式。explicit。

Heat Equation:
∂                   ∂²             ∂²
—— f(t,x,y) = 0.1 ( ——— f(t,x,y) + ——— f(t,x,y) )
∂t                  ∂x²            ∂y²
離散化:右邊版本的微分、中間版本的laplace。方便起見Δx = Δy,兩項合併。
(f[t+1][x][y] - f[t][x][y]) / Δt = 0.1 ⋅ (f[t][x][y+1] + f[t][x][y-1]
+ f[t][x+1][y] + f[t][x-1][y] - 4 ⋅ f[t][x][y]) / Δx / Δy

以時間當作主軸:左式是t+1,右式是t。
f[t+1][x][y] = f[t][x][y] + 0.1 ⋅ (f[t][x][y+1] + f[t][x][y-1]
+ f[t][x+1][y] + f[t][x-1][y] - 4 ⋅ f[t][x][y]) / Δx / Δy ⋅ Δt 

兩個陣列輪流使用。
fnext[x][y] = f[x][y] + 0.1 ⋅ (f[x][y+1] + f[x][y-1]
+ f[x+1][y] + f[x-1][y] - 4 ⋅ f[x][y]) / Δx / Δy ⋅ Δt 

簡寫成k和laplace,比較清爽。
fnext[x][y] = f[x][y] + k ⋅ laplace(f[x][y])
where k = 0.1 ⋅ Δt / Δx / Δy

一階偏微分方程式。implicit。

Heat Equation:
∂                   ∂²             ∂²
—— f(t,x,y) = 0.1 ( ——— f(t,x,y) + ——— f(t,x,y) )
∂t                  ∂x²            ∂y²
取新值。
fnext[x][y] = f[x][y] + k ⋅ laplace(fnext[x][y])

移項整理,新值通通挪至左式。
fnext[x][y] = f[x][y] + k ⋅ (sum - 4 fnext[x][y])
(1 + 4k) fnext[x][y] = f[x][y] + k ⋅ sum
(1 + 4k) fnext[x][y] - k ⋅ sum = f[x][y]

一次方程組 A fnext = f,已知 A 和 f,求解 fnext。
心裡邊想想就好,不必真的去建立大型稀疏矩陣、大型向量。
採用鬆弛法,得到遞推更新式子。
fnext[x][y] = (f[x][y] + k ⋅ sum) / (1 + 4k)

Differential Equation (Mathematics)🚧

微分方程式的分類:數學家的觀點

微分方程式分為兩類。一、常微分方程式:對同一種變數進行微分。二、偏微分方程式:對多種變數進行微分。

Ordinary Differential Equation, ODE:

             ∂             ∂  ∂ 
f(x,y) + 2 = —— f(x,y) + 3 —— —— f(x,y) + 2 g(x,y)
             ∂x            ∂x ∂x

        ∂f     ∂²f
f + 2 = —— + 3 ——— + 2g     省略括號的部分、合併多次微分的部分
        ∂x     ∂x²          (Leibniz)

f + 2 = Dₓf + 3Dₓₓf + 2g    微分簡寫成 Dₓf Dₓₓf (Arbogast)

f + 2 = fₓ + 3fₓₓ + 2g      微分簡寫成 fₓ fₓₓ   (???)

f + 2 = f′ + 3f″ + 2g       微分簡寫成 f′ f″    (Lagrange)

f + 2 = ḟ + 3f̈ + 2g         微分簡寫成 ḟ f̈      (Newton)
Partial Differential Equation, PDE:

             ∂             ∂  ∂ 
f(x,y) + 2 = —— f(x,y) + 3 —— —— f(x,y) + 2 g(x,y)
             ∂x            ∂x ∂y

        ∂f     ∂²f
f + 2 = —— + 3 ——— + 2g     省略括號的部分、合併多次微分的部分
        ∂x     ∂xy

f + 2 = Dₓf + 3Dₓ₝f + 2g    微分簡寫成 Dₓf Dₓ₝f

f + 2 = fₓ + 3fₓ₝ + 2g      微分簡寫成 fₓ fₓ₝

微分方程式分為兩類。一、一次:函數微分視作變數,形成一次方程式。二、非一次。

一次微分方程式,可以推導符號解(分離變數法、格林函數)、演算數值解(時域一次方程組、頻域傅立葉轉換)。非一次微分方程式,則是數學界的大難題,至今只有少數特例找到了符號解。

Linear Differential Equation:

      ∂f     ∂f     ∂²f      ∂²f     ∂²f
f + 2 —— + 3 —— + 5 ———— + 7 ——— + 9 ——— + 2 = 0
      ∂x     ∂y     ∂x∂y     ∂x²     ∂y²
Nonlinear Differential Equation:

       ∂f   ∂f ∂f
f² + f —— + —— —— = 0 
       ∂x   ∂x ∂y

微分方程式分為兩類。一、單變量函數。二、多變量函數:多了梯度、散度、旋度。

Univariate Function:

      ∂f     ∂f     ∂²f      ∂²f     ∂²f
f + 2 —— + 3 —— + 5 ———— + 7 ——— + 9 ——— = 0
      ∂x     ∂y     ∂x∂y     ∂x²     ∂y²
Multivariate Function:

  ∂Fx   ∂Fy          ∂Fy   ∂Fx 
( ——— + ——— ) Fx + ( ——— - ——— ) Fy = 0 
  ∂x    ∂y           ∂x    ∂y  

微分方程式的解:數學家的觀點

微分方程式有多解。

一、常數函數,微分通通是零,答案很多種。
二、散度旋度運算,好比a + b = 1,答案很多種。

追加邊界條件,以得到唯一解。

1. Initial Condition  指定解的某處的函數值、導數值
2. Boundary Condition 指定解的邊界輪廓,以及邊界函數值、導數值
函數值:確保解的零次項(常數項)、一次項、二次項、……。得到唯一解。
導數值:確保解的一次項、二次項、……。得到唯一解,除了常數項。

微分方程式計算技巧:數學家的觀點

遞迴公式,必須滿足收斂條件。

boundary condition:確保唯一解
convergence condition:確保收斂至唯一解

遞迴公式,可以整體積分,調整階數。

Finite Difference Method:使用原本的微分方程式(跟「離散化函數微分」撞名)
Finite Volume Method:使用微分方程式的積分

遞迴公式的右式,微分運算的泰勒近似可以多取幾項,函數點可以多取幾個。

Linear Multistep Method:參考先前幾個函數點
Runge–Kutta Method:預測之後幾個函數點

一階微分方程組可以畫成圖形

time series graph   函數曲線。以時間為主軸。
gradient field plot 移動速度。(dx/dt, dy/dt)向量場。
phase portrait      移動路線。初始條件(x₀,y₀)沿著向量場跑。

Differential Equation (Physics)🚧

經典的微分方程式:Laplacian

全是人名,紀念古人。

Laplace Equation    ∆f = 0          fₓₓ + f₝₝ = 0
Poisson Equation    ∆f = g          fₓₓ + f₝₝ = g
Helmholtz Equation  ∆f = λf         fₓₓ + f₝₝ = λf

Laplace Equation

「拉普拉斯方程式」。處處梯散為零。

一坨東西的勢力均衡。

Poisson Equation

「泊松方程式」。處處梯散已知。

常見用法是兩邊梯散相同∆f₁ = ∆f₂,f₂已知或∆f₂已知。

兩坨東西的勢力分布相等。其中一坨已知。

梯散反運算。已知梯散g,求得原函數f。

符號解:格林函數疊加而得。

數值解:擁有特殊演算法。時域一次方程組、頻域傅立葉轉換。

Helmholtz Equation

「亥姆霍玆方程式」。梯散運算的特徵函數。

梯散運算的特徵函數f是各種頻率的cos和sin波。

符號解:f(x) = e𝑖√λ‖x‖ / 4π‖x‖。

經典的微分方程式:Diffusion

引入了空間變數、時間變數,以解釋物理現象。

注意到,數學家使用梯散旋符號,偏微分的對象,涵蓋所有變數。物理學家使用梯散旋符號,偏微分的對象,只有空間變數,沒有時間變數。物理學家異於常人,大家必須小心注意。

Helmholtz Equation         f = ∆f   f = fₓₓ + f₝₝
Heat Equation         ∂/∂t f = ∆f   fₜ = fₓₓ + f₝₝
Wave Equation       ∂²/∂t² f = ∆f   fₜₜ = fₓₓ + f₝₝

Helmholtz Equation

「亥姆霍玆方程式」。感覺很像鍊金術士,聽起來比較屌。

f = ∆f,函數等於位勢差。

f = -k²∆f,添上波數k。

Heat Equation

「熱傳導方程式」。硬生生多出傳導二字,聽起來比較屌。

∂/∂t f = ∆f,變化速度等於位勢差。

∂/∂t f = v∆f,添上擴散速度v。

符號解:f(x) = e-x²/4t / √t。稱作Heat Kernel。

Wave Equation

「波動方程式」。硬生生多出動字,聽起來比較屌。

∂²/∂t² f = ∆f,加速度等於位勢差。位勢差產生彈簧力,彈簧力產生加速度。

∂²/∂t² f = v²∆f,添上傳播速度v,有如彈性係數。

方程式重新整理成:時間微分的特徵函數、空間二次微分的特徵函數。解是兩者聯立,稱為特徵模態(Eigenmode)。物理意義:駐波。

一維空間的符號解:特徵模態f(x,t) = a sin(x+vt) + b sin(x-vt),其中a與b取決於初始條件。物理意義:兩個波,振幅a與b,往反方向傳播,疊加之後形成駐波。

二維空間的符號解:取決於空間造型(邊界條件)。除了少數特殊造型,沒人知道符號解。

一維琴弦振動直線線段
二維薄膜振動方形圓形L形
三維固體振動:懸臂梁H型鋼平板

經典的微分方程式:Transport

引入了物理量、守恆定律。

Continuity Equation  ∂/∂t ψ + ∇∙(ψu) = 0   ψₜ + (ψu)ₓ + (ψu)₝ = 0
Advection Equation   ∂/∂t ψ + u∙∇ψ = 0     ψₜ + u₁ψₓ + u₂ψ₝ = 0
Incompressibility    ∇∙u = 0               (u₁)ₓ + (u₂)₝ = 0

Continuity Equation

「連續方程式」。

∂/∂t ψ + ∇∙ψ = 0,時間變化量等於空間轉移量。

∂/∂t ψ + ∇∙(ψu) = 0,添上每一處的轉移速度u。

Advection Equation

「平流方程式」。

∂/∂t ψ + ∇ψ = 0,時間變化量等於相鄰空間差距。

∂/∂t ψ + u∙∇ψ = 0,添上每一處的轉移速度u。

f(x, t+△t) = f(x - v△t, t)

連續方程式可以拆成兩項:平流與壓縮。

微分的乘法公式:前微後不微、前不微後微。

∂/∂t ψ + ∇∙(ψu) = 0
∂/∂t ψ + u∙(∇ψ) + ψ(∇∙u) = 0
         ^^^^^^     ^^^^
         advection  compression
∂        ∂        ∂           
—— ψ + ( —— ψu₁ + —— ψu₂ ) = 0   u₁是X速度
∂t       ∂x       ∂y             u₝是Y速度

∂           ∂         ∂            ∂       ∂          
—— ψ + ( u₁ —— ψ + u₂ —— ψ ) + ψ ( —— u₁ + —— u₂ ) = 0
∂t          ∂x        ∂y           ∂x      ∂y         
       ^^^^^^^^^^^^^^^^^^^^^     ^^^^^^^^^^^^^^^^^
       advection                 compression

平流方程式只有時間變化項、平流項。

有人簡寫成大寫D,稱作「物質導數」。

∂           ∂         ∂                   D       
—— ψ + ( u₁ —— ψ + u₂ —— ψ ) = 0   --->   —— ψ = 0
∂t          ∂x        ∂y                  Dt      

平流方程式追加∇∙ψ = 0,則滿足連續方程式,物理量守恆。

平流方程式不追加∇∙ψ = 0,則不一定滿足連續方程式,物理量不一定守恆。

符號解:f(x,t) = e-(x+t)²。【尚待確認】

Incompressibility

「不可壓縮」。

∇∙u = 0。出入速度,總和相等。流動順暢,不疾不徐。

經典的微分方程式:Flow

引入了勢、力。

Continuity Equation    ∂/∂t ρu + ∇∙(ρu⊗u) = 0
Euler Equation         ∂/∂t ρu + ∇∙(ρu⊗u) + ρg + ∇p = 0
Cauchy Equation        ∂/∂t ρu + ∇∙(ρu⊗u) + ρg + ∇∙τ = 0
Navier–Stokes Equation ∂/∂t ρu + ∇∙(ρu⊗u) + ρg + ∇p + ∇∙τ = 0

Continuity Equation for Momentum Conservation

「連續方程式之動量守恆」。物理量是動量密度ψ = ρu。

質量m。體積V。密度ρ = m/V。速度u。動量mu。動量密度ρu = mu/V。

二維動量有兩個方向,總共兩道連續方程式,三維動量有三個方向,總共三道連續方程式。有人利用Kronecker product ⊗,簡寫成一道方程式。

連續方程式的由來是泰勒近似。泰勒展開,取零次項與一次項。二次項之後數值極小,物理學家選擇忽略不計。事實上,所有物理公式,其本質都是泰勒展開取到一次項或者取到二次項。

符號解沒有特別取名

Euler Momentum Equation

「歐拉動量方程式」。重力密度ρg。壓力p。

動量相聚,產生壓力。

重力加速度g。重力mg。重力密度ρg = mg/V。

力f。表面積A。壓力p = f/A。

符號解是Arnold–Beltrami–Childress Flow

Cauchy Momentum Equation

「柯西動量方程式」。重力密度ρg。應力τ。

動量相撞、動量相擦,產生應力。

重力加速度g。重力mg。重力密度ρg = mg/V。

力f。表面積A。應力τ = f/A。

符號解我不清楚。

Navier–Stokes Equation for Momentum Conservation

「流體方程組之動量守恆」。大家一起上。

重力密度可以視作「每單位面積的重力之空間導數」,使得右式每一項都有導數。然而重力密度是零階張量,不適合改寫成導數。

流體方程組是慣量、動量、能量三種式子聯立。此處只講動量。

流體方程組的原始版本只針對牛頓流體。牛頓流體是流體的特例。此處版本是後人重新歸納而得。

符號解是千禧年大獎難題,跟P/NP問題齊名。

備忘

牛頓第一方程
1. 質量沿著速度方向移動
2. 速度是質量的附庸品,速度也沿著速度方向移動
3. 動量沿著速度方向移動

PV=NRT方程
空間變小,但是動量總和不變
---> 動量撞牆次數變大,壓力變大 (跟表面積有啥關係?)

Bernoulli equation 白努力方程
1. 1/2 dvv + dgh + p = 常數
2. 1/2 mvv + mgh + pV = 常數
   動能      位能  nrt
3. Euler equation的特例:無旋(有勢)無散(不可壓縮)純粹諧場
   ∂ψ/∂t + 1/2 (∂u²/∂x + ∂v²/∂x) + 1/ρ ∂p/∂x = 0
   勢變化

經典的微分方程式:Glow

引入了合體技的概念。

Advection Equation                      ∂/∂t f = ∇∙f
Diffusion Equation                      ∂/∂t f = ∆f
Advection–Diffusion Equation            ∂/∂t f = ∆f + ∇∙f
Reaction–Diffusion Equation             ∂/∂t f = ∆f + R(f)
Reaction–Diffusion–Advection Equation   ∂/∂t f = ∇∙f + ∆f + R(f)

Reaction–Diffusion–Advection Equation

「反應-擴散-平流方程式」。各式各樣的參數,各式各樣的造型,造就大自然。

Turing Pattern

Gray–Scott Model
https://pmneila.github.io/jsexp/grayscott/

Kuramoto–Sivashinsky Equations
https://twitter.com/thienan496/status/1448514654188228608
https://www.nature.com/articles/ncomms1289

經典的微分方程式:Attractor

亂繞圓圈的路線。

Lorenz Equation                   大氣對流
Lorenz–Emanuel System             大氣對流
Rabinovich–Fabrikant Equation     雙角

經典的微分方程式:Wave

造型奇特的波。

Burgers' Equation                 衝擊波
Korteweg–de Vries Equation        淺水波
de Saint-Venant Equation          淺水波

Burgers' Equation

wave breaking time。

https://en.wikipedia.org/wiki/Breaking_wave

Korteweg–de Vries Equation

Huygens–Fresnel Principle。

de Saint-Venant Equation

https://en.wikipedia.org/wiki/Shallow_water_equations

經典的微分方程式:Field

物理元件的互動。

Maxwell's Equations               電磁關係
Einstein Field Equation           重力時間關係
Schrödinger Equation              波粒關係

Maxwell's Equations

「電磁場方程組」。科學家們先後發現各式各樣的電磁關係式,Maxwell集成為一套完整理論,Heaviside精煉為散度與旋度。

因為是Maxwell,所以要加apostrophe s?我不知道原因。

沒有電磁感應的時候,電場靜止。靜電場散度為零。靜電場旋度為零,故靜電場是梯度場/守恆場,故靜電場可以改寫成電勢。

發生電磁感應的時候,電場運動。動電場散度依然為零。動電場旋度不再為零,故動電場不再是梯度場/守恆場。電場空間旋度恰等於磁場時間導數。電場空間變化導致磁場時間變化。電磁對調亦然。

電磁場方程組用來描述動電場。

⎧ ∇∙E = 0
⎨ ∇∙D = 0
⎪ ∇×E = - d/dt B
⎩ ∇×B = - d/dt E

Electromagnetic Wave Equation

「電磁波方程式」。電場振盪產生波。磁場隨之振盪。

電/磁/波,其方向是右手四指/手掌/拇指。形成橫波。

假設只往X軸方向傳遞,導致旋度運算只剩一項。

⎰ d/dx E = - d/dt B
⎱ d/dx B = - d/dt E

一式對空間微分,另一式對時間微分,兩式合併,形成波動方程式。電場版本和磁場版本等價,實際上只有一道方程式。

∂²/∂t² E = ∂²/∂x² E
∂²/∂t² B = ∂²/∂x² B

Integral Equation