拉格朗日插值

2022-04-08 02:08:19 字數 959 閱讀 5057

\(n + 1\) 個點\((x_i, y_i)\)可以唯一地確定乙個不超過\(n\)次的多項式

比較直觀的做法是待定係數法然後高斯消元解方程

不過複雜度是\(o(n^3)\)的,不是特別優秀

那有沒有更快的做法呢?

考慮建構函式\(l(x)\),使得\(l(x)\)隨著自變數\(x_i\)的變化,對應的就是\(y_i\)這個值

\[l(x) ~=~ \sum_^y_i ℓ_i(x)

\]其中\(ℓ_i(x)\)為拉格朗日基本多項式,其表示式為:

\[ℓ_i(x) ~=~ \prod_ \frac

\]發現對於給定的 \(n + 1\) 個 \(x\),當且僅當 \(x = x_i\) 時 \(ℓ_i(x) = 1\),否則 \(ℓ_i(x) = 0\),這表明了構造成立

當需要求 \(x=k\) 時的函式值時,可以直接將 \(k\) 帶入 \(l(x)\) 即可,複雜度 \(o(n^2)\)

若給定點值的 \(x\) 是連續的整數時,可以預處理階乘做到 \(o(n)\) 求點值

拉格朗日重心插值法是拉格朗日插值法的一種改進

不難發現每次計算\(ℓ_i\)時其實是算了很多重複的東西,我們可以把它簡化一下

設\[ℓ(x) = \prod_^ (x - x_i)

\]定義重心權

\[w_i = \frac 1 ^(x_i - x_j)}

\]可以將拉格朗日基本多項式重新寫為:

\[ℓ_i(x) ~=~ ℓ(x)\frac \]則

\[l(x) ~=~ ℓ(x)\sum_^n \frac

\]優勢:

每次新增加乙個點,一般拉格朗日插值會重新計算一次達到\(~o(n^2)~\)的複雜度,而重心拉格朗日插值只需要\(~o(n)~\)計算\(~w_i~\)即可

\(\color \)

拉格朗日插值

拉格朗日插值基函式 li x x x 0 x xi 1 x xi 1 x x n x i x0 xi xi 1 xi xi 1 xi xn 拉格朗日差值函式 ln x i 0 nyil i x 其中,x為缺失值對應的下表序號,ln x 為缺失值的插值結果,xi 為缺失值yi 的下表序號。對全部缺失值...

拉格朗日插值

function s larg1 x,y,xi m length x 求出插值節點向量長度 n length y if m n error 向量x與y的長度必須一致 這裡肯定一致,只是為了消除直接選取x,y資料的時候出錯而設定的 end s 0 for i 1 n z ones 1,length x...

拉格朗日插值

存在性和唯一性的證明以後再補。拉格朗日插值,emmmm,名字挺高階的 joy 它有什麼應用呢?我們在fft中講到過 設 n 1 次多項式為 y sum a i x i 有乙個顯然的結論 如果給定 n 個互不相同的點 x,y 則該 n 1 次多項式被唯一確定 那麼如果給定了這互不相同的 n 個點,利用...