Polynomial(Under Construction!)

Polynomial

由未知數(變數)與已知數(常數)的加法、減法、乘法所組成的式子,就叫做「多項式」。以變數次方為主角,多項式可以拆成許多「項」。

多項式的資料結構,要嘛開個array,每一格存一種次方的係數;要嘛開個list,把係數為零的項統統去掉然後串成一串。

Polynomial運算

多項式的運算,主要有加、減、乘、除、模、微、積、分解、代入。中學到大學接觸了六年,應當難不倒各位讀者,就不贅述了。

UVa 392 126 10719 10586 10951 463 930 10428 498 10268 10105

乘法

O(NlogN)。

分解(Kronecker's Algorithm)

Polynomial Factorization

N項多項式恰有N-1個根,可能有重根,可能是虛數。

「因式分解」。

「質式Irreducible Polynomial」

「生成器Primitive Polynomial」

「最小多項式Minimal Polynomial」。

原理是「Lagrange Interpolation」。

      N-1         x  - rj
p(x) = ∑  di  ∏  ---------
      i=0    j≠i  ri - rj

兩個多項式整除,所有對應點也會整除。

【待補文字】

Companion Matrix

「共伴矩陣」。

多項式,原本是一串係數暨一串變數次方,現在改成一個矩陣暨一個向量。共伴矩陣就是係數。

http://homepages.laas.fr/henrion/aime@cz11/kukelova.pdf
多項式的根 ---> companion matrix 的特徵值
遞迴多項式 ---> companion matrix 的次方
遞迴多項式的公式解 ---> eigendecomposition

Polynomial Function

Polynomial Function

「多項式函數」。離散與連續的橋樑。離散的係數值,變成連續的函數值。數學家正在探索其奧秘。

多項式函數的導數、積分,仍是多項式函數!dx竟然可以變不見!有興趣的讀者可以觀落陰請教牛頓或萊布尼茲。

多項式函數的導數、積分,可以預計算!數學家發明了大量的計算手法,得以在紙上推導微積分的結果,得到公式,不必使用前面章節的演算法。有興趣的讀者可以參考微積分、工程數學教科書。

多項式函數,雖然內容繁雜,但是性質優雅,所以用途廣泛。物理、化學、工程、經濟、……,各種領域都在使用多項式函數。

Horner's Rule

f(x) = 3x³ + 2x + 1 = ((((3 ⋅ x) + 0) ⋅ x) + 2) ⋅ x) + 1
f(5) = 3x³ + 2x + 1 = ((((3 ⋅ 5) + 0) ⋅ 5) + 2) ⋅ 5) + 1

這是一個演算法。一元多項式函數,代入數值。一乘一加,不斷更迭,求得函數值。完全不需要次方運算。

Taylor Series

              f'(a)          f"(a)             
f(x) = f(a) + ――――― (x-a)¹ + ――――― (x-a)² + ...
                1!             2!              

這是一道數學公式。將平滑函數變成多項式函數。

換句話說,以無限項的多項式函數,趨近平滑函數。

y  = f(x)
                                     h¹         h²      
y₊ = f(x₊) = f(x + h) = f(x) + f'(x) ―― + f"(x) ―― + ...
                                     1!         2!      

這是另一種形式。當x略微增減,得知y如何增減。

當h介於±1之間,則次方越大、數值越小。後面的項,數值越來越小,越來越細膩,越來越不重要。只取前幾項,即是取近似值!多取幾項,即是逼近真實值!數值精確度,以項數多寡來決定。

UVa 12413

e

「歐拉數Euler Number」。實際數值差不多是2.72。

計算eˣ的演算法:Taylor Series與Horner's Rule。

π

「圓周率」。圓周長除以直徑,實際數值差不多是3.14。

http://en.wikipedia.org/wiki/Category:Pi_algorithms

延伸閱讀:π is wrong!

http://www.math.utah.edu/~palais/pi.html

有兩派人馬,一派支持角度,一派支持面積。

角度派認為π是180°,是圓周角360°的一半,要乘以二才能補成360°,極不方便。這派人馬認為應該替360°特別訂立一個代號。

面積派認為π剛好就是單位圓面積,明明很方便,不需要改。

延伸閱讀:math.h

https://zhuanlan.zhihu.com/p/20085048

Polynomial(Under Construction!)

Bernstein polynomial

http://www.cs.jhu.edu/~misha/Spring15/
https://en.wikipedia.org/wiki/Hermite_polynomials
Legendre polynomial:  laplace solution of sphere coordinate
http://mathworld.wolfram.com/LaplacesEquationSphericalCoordinates.html

Hankel transform of Zernike polynomials are essentially Bessel Functions

