Function (ℝⁿ ⇨ ℝᵐ)(Under Construction!)

Multivariate Function

多個函數。

{ f₁(x, y) = x + y
{ f₂(x, y) = 2x² + 1
{ f₃(x, y) = 1 / y

數學家重新解讀為:一個函數,輸入與輸出推廣成多個數值。微觀是多個函數,宏觀是一個函數。

F(x, y) = (x + y, 2x² + 1, 1 / y)

多個數值甚至組成向量、矩陣。多個數值視作一個元件,佯裝成普通的函數。寫來簡便,讀來卻傷腦筋。

             [  x + y  ]
F( [ x ] ) = [ 2x² + 1 ]
   [ y ]     [  1 / y  ]

   F(x⃗)    =      y⃗

原本是「多個函數」,卻被重新解讀,稱做「多變數函數」。

多個函數顯然可以融合成一個多變數函數,然而一個多變數函數一定可以拆解成多個函數嗎?我也不知道。我從未見過有人討論。

Multivariate Function可以解讀成「空間處處有數據」

空間處處有數據。(圖例只畫其中幾處。)

空間座標是函數輸入,數據是函數輸出。

空間可以是一維直線、二維平面、三維空間、……。

數據可以是一個純量(數值)、一個向量、一個矩陣、……。

空間處處有數據,物理學家稱為「場Field」。

例如磁場:空間處處有磁力數據。空間是三維空間,數據是一個三維向量。磁力大小是向量長度、磁力方向是向量角度。

Multivariate Function可以畫成圖形

純量場:畫成透視圖、濃度圖、等高線圖。等距取樣之後:畫成長條圖、折線圖、點陣圖、數值陣列。

(圖例是二維空間,省略座標軸。)

Plot3D[Cos[x]+Cos[y], {x, -2Pi, 2Pi}, {y, -2Pi, 2Pi}, Axes -> False, Boxed -> False, Mesh -> None, ColorFunction -> (ColorData["CherryTones"][Rescale[#3, {-2, 2}]] &) ] DensityPlot[Cos[x]+Cos[y], {x, -2Pi, 2Pi}, {y, -2Pi, 2Pi}, Axes -> False, Frame -> False, MaxRecursion -> 1, PlotPoints -> 5, ColorFunction -> "SolarColors"] ContourPlot[Cos[x]+Cos[y], {x, -2Pi, 2Pi}, {y, -2Pi, 2Pi}, Axes -> False, Frame -> False]

向量場:畫成軌跡圖。等距取樣之後:畫成箭矢圖。

VectorPlot3D[{-y, x, 0.5 * z}, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Boxed -> False, Axes -> False, VectorPoints -> 8, VectorScale -> {Small, Scaled[0.5]}, VectorStyle -> {Black}]

矩陣場:我畫不出來。

分開觀察每個維度,就能勉強畫出來。向量場可以拆成多個純量場。矩陣場可以拆成多個向量場、甚至多個純量場。

Multivariate Function可以描述世界

物理學家習慣以多變數函數描述物理現象,諸如水流、氣流、熱傳導、電磁場、重力場、聲波、震波、……。精彩的思想突破有:

Faraday以三維場解釋電磁現象,衍生古典場論。

Einstein以四維場解釋重力時間現象,衍生相對論。

Schrödinger以複數四維場解釋波粒現象,衍生量子場論。大家仍在驗證。質量擁有實部虛部,若隱若現,非常奇葩。

想要用計算機模擬物理現象,首先必須瞭解多變數函數!

Multivariate Function Operation

除了加減乘除模微積,又多了幾種運算。數學家並未命名運算名稱,只命名運算結果。

    	      result (noun)
----	----  --------------------------------------------
∇·  	div   divergence  散度
∇×  	curl  curl        旋度
∇   	grad  gradient    梯度
∇·∇ 	---   Laplacian   梯度的散度(運算符號從右往左疊)
∇×∇ 	---   ---         梯度的旋度(總是0,缺乏討論意義)
註:∇·∇經常簡寫成∇²或∆。
註:laplace運算子(U+2206)、希臘字母大寫delta(U+0394),兩者是相異字元。
  然而當今所有字體都沒有特地設計laplace運算子的造型,
  而是直接複製希臘字母delta的造型,導致兩者外觀一模一樣。
  https://tex.stackexchange.com/questions/76553/

散度

向量場,求散度,得純量場。模仿了點積。

用抽象的、簡潔的數學符號表達函數散度:

                ∂Fx
div(F) = ∇·F = ―――               1D
                ∂x 

                ∂Fx   ∂Fy
div(F) = ∇·F = ――― + ―――         2D
                ∂x    ∂y 

                ∂Fx   ∂Fy   ∂Fz
div(F) = ∇·F = ――― + ――― + ―――   3D
                ∂x    ∂y    ∂z

用直觀的、華麗的函數圖形表達函數散度:

向量場拆成XY兩個分量。觀察座標(x,y)。(三維很難畫,因此圖例為二維。)

X分量的左右差異、Y分量的上下差異,引發了伸縮。

分別除以dx與dy,加總兩個差異。以朝外為正值。

物理意義是每一處的縮放多寡,strain。

實際應用,例如推擠、流動。

旋度

向量場,求旋度,得向量場。模仿了叉積。

用抽象的、簡潔的數學符號表達函數旋度:

curl(F) = ∇×F = 0                                       1D

                           ∂Fy   ∂Fx         ∂Fy   ∂Fx
curl(F) = ∇×F = ( 0 , 0 , ――― - ――― )  ==>  ――― - ―――   2D
                           ∂x    ∂y          ∂x    ∂y 

                   ∂Fz   ∂Fy   ∂Fx   ∂Fz   ∂Fy   ∂Fx  
curl(F) = ∇×F = ( ――― - ――― , ――― - ――― , ――― - ――― )   3D
                   ∂y    ∂z    ∂z    ∂x    ∂x    ∂y   

用直觀的、華麗的函數圖形表達函數旋度:

Y分量的左右差異、X分量的上下差異,引發了轉動。

分別除以dx與dy,加總兩個差異。以逆時針為正值。

物理意義是每一處的自旋多寡,vorticity。

二維旋度是XY平面上的自旋。三維旋度則是分別於YZ、ZX、XY三個平面上的自旋。

實際應用,例如渦旋。

散度定理、旋度定理

任意向量場、任意封閉範圍,觀察邊界內、邊界上的向量:

散度定理:邊界內的向量的散度的總和、邊界上的向量的法線分量的總和,兩者相等。

旋度定理:邊界內的向量的旋度的總和、邊界上的向量的切線分量的總和,兩者相等。

原理是(b-a)+(c-b)+(d-c)+...+(z-y) = z-a,微分之後的區間和,等於頭尾兩項相減。

flux circulation

通量:邊界上的向量的法線分量的總和。朝外為正值。

環量:邊界上的向量的切線分量的總和。逆時針為正值。

梯度

純量場,求梯度,得向量場。

               df
grad(f) = ∇f = ――                 1D
               dx

                 ∂f   ∂f  
grad(f) = ∇f = ( ―― , ―― )        2D
                 ∂x   ∂y  

                 ∂f   ∂f   ∂f  
grad(f) = ∇f = ( ―― , ―― , ―― )   3D
                 ∂x   ∂y   ∂z  

X方向的左右差異,以朝右為正值。Y方向的上下差異,以朝上為正值。

物理意義是相鄰位勢差距,potential difference。

梯度的散度

純量場,先求梯度,再求散度,得純量場。

     d²Fx
∆F = ――――                 1D
     dx² 

     ∂²Fx   ∂²Fy
∆F = ―――― + ――――          2D
     ∂x²    ∂y² 

     ∂²Fx   ∂²Fy   ∂²Fz
∆F = ―――― + ―――― + ――――   3D
     ∂x²    ∂y²    ∂z²

物理意義有兩種解釋方式:

一、考慮相鄰差距,差距大小產生對應流量,每一處的瞬間升降多寡,discharge。

二、無視相鄰差距,各處同時均勻四散、離開原處,每一處的瞬間升降多寡,diffuse。

梯度的旋度

一定是0。不存在樓梯幻覺

靜態平衡、動態平衡

靜態平衡:相鄰高低差距,處處等於零,不生不滅。高者抑之,下者舉之。數學式子是∇f = 0。梯度為零,是「常數函數」。

動態平衡:相鄰出入差距,處處等於零,因果輪迴。萬物並作,吾以觀復。數學式子是∆f = 0。梯度的散度為零,是「和諧函數」。

靜態平衡是動態平衡的其中一種情況。

慣性運動:引入了時間變數之後的靜態平衡。

簡諧運動:引入了時間變數之後的動態平衡。

源、匯

一維箭矢圖有個特性:遞增函數(斜率處處大於零),箭矢自零散開。遞減函數(斜率處處小於零),箭矢聚集至零。

多維箭矢圖則是:散度處處大於零,箭矢自零散開。散部處處小於零,箭矢聚集至零。

散開的地方稱作源,聚集的地方稱作匯。當函數起起伏伏、而且很多地方是零,就有許多源匯。正負無限大的地方也是源匯。

儘管源匯很吸睛,不過沒什麼用途就是了。

Function資料結構: Regular Discretization(Under Construction!)

Regular Discretization【尚無正式名稱】

數有兩種記載方式:數值、符號。

                  |            1    
 1 ÷ 3 = 0.333333 |   1 ÷ 3 = ———   
                  |            3    
      numeral     |     symbol      
    無法精準記錄   |   橫槓代表分數 
  f(0.01) = 0.01  | f(x) = { x   if x > 0 
  f(0.02) = 0.02  |        { 0   otherwise
      :       :   |                       
      numeral     |     symbol            
    無法盡數記錄   |   以文字描述           

採用符號,函數可以輕易寫成程式碼、寫成函式。

採用數值,函數必須取樣、擇鄰。

取樣:等距、自訂距離。

擇鄰:周圍、自訂鄰居(網格)。

f[{x_, y_}] = Sin[x * y] * Cos[x + y]; p = Flatten[Table[{i, j}, {i, -3, 3, 0.8}, {j, -3, 3, 0.8}], 1]; q = Transpose[{p[[All,1]], p[[All,2]], N[Map[f, p]]}]; g1 = ListPointPlot3D[q, PlotStyle -> {PointSize[Large], Black}, Filling -> Bottom, FillingStyle -> Thick, Boxed -> False, Axes -> False]; m = DelaunayMesh[p]; g2 = MeshRegion[q, MeshCells[m, 1], MeshCellStyle -> {{1, All} -> {Black, Thick, Opacity[0.5]}, {0, All} -> None}]; Show[g2, g1]

符號轉數值

計算學家稱作「離散化Discretization」,數學家稱作「有限元素法Finite Element Method」。

數值轉符號

傾向使用Catmull-Rom Interpolation:【待補文字】

加減乘除模

對應位置加減乘除模。

微分、積分

無限微小、略大於零的數值dx,改成了取樣間距h。

因為捨棄了極限,所以衍生了左邊、右邊、中央三種版本。大家常用左邊版本、中央版本。左邊版本的優點是直觀簡潔,缺點是數值往左偏移。中央版本的優點是數值不會偏移,缺點是微分兩次不會得到二次微分。

1st-order derivative
backward [f(x) - f(x-h)] / h
 forward [f(x+h) - f(x)] / h
 central [f(x+h) - f(x-h)] / 2h

2nd-order derivative
backward [f(x) - 2f(x-h) + f(x-2h)] / h²
 forward [f(x+2h) - 2f(x+h) + f(x)] / h²
 central [f(x+h) - 2f(x) + f(x-h)] / h²

1st-order integral
backward [... + f(x-h) + f(x)] ⋅ h
 forward [... + f(x-2h) + f(x-h)] ⋅ h
 central [... + f(x-3h) + f(x-h)] ⋅ 2h

公式源自泰勒展開式,捨去後續項次。當取樣間距小於1、接近0,後續項次迅速縮小,微不足道,無關緊要。

Taylor expansion
f(x+h) = f(x) / 0! + f'(x) h / 1! + f"(x) h² / 2! + ...
f(x-h) = f(x) / 0! - f'(x) h / 1! + f"(x) h² / 2! - ...

1st-order central derivative
f(x+h) - f(x-h) = 2 f'(x) h + ... ≈ 2 f'(x) h
f'(x) ≈ [f(x+h) - f(x-h)] / 2h

2nd-order central derivative
f(x+h) + f(x-h) = 2 f(x) + f"(x) h² + ... ≈ 2 f(x) + f"(x) h²
f"(x) ≈ [f(x+h) + f(x-h) - 2 f(x)] / h²

1st-order central integral 
f'(x) ≈ [f(x+h) - f(x-h)] / 2h
f(x) ≈ [∫f(x+h) - ∫f(x-h)] / 2h
f(x-h) ≈ [∫f(x) - ∫f(x-2h)] / 2h
∫f(x) ≈ ∫f(x-2h) + f(x-h) ⋅ 2h
∫f(x) ≈ [... + f(x-3h) + f(x-h)] ⋅ 2h

超出邊界,三種解法:零、循環、外插。

「外插Extrapolation」:邊界附近取點,多項式內插,建立延長線,估計數值。取一點是複製邊界,取兩點是直線延伸,取三點是拋物線延伸。

最後提醒一下,陣列微分a[x] - a[x-1],函數微分[f(x) - f(x-dx)] / dx,函數離散化微分[f(x+h) - f(x-h)] / 2h。它們不一樣。

散度、旋度、梯度、梯度的散度

都是微分來的。

梯度的散度反元素【目前稱作Poisson Equation】

兩種解法:線性方程組(時域)、傅立葉轉換(頻域)。

梯度的散度,寫成線性方程組

1D field. N = 5. zero boundary.
[ -2  1  0  0  0 ] [ f[0] ]   [ g[0] ]
[  1 -2  1  0  0 ] [ f[1] ]   [ g[1] ]
[  0  1 -2  1  0 ] [ f[2] ] = [ g[2] ]
[  0  0  1 -2  1 ] [ f[3] ]   [ g[3] ]
[  0  0  0  1 -2 ] [ f[4] ]   [ g[4] ]

1D field. N = 5. duplicate boundary.
[ -1  1  0  0  0 ] [ f[0] ]   [ g[0] ]
[  1 -2  1  0  0 ] [ f[1] ]   [ g[1] ]
[  0  1 -2  1  0 ] [ f[2] ] = [ g[2] ]
[  0  0  1 -2  1 ] [ f[3] ]   [ g[3] ]
[  0  0  0  1 -1 ] [ f[4] ]   [ g[4] ]

1D field. N = 5. periodic boundary.
[ -2  1  0  0  1 ] [ f[0] ]   [ g[0] ]
[  1 -2  1  0  0 ] [ f[1] ]   [ g[1] ]
[  0  1 -2  1  0 ] [ f[2] ] = [ g[2] ]
[  0  0  1 -2  1 ] [ f[3] ]   [ g[3] ]
[  1  0  0  1 -2 ] [ f[4] ]   [ g[4] ]

2D field. N = 4×4. zero boundary.
[-4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 ] [ f[0][0] ]   [ g[0][0] ]
[ 1-4 1 0 0 1 0 0 0 0 0 0 0 0 0 0 ] [ f[0][1] ]   [ g[0][1] ]
[ 0 1-4 1 0 0 1 0 0 0 0 0 0 0 0 0 ] [ f[0][2] ]   [ g[0][2] ]
[ 0 0 1-4 0 0 0 1 0 0 0 0 0 0 0 0 ] [ f[0][3] ]   [ g[0][3] ]
[ 1 0 0 0-4 1 0 0 1 0 0 0 0 0 0 0 ] [ f[1][0] ]   [ g[1][0] ]
[ 0 1 0 0 1-4 1 0 0 1 0 0 0 0 0 0 ] [ f[1][1] ]   [ g[1][1] ]
[ 0 0 1 0 0 1-4 1 0 0 1 0 0 0 0 0 ] [ f[1][2] ]   [ g[1][2] ]
[ 0 0 0 1 0 0 1-4 0 0 0 1 0 0 0 0 ] [ f[1][3] ]   [ g[1][3] ]
[ 0 0 0 0 1 0 0 0-4 1 0 0 1 0 0 0 ] [ f[2][0] ] = [ g[2][0] ]
[ 0 0 0 0 0 1 0 0 1-4 1 0 0 1 0 0 ] [ f[2][1] ]   [ g[2][1] ]
[ 0 0 0 0 0 0 1 0 0 1-4 1 0 0 1 0 ] [ f[2][2] ]   [ g[2][2] ]
[ 0 0 0 0 0 0 0 1 0 0 1-4 0 0 0 1 ] [ f[2][3] ]   [ g[2][3] ]
[ 0 0 0 0 0 0 0 0 1 0 0 0-4 1 0 0 ] [ f[3][0] ]   [ g[3][0] ]
[ 0 0 0 0 0 0 0 0 0 1 0 0 1-4 1 0 ] [ f[3][1] ]   [ g[3][1] ]
[ 0 0 0 0 0 0 0 0 0 0 1 0 0 1-4 1 ] [ f[3][2] ]   [ g[3][2] ]
[ 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1-4 ] [ f[3][3] ]   [ g[3][3] ]

解線性方程組,高斯消去法O(N³),Preconditioner O(N²K)。

UVa 199

梯度的散度反元素【目前稱作Poisson Equation】

傅立葉轉換,推導公式解。時間複雜度O(NlogN)。

【每個人解法都不一樣,看起來怪怪的。】

http://grail.cs.washington.edu/projects/screenedPoissonEq/
https://stackoverflow.com/questions/36719364/
http://www.damtp.cam.ac.uk/user/naweb/ii/poisson_equation/poisson_equation.php
https://people.eecs.berkeley.edu/~demmel/cs267/lecture24/lecture24.html
            fourier
        f  <-------> g
   d/dx f  <-------> iθ 2π g
 d²/dx² f  <-------> -θ² 4π² g
laplace(f) <-------> -(θ² + φ²) 4π² g   (2D)
   laplace(f) = b
=> -(θ² + φ²) 4π² fft(f) = fft(b)           等式兩邊同做傅立葉轉換
=> fft(f) = fft(b) / [ -(θ² + φ²) 4π² ]     移項,注意到是數列除法
=> f = ifft( fft(b) / [ -(θ² + φ²) 4π² ] )  等式兩邊同做逆向傅立葉轉換

亦可使用傅立葉餘弦轉換。

梯度反元素【尚無正式名稱】

梯度反元素不一定存在。向量場存在樓梯幻覺,那麼梯度反元素不存在。擁有梯度反元素的向量場,稱作梯度場。

梯度廣義反元素【尚無正式名稱】

先找平方誤差最小的梯度場,再求反元素。兩種想法:

一、梯度,求最小平方誤差解。三種公式解、共軛梯度法。

二、梯度的散度,求精確解。高斯消去法、Preconditioner。

given F, find G = grad(g)

{ Gx(x,y) = g(x,y) - g(x-1,y)
{ Gy(x,y) = g(x,y) - g(x,y-1)

min sum (Fx(x,y) - Gx(x,y))² + (Fy(x,y) - Gy(x,y))²

  ∂g
―――――― = g(x+1,y) - 2g(x,y) - g(x+1,y) - fx(x) = 0
∂(x,y)

「一次微分等於零」的地方是極值、鞍點。對每一處的變數偏微分,使之為零。最後得到梯度的散度。

左右兩式相減平方最小,就是左右兩式一次微分相等。縱向與橫向加總,就是左右兩式散度相等。梯度相減平方最小,就是左右兩式梯度的散度相等。

依據是左邊版本的梯度,結論卻是中間版本的梯度的散度。儘管不合邏輯,但是計算學家還是默許了──總之h足夠小就行了。

梯度廣義反元素,轉化成梯度的散度反元素。問題解決了。

散度反元素、旋度反元素【尚無正式名稱】

散度反元素、旋度反元素不唯一。

(∇×)⁻¹B = A + ∇φ
(∇·)⁻¹φ = A + ∇×B
Biot-Savart Operator
curl(A) = B   --->  A = curl⁻¹(B) = BS(B)
given B, solve A, such that curl(A) = B (and div(A) = 0)

div(curl(F)) = 0  --->  div(curl(A)) = div(B) = 0
                  --->  B is curl field + harmonic field

use DCH decomposition to get A and B ---> div(A) = 0

Function資料結構: Random Discretization(Under Construction!)

Random Discretization【尚無正式名稱】

我尚未通盤理解。提供一些資料供各位參考:

https://graphics.stanford.edu/courses/cs468-13-spring/schedule.html
http://webcourse.cs.technion.ac.il/236629/Winter2015-2016/ho_Lectures.html
http://www.cs.cmu.edu/~kmcrane/
http://fernandodegoes.org/
https://graphics.tudelft.nl/Publications-new/2016/VCDPBHB16/
http://www.geometrysummit.org/summerschool/presentations.html
http://www.geometrie.tugraz.at/sgp2015/gradschool.php

這些資料將多變量函數用在流形表面:函數輸入是二維流形表面的參數座標。

符號轉數值

取樣:請見本站文件「Sampling」。

擇鄰:圓半徑之內,都是鄰居。

數值轉符號

傾向使用Radial Basis Function Interpolation:一、設計一個RBF。二、每個位置套用RBF的加權平均值,做為內插函數(想法類似Mixture Model)。三、多項式內插,求得權重。

Function資料結構: Chebyshev Discretization(Under Construction!)

Chebyshev Discretization

多項式內插的缺點是Runge Phenomenon:左右邊界震盪大,函數曲線與函數點的走向沒有貼合。

改良方式是Chebyshev Discretization:在半圓上面等距取樣,再投影至直線,中央疏、左右密。演算法請見《Spectral Methods in MATLAB》。函式庫請見chebfun

Helmholtz Decomposition(Under Construction!)

公式

1. div(curl(F)) = 0
2. curl(grad(f)) = 0
3. div(grad(f)) = laplace(f)
4. curl(curl(F)) = grad(div(F)) - div(grad(F)) = grad(div(F)) - laplace(F)

Potential

以梯度向量場反推而得的純量場,物理學家稱為「勢Potential」。

例如壓力勢。

Helmholtz-Hodge Decomposition

v = (sin(x+y) + 0.5, sin(x-y) - 1) curl = (sin(x) cos(y), -sin(y) cos(x)) div = (sin(y) cos(x), sin(x) cos(y)) har = (0.5, -1) div potential = curl potential = sin(x) sin(y)

一個向量場等於三個向量場相加:散場(散度非零、旋度是零)、旋場(旋度非零、散度是零)、諧場(兩者皆零)。只有唯一一種分解方式【尚待確認】。暫譯為「散旋諧分解」。

F = D + C + H
such that  div(D) ≠ 0,  div(C) = 0,  div(H) = 0
          curl(D) = 0, curl(C) ≠ 0, curl(H) = 0

散旋諧分解尚無演算法,只有一道數學公式:

{ D = grad(laplace⁻¹(div(F)))
{ C = curl(laplace⁻¹(-curl(F))) = -curl(laplace⁻¹(curl(F)))
{ H = F - D - C

多變數函數之散場、旋場、諧場,線性變換之縮放、旋轉、位移,兩邊有點像。不過諧場不一定是常數。

和諧函數,梯度的散度是零(梯度的旋度總是零)。諧勢是和諧函數,諧場是和諧函數的梯度。

沒有旋場,才有梯度反元素。

散場加諧場,正是平方誤差最小的梯度場。

散場、旋場、諧場

散場:求散度、求梯散反元素、求梯度。

旋場:求旋度、三個值分別變號再求梯散反元素、求旋度。

二維旋場較好算:旋度只有z維有值。一個值變號,解Poisson,得旋勢。求梯度、轉90度,得旋場。

諧場:減散場、減旋場。

想要節省儲存空間,可以改為記錄散勢、旋勢(二維)、諧勢,要用時才算梯度。補充一下散勢、旋勢、諧勢均不唯一。

縱場、橫場

散場、旋場的傅立葉轉換。

http://physics.stackexchange.com/questions/1115/

Helmholtz Decomposition

F = grad(d) + grad(c) = D + C

將諧場隨意分攤至散場、旋場,稱之為無旋場irrotational field、無散場solenoidal field。分解方式無限多種。

Clebsch Decomposition

F = grad(x) + b grad(y) = X + b Y

向量場拆成兩個梯度場的線性組合F=aX+bY,令其中一個係數是常數純量場a=1。分解方式無限多種。

整個式子求旋度,可以發現原向量場的旋度,垂直於B與Y。

curl(F) = curl(B) × curl(Y)

找到適當的B與Y,旋度可以畫成圖形。

https://www.youtube.com/watch?v=HUFh8cEDeII
http://www.its.caltech.edu/~achern/projects/Clebsch/
https://en.wikipedia.org/wiki/Clebsch_representation

延伸閱讀:Exterior Algebra與Differential Form

https://www.cs.cmu.edu/~kmcrane/Projects/DGPDEC/

數學家建立了「外代數」這一套世界觀,闡釋點積、叉積、梯度、散度、旋度之間的關聯。讀者若有興趣再來學吧。

Functional Equation(Under Construction!)

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, g) = ∫ f(x) dx + 2 - ―― f(g(x)) - ――――――
                          dx            f(x)

此處的functional是一個特別的名詞。我不清楚數學家為何故意讓「泛函數(名詞)」跟「函數的(形容詞)」撞名。

Eigenfunction

函數方程式,如何求解呢?

求根、求不動點、求特徵點、求解是同一件事。實數換成函數,特徵點換成「特徵函數」,亦如是。

函數方程式,重新整理成泛函數的格式,求特徵函數,即是求解。然而計算學尚未發展至此。

符號解、數值解

絕大多數的函數,難以採用符號記載。數學術語是:沒有封閉式(僅使用事先指定的符號)、沒有解析式(僅使用加減乘除微積乘方開方對數等常見運算,以及πe等常見符號)、沒有代數式(僅使用加減乘除乘方開方)、……。

難以採用符號記載,只好採用數值記載。函數擁有綿密的、無限多的函數點,難以計算與儲存。解法是取樣、擇鄰。選取某些x當作樣本,同時建立樣本之間的鄰居關係。

大家習慣先試符號解(公式解),再試數值解(數值模擬)。查閱工程數學書籍,手工推導符號解。操作科學計算軟體,自動推導符號解。編寫程式碼,自動演算數值解。操作數值模擬軟體,自動演算數值解。

Differential Equation(Under Construction!)

範例:古典力學

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

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

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

方才的位置,是一維數線上面的位置,是一個數值。位置可以在二維平面、三維空間,而函數輸出就是二維向量、三維向量了。

物理課教過直線運動。位置是一維數線上的位置。位置的變化快慢,稱作速度,符合微分的概念。x′就是速度。

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

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

物理課教過等加速度運動。當自由落體,加速度是重力加速度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,知道物體的所在位置。

範例:流體力學

比方說,記錄物體速度。根據人類目前所知,維度互不干涉,符合分量的概念。因此物體速度可以表示成一個向量。

數學家創造了分量,主要是為了符合人類認知。如果維度互相干涉,那麼數學家勢必要創造其他數學元件,以符合新認知。

水中每個位置,都有一堆水分子。水分子的數量可以表示成一個三維純量場n。

物理學家習慣再除以單位體積dV。水分子的密度可以表示成一個三維純量場ρ = n / dV。

水分子往周圍對流,但是每個位置的水分子數量仍然一樣多,出入相等,數量不變,那就是∇·n = 0。

水分子往周圍對流,那就是n = Δn。

每個水分子都有速度。水分子的速度可以表示成一個三維向量場u。由於速度依附在水分子上面,上述的n改成u也一樣成立。

經典的微分方程式

基本款。請收看教學

Laplace Equation    Δf = 0
Poisson Equation    Δf = ∇g
Helmholtz Equation  Δf = λf

引入了空間變數、時間變數。請觀賞圖片

Advection Equation  ∇f = df/dt     fx + fy = ft
Heat Equation       Δf = df/dt     fxx + fyy = ft
Wave Equation       Δf = d²f/dt²   fxx + fyy = ftt

高級款。請參考大全

Burgers' Equation                衝擊波
Korteweg-de Vries Equation       淺水波
Navier-Stokes Equation           流體力學
Hamilton-Jacobi-Bellman Equation 古典力學

Differential Equation

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

函數運算多且雜,於是數學家先從微分運算下手。

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

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

Ordinary Differential Equation, ODE:

             d             d  d 
f(x,y) + 2 = ―― f(x,y) + 3 ―― ―― f(x,y) + 2 g(x,y)
             dx            dx dx

        df     d²f
f + 2 = ―― + 3 ――― + 2g     省略括號的部分、合併多次微分的部分
        dx     dx²

f + 2 = fx + 3fxx + 2g      微分簡寫成fx fxx

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

f + 2 = ḟ + 3f̈ + 2g         微分簡寫成ḟ f̈
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 = fx + 3fxy + 2g      微分簡寫成fx fxy

微分方程式分為兩類。一、線性:僅由「函數微分的加法」、「函數微分的倍率」組成的方程式。二、非線性。

線性微分方程式,可以推導公式解。非線性微分方程式,則是數學界的大難題,至今只解決了少數特例。

Linear Differential Equation:

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

       ∂f   ∂f ∂f
f² + f ―― + ―― ―― + 2 = 0 
       ∂x   ∂x ∂y

解線性微分方程式

求根、求不動點、求特徵點、求解是同一件事。實數換成函數,特徵點換成「特徵函數」,亦如是。

「微分運算」視作「函數的函數」,微分運算的特徵函數是複數波e。請見證明。原理是ex微分之後不變。

線性微分方程式整理成「函數的函數」,其特徵函數是多種複數波的線性組合。於是數學家援引傅立葉轉換來推導公式解。

https://en.wikipedia.org/wiki/Spectral_method
http://www.thefouriertransform.com/applications/differentialequations.php
http://www.thefouriertransform.com/applications/pde.php
http://www.thefouriertransform.com/transform/integration.php
           fft
        f <---> g
   d/dx f <---> iθ 2π g
 d²/dx² f <---> -θ² 4π² g
laplace f <---> -(θ² + φ²) 4π² g   (2D)

因為離散傅立葉轉換只能用在循環數列,所以必須追加假設:在邊界外面函數不斷循環。

Initial Condition / Boundary Condition

微分方程有多解。想要得到唯一解,常見的方式是設定「初始條件」或「邊界條件」。古代數學家區分太細,催生一堆名詞。

1. Initial Condition      妥善設定某處的函數值、函數微分值
2. Boundary Condition     妥善設定邊界的
 (1) Dirichlet condition  函數值(純量場)
 (2) Neumann condition    函數梯度值(梯度向量場)

真實世界的應用當中,我們通常只關心一小段範圍,而不是從負無限大到正無限大。此時更需要初始條件、邊界條件。

追加邊界條件之後,更難求得公式解。

符號解的演算法(Galerkin Method)

http://www.sd.rub.de/downloads/Galerkin_method

非線性方程式難以求得公式解,一種解法是退化。

假設正確答案是某一套函數基底(例如複數波)的線性組合。把問題簡化成解線性方程組。

數值解的演算法(Euler Method)

非線性方程式難以求得公式解,一種解法是模擬。

每次只改動一個變數,輪流改動。針對一個變數,每次只走一步,從最高次導數遞推到最低次導數。生動的譬喻是攀岩原則:三點不動一點動。

梯度下降法。

Linear Multistep Method:前面多找幾個函數點
Runge-Kutta Method:預測後面幾個函數點
https://en.wikipedia.org/wiki/Linear_multistep_method
https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods
Finite Difference Method:原本的微分方程式
Finite Volume Method:微分方程式的積分

範例:Wave Equation

Wave Equation移項一下就是Laplace Equation。

Eigenfunction改稱為Eigenmode,有無限多種,可能出現其中幾種的相加結果。

一維琴弦振動:呈現sin函數。

二維薄膜振動方形圓形L形

三維固體振動:平板H型鋼

振動產生聲音。

integrate { (eigenfunction)^2 * dV }
sum the amplitude for all position ---> sound intensity
動畫
http://www.acs.psu.edu/drussell/Demos/MembraneSquare/Square.html
http://www.acs.psu.edu/drussell/Demos/MembraneCircle/Circle.html

Curvature Equation(Under Construction!)

curvature = laplacian = stress

https://en.wikipedia.org/wiki/Brachistochrone_curve
https://en.wikipedia.org/wiki/Tautochrone_curve
https://en.wikipedia.org/wiki/Cycloid
https://en.wikipedia.org/wiki/Whewell_equation
https://en.wikipedia.org/wiki/Cesàro_equation
https://en.wikipedia.org/wiki/Catenary
https://en.wikipedia.org/wiki/Tractrix
https://en.wikipedia.org/wiki/Evolute