標籤:函數 nbsp 一般來說 分享 時間複雜度 需要 font 技術 數值
我們能得到一個函數f在區間[a,b]上某些點的值或者這些點上的高階導數
我們就能通過插值法去得到一個函數g,g與f是非常相近的
一般來說g分為三類,一類是n次多項式 an*xn + an-1*xn-1 + .......+a0,一類是三角多項式,最後一類是分段n次多項式
多項式插值
這個可以說是最簡單的插值了
對於an*xn + an-1*xn-1 + .......+a0,我們有n+1個未知數,我只需要知道n+1個點的函數值就可以解出這n+1個未知數
將解出的值帶入即可
優點:簡單粗暴
缺點:要解n+1個方程,時間複雜度較高,n不好確定,若n過大,容易過擬合,若n過小,容易欠擬合
拉格朗日插值
先說一階多項式
我們有兩點式
f(x) = yk*(xk+1 - x) / (xk-xk+1) + yk+1*(x-xk) / (xk+1 - xk)
此兩點式可以看做? * yk + (1-?) * yk+1
那麼自然的在x=xk的時候 ?=0 在x=xk+1的時候?=1
這裡的?其實是與x相關的一階多項式
再說二階多項式
對於一個二次函數,我們有三個點(xk-1,yk-1) ,(xk,yk) ,(xk+1,yk+1)
我們有lk-1,lk,lk+1
f(x) = lk-1*yk-1 + lk*yk + lk+1*yk+1
其中l是與x相關的二次多項式
我們可以把l當作基函數
這樣的話就有
x = xk-1 時lk-1 = 1, lk=0, lk+1 = 0
x = xk時 lk-1 = 0, lk=1, lk+1 = 0
x = xk+1時lk-1 = 0, lk=0, lk+1 = 1
那麼這個插值基函數是很好求的
因為每個插值函數都有兩個零點
對於lk-1來說有零點xk,xk+1
那麼lk-1就可以表示為lk-1 = A*(x-xk)*(x-xk+1)
因為x=xk-1時lk-1 = 1
所以A = 1 / ((xk-1 - xk)* (xk-1 - xk+1) )
那麼同理lk和lk+1也能求出來了
那我們得到二階的拉格朗日插值多項式
現在將二階推廣到n階
得到n接的拉格朗日插值多項式
優點:演算法較為簡單
缺點:暫不清楚
數值分析-插值法