數論 拉格朗日插值

2022-03-29 15:10:27 字數 2196 閱讀 7686

\(n\) 次多項式定義為 :\(f(x) = a_nx^n + a_x^ + a_x^ + \cdots + a_0\)。

給出 \(n + 1\) 個點 \((x_i, y_i)\),表示 \(f(x_i)=y_i\),要求求出 \(f(t)\)。

高斯消元。

我們把這 \(n + 1\) 個點都寫出來:

\[\left\ a_nx_1^n + a_x_1^ + a_x_1^+\cdots+a_0 = y_1 ~~~~ \\ a_nx_2^n + a_x_2^ + a_x_2^+\cdots+a_0 = y_2 ~~~~ \\ \cdots ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \\ a_nx_^n + a_x_^ + a_x_^+\cdots+a_0 = y_ \\ \end \right.

\]我們把 \(a_n, a_, \cdots, a_0\) 看作未知量,把 \(x,y\) 看作已知量,這樣就可以高斯消元進行求解,解出 \(a_n,a_,\cdots,a_0\)。

時間複雜度:\(o(n^3)\)。

拉格朗日插值。

我們從二次多次項入手,我們給出 \(3\) 個點,\((x_1, y_1), (x_2, y_2), (x_3,y_3)\)。

可以列出方程組:

\[\left\ a_2x_1^2 + a_1x_1^1+a_0 = y_1 \\ a_2x_2^2 + a_1x_2^1+a_0 = y_2 \\ a_2x_3^2 + a_1x_3^1+a_0 = y_3 \\ \end \right.

\]可以使用高斯消元來做,這裡我們換一種思路,我們構造三個函式,然後相加得到我們要的函式。

建構函式

\[f_1(x)=\left\ 1 && (x=x_1) \\ 0 && (x\not=x_1) \\ \end \right. , f_2(x)=\left\ 1 && (x=x_2) \\ 0 && (x\not=x_2) \\ \end \right. ,f_3(x)=\left\ 1 && (x=x_3) \\ 0 && (x\not=x_3) \\ \end \right.

\]那麼當 \(f(x)=y_1f_1(x)+y_2f_2(x)+y_3f_3(x)\),此時就滿足 \(x\) 的取值為 \(x_1,x_2,x_3\) 時,\(f(x)\) 的取值就為 \(y_1,y_2,y_3\)。

現在考慮 \(n\) 次多項式,給出 \(n + 1\) 個點:\((x_1, y_1), (x_2, y_2),\cdots,(x_, y_)\)。

我們考慮構造 \(f_1 \sim f_\)。

設 \(f_i(k)=\prod\limits_\dfrac\),\(f_i(k)\) 滿足在 \(k=x_i\) 時函式值為 \(1\),在 \(k=x_j(j \not= i)\) 時函式值為 \(0\)。

那麼多項式 \(f(k)=\sum\limits_^y_if_i(k)=\sum\limits_^y_i\prod\limits_\dfrac\) 就滿足當 \(k\) 為 \(x_1, x_2, \cdots, x_\) 時 \(f(k)\) 的取值就為 \(y_1, y_2, \cdots, y_\)。

如果我們只要求解特定函式值,我們可以使用逆元來代替除法。

時間複雜度:\(o(n^2)\)。

當 \(x_a\) 與 \(a\) 有關係時,例如 \(x_a=a\) 時,可以使用字首乘來優化,時間複雜度:\(o(n)\)。

重心拉格朗日插值法

當我們要解決兩個操作:

往點集裡加乙個點 \((x, y)\)

給出乙個 \(k\),求出當前點集對應的多項式 \(f(k)\) 的值。

考慮把原式子拿去轉換。\(f(k)=\sum\limits_^y_i\prod\limits_\dfrac = \sum\limits_^ \dfrac (k-x_j)} (x_i-x_j)}=\sum\limits_^\dfrac^(k-x_j)}(x_i-x_j)}\) 記 $g(k) = \prod\limits_^(k-x_i) $,則 \(f(k) = g(k)\times \sum\limits_^\dfrac(x_i-x_j)}\),再記 \(t(i) = \dfrac (x_i - x_j)}\) 則 \(f(k)=g(k) \times \sum\limits_^\dfrac\)。 新加點時 \(o(n)\) 求出 \(t(i)\),故每加乙個點就能做到 \(o(n)\) 解決。

\(\sum\limits_^n i^k\) 是乙個 \(k + 1\) 次的多項式,可以插值。

拉格朗日插值

拉格朗日插值基函式 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 個點,利用...