拉格朗日(Lagrange)插值法
拉格朗日(Lagrange)插值法
我们要构造一个函数 \(f(x)\) 使得其过点 \((x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)\)。
我们可以考虑构造 \(n\) 个函数 \(f_1(x),f_2(x),\dots,f_n(x)\),使得 \(f_i(x_i)=y_i\) 且 \(\forall j\ne i,f_{j}(x_i)=0\),那么所求函数为 \(f(x)=\sum_{i=1}^nf_i(x)\)。
那么可以设 \(f_i(x)=g_i(x)\times \prod_{j\ne i}(x-x_j)\),这就保证了 \(\forall j\ne i,f_j(x_i)=0\)。
要使 \(f_i(x_i)=y_i\),可推出 \(g_i(x)=\dfrac {y_i}{\prod_{j\ne i} (x_i-x_j)}\),同时 \(g_i(x)\) 是常数,所以 \(f_i(x)=y_i\times \prod _{j\ne i} \dfrac {x-x_j}{x_i-x_j}\)。
则拉格朗日插值公式为
\[f(x)=\sum _{i=1}^ny_i\times \prod _{j\ne i}\dfrac {x-x_j}{x_i-x_j}
\]
则带入一个 \(x\) 求值的复杂度为 \(O(n^2)\)。

浙公网安备 33010602011771号