Chebyshev polynomial: sine wave wrapped around a cylinder

[surface]

https://plot.ly/javascript/3d-surface-plots/
http://bl.ocks.org/supereggbert/aff58196188816576af0

[green function]

https://www.wolframalpha.com/input/?i=e%5E(i%7Cx-y%7C)+%2F+%7Cx-y%7C

e^(iκ|x-y|) / |x-y|

ΔG(x, y) + κ^2 G(x, y) = 0

Complex Plane(Under Construction!)

實數數線(Real Line)、複數平面(Complex Plane)

方才談了幾何變數字,這邊補充一下數字變幾何。

數字變幾何之後,數字獲得長度、角度,可用於解決新問題。

實數變點:彷彿直角座標系。

實數   ⇨ 點
實數長度 ⇨ 點到原點的距離
實數加法 ⇨ 點的直角座標相加(平移)
實數乘法 ⇨ 點的長度相乘(縮放)、點的方位負負得正(鏡射)

複數變點:彷彿直角座標系、極座標系兩者合體。

複數   ⇨ 點
複數長度 ⇨ 從原點出發的直線距離
複數角度 ⇨ 從實軸出發的逆時針夾角
複數加法 ⇨ 點的直角座標相加(平移)
複數乘法 ⇨ 點的長度相乘(縮放)、點的角度相加(旋轉)

複數乘法變點的長度相乘、角度相加,使之循環繞圈,這是古人一致推薦的方式。由於很好用,從此沒有採用其他方式。

UVa 10378

Complex Polynomial

複數加法=向量相加。複數乘法=長度相乘角度相加。複數次方=周旋繞行。複數多項式=多個螺旋線疊加。

Complex Function

看來看去好像只有analytic => conformal和e值得一提。

複數微積分
http://www.solitaryroad.com/c606.html
real function: differentiable != analytic != conformal != harmonic

complex function: differentiable = analytic = conformal != harmonic
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              holomorphic (cauchy-riemann equation)

(analytic = infinite differentiable = smooth)

Radial Function

X and F(X) ⇨ Angle and Radius【查無專有名詞】

繪製函數圖形,除了水平延展,還可以迴轉周旋。

函數輸入視作從X軸出發的角度,函數輸出視作從原點出發的長度。

利用三角函數sin和cos找到繪製地點。

當函數輸出是負值,則無法畫出函數圖形。三種解法:一、乾脆不畫。二、負值變正值、換顏色。三、穿越原點,跑到對面,角度相差180度。

角度可以改成x的倍率,修改轉速。

運用周旋,得以製作許多特殊圖形。

Periodicity ⇨ Closed

有個值得一提的案例是週期函數:固定間距、不斷重複的函數。

角度改成x的適當倍率,使得一個間距(或者其倍數)剛好轉一圈,函數圖形頭尾銜接,得到封閉曲線。

Angle and Radius ⇨ X and F(X)【查無專有名詞】

任意的封閉曲線,想要從周旋變成延展,就必須滿足函數的規定:找到內部一點作為原點,任意放射線與曲線的交點只有一點。之後即可視作一般函數進行處理。

不是函數的封閉曲線,想要滿足函數的規定,我只知道一種解法是平滑化:每一個點,取其鄰點,求平均值。實施足夠次數,似乎就會變成函數。實施無限次,最後就會變成圓形,其概念類似於流形與圓的映射。我不清楚這部分是否有人研究。

不是函數的一般曲線,我不清楚怎麼轉換。

函數輸入是兩個變數

函數輸入是兩個變數(或者一個複數),視作旋轉角度和俯仰角度,得到三維空間的表面。

f[u_,v_] := Sin[u]Sin[v]+2; ParametricPlot3D[{f[u,v]Cos[v/5]Cos[u/5], f[u,v]Cos[v/5]Sin[u/5], f[u,v]Sin[v/5]}, {u, 0, 40}, {v, 0, 40}, Boxed -> False, Axes -> False, Mesh -> None, PlotPoints -> 70, ColorFunction -> (ColorData["CherryTones"][Rescale[#3, {-2, 2}]] &) ]

進階主題是「球諧函數」。傅立葉轉換的基底(各種頻率的複數波),進行轉換,得到球諧函數。

函數輸出是兩個變數

函數輸出是兩個變數(或者一個複數),視作水平距離和垂直距離,得到三維空間的線。

ParametricPlot3D[{Sin[x] Cos[x*10], Sin[x] Sin[x*10], x}, {x, 0, 9}, Boxed -> False, Axes -> False, PlotStyle -> {RGBColor[192,0,0], Thick}]

進階主題是「柱諧函數」。