疑似逆数を使用して補間多項式の 1 つの形式を計算できます。これは、Sin
5 次の多項式で関数の近似を使用した例です。
(* A function to compute {x^5, x^4, x^3, x^2, x, 1} of x *)
f = Function[x, x^# & /@ Reverse@Range[0, 5]]
xvals = Range@5;
yvals = Sin /@ Range@5;
(* Find the polynomial coefficients by solving the matrix equation *)
coeffs = PseudoInverse[f /@ xvals].yvals
poly = {x^5, x^4, x^3, x^2, x, 1}.coeffs
Plot[{Sin[x], poly}, {x, 0, 10}]
InterpolatingPolynomial
これにより、関数と同じ出力が得られることがわかります。
Simplify[InterpolatingPolynomial[Sin /@ Range@6, x] // N]
Plot[{Sin[x], %}, {x, 0, 10}]
この手法については、セクション「補間多項式の構築」の「多項式の解釈」で説明されています。
これで、動作する C++ バージョンを構築するのに十分な情報が得られることを願っています。