多項式學習筆記1 拉格朗日插值定理

2022-05-06 23:30:09 字數 1404 閱讀 7154

拉格朗日插值法是以法國18世紀數學家約瑟夫·拉格朗日命名的一種多項式插值方法。
拉格朗日插值定理主要是用來解決下面這樣的問題:

給出 n 個點 (xi,yi)(保證 xi 互不相同),要求找出乙個過所有點的多項式函式 f(x)。
顯然最直觀的方法是採用高斯消元,但高斯消元時間複雜度較高且有精度誤差

這時候就可以考慮用拉格朗日插值定理了

顯然對於每個點,我們嘗試找出乙個函式 fi(x),使得 fi(xi) = yi, 並且對於其他的所有橫座標 xj(j!=i) 有 fi(xj) = 0。那麼把 n 個 fi(x) 加起來就能得到要求的函式 f(x) 了

可以推出式子:

時間複雜度 o(n^2)

#include#define ll long long

using

namespace

std;

inline ll read()

while(ch

0'||ch>'9'

);

dowhile(ch>='

0'&&ch<='9'

);

return f*x;

}const

int maxn = 2000 + 10

;const ll mod = 998244353

;inline ll pow(ll a,ll b)

return

ans;

}inline ll inv(ll a)

ll n,k;

ll x[maxn],y[maxn];

ll ans;

intmain()

ans = (ans + (res1 * inv(res2) % mod)%mod) %mod;

}cout

<< ans <

}

拉格朗日插值法的公式結構整齊緊湊,在理論分析中十分方便,然而在計算中,當插值點增加或減少乙個時,所對應的基本多項式就需要全部重新計算,

於是整個公式都會變化,非常繁瑣。這時可以用重心拉格朗日插值法

將拉格朗日插值定理變形為:

其中 g =

然後另 ti =

當增加乙個點時直接增加ti即可

模板 數學 多項式 拉格朗日插值

已知 n 1 個點,擬合乙個多項式 f 求 f x 的值。拉格朗日插值多項式為 f x sum limits y i frac x x j x i x j 從陣列 x 和 y 的 0,n 共 n 1 個點,插值出乙個 n 次多項式 f 然後求出 f x i 返回。int lagrange int n...

拉格朗日插值多項式Matlab教學程式

拉格朗日插值多項式 lagrange interpolating polynomial 計算公式 matlab教學程式 lagrange.m lagrange interpolating polynomial 拉格朗日插值多項式 xi 插值節點 行向量 yi 插值節點函式值 行向量 x 插值點 行向...

插值方法 拉格朗日多項式

定義 f x 為定義在區間 a,b 上的函式,x0,x1,xn為 a,b 上n 1個互不相同的點,為給定的某一函式類。若 上有函式 x 滿足 xi f xi i 0,1,n 則稱 x 為f x 關於節點x0,x1,xn在 上的插值函式。x0,x1,xn為插值節點,為插值型值點 插值點 f x 為插值...