是個好東西。
顯然\(n+1\)個點值可以唯一的確定乙個\(n\)次多項式。
那麼根據多項式求點值的過程叫求值。
根據多項式點值來求多項式其他點值就是插值了。
那麼現在上拉格朗日插值。
他解決的問題是:
對於給定的\(n+1\)個點值求出其他點在這個\(n\)次多項式的值。
我們嘗試構造多項式\(f(x)\)來滿足\(n+1\)個點值。
我們發現這個多項式剛好有\(n+1\)項,同時考慮如何滿足這些條件。
也就是說:
對於任意的\(i\in s\)
\[f(x_i)=y_i
\]那麼我這樣來構造多項式\(f(x)\)。
\[f(x)=\sum\limits_^\prod\limits_^y_i\frac
\]觀察每一項,如果當前代入的為\(x_i\),那麼第\(i\)項為\(y_i\),其餘項均為0。
好了這樣我們就構造成功了。
一般情況下我們取\(x_i=i\),取值連續,這樣更加便於求出其他的點值。
也就是說:
\[\begin
f(x)&=\sum\limits_^\prod\limits_^y_i\frac\\
&=\sum\limits_^\frac(x-i)i!(n-i)!(x-n)!}\\
\end\]
這樣就可以直接代入\(x\)來算了對吧。
然後我考場上寫出了另外一種對於任何點值均可以\(o(n)\)插值出\(1\)個點值的方法(其實我插出了係數表示式)。
我們將$$\prod\limits_^(x-x_i)$$這個多項式求出來。
當點值連續的時候我們還知道這個多項式等於:
\[f(x)=\sum\limits_^(-1)^\beginn\\i\endx^i
\]這樣同樣也避免了直接暴力乘法的**複雜度。
然後就是用**實現乙個叫多項式豎式除法的東西。
因為我們知道原來的多項式是\(n\)個子式乘在一起得到的。
那麼不管取模與否\(\frac^(x-x_i)}\)一定是能夠整除的。
這樣用豎式除法就可以的到這個多項式了,豎式除法是\(o(n)\)的。
然後對於每乙個\(i\),求出這個東西\(\frac^(x-x_i)}\),再給每一項乘上係數\(\frac^x_i-x_j}\),然後給插出來的多項式對位相加即可了。
然後我看到了乙個叫重心拉格朗日插值的東西。。
好像和我的做法挺像的,只不過目的不同。
重心拉格朗日插值用於快速的\(o(n)\)維護加入的新的點值。
而我的做法可以用於在維護出新的點值之後快速\(o(n)\)的維護係數表示式。
我們設\(g=\sum\limits_^(x-x_i)\)
那麼:\[f(x)=g\sum\limits_^\frac\prod\limits_\frac
\]這樣的話我們設:\(t_i=y_i\prod\limits_^\frac\)
\[f(x)=g\sum\limits_^]\frac
\]這樣每次加入乙個新點\(o(n)\)的更新\(g\)和每個點的\(t_i\)就可以了。
筆記 拉格朗日插值
例題 模板 拉格朗日插值 給你 n 個點 x i,y i 將過這 n 個點的最多 n 1 次的多項式記為 f x 求 f k 的值。設 f x displaystyle sum a x x i 將每個 x i 代入 f x 有 f x i y i 這樣就可以得到由 n 個 n 元一次方程所組成的方程...
拉格朗日插值的優缺點 筆記 拉格朗日插值
簡介 對於 k 次多項式函式 f x 若已知 k 1 個點值,則可構造出多項式。有 f x sum y i prod dfrac 正確性詳見 拉格朗日插值。正確性將 k 1 個點值代入即可檢驗。當 x x k 時,對 i 進行討論 當 i not 時,存在乙個 j 滿足 j k 對於乘積項的分子 p...
拉格朗日插值
拉格朗日插值基函式 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 的下表序號。對全部缺失值...