InterpolatingPolynomial[{f1,f2,…},x]
x の連続する整数値1, 2, … について関数の値 fiを再生する x における補間多項式を構築する.
InterpolatingPolynomial[{{x1,f1},{x2,f2},…},x]
x の値 xiに対応する関数の値 fiについての補間多項式を構築する.
InterpolatingPolynomial[{{{x1,y1,…},f1},{{x2,y2,…},f2},…},{x,y,…}]
変数 x, y, …における多次元補間多項式を構築する.
InterpolatingPolynomial[{{{x1,…},f1,df1,…},…},{x,…}]
関数の値とともに導関数も再生する補間多項式を構築する.
InterpolatingPolynomial
InterpolatingPolynomial[{f1,f2,…},x]
x の連続する整数値1, 2, … について関数の値 fiを再生する x における補間多項式を構築する.
InterpolatingPolynomial[{{x1,f1},{x2,f2},…},x]
x の値 xiに対応する関数の値 fiについての補間多項式を構築する.
InterpolatingPolynomial[{{{x1,y1,…},f1},{{x2,y2,…},f2},…},{x,y,…}]
変数 x, y, …における多次元補間多項式を構築する.
InterpolatingPolynomial[{{{x1,…},f1,df1,…},…},{x,…}]
関数の値とともに導関数も再生する補間多項式を構築する.
詳細とオプション
- 関数の値
とサンプル点
等は,任意の実数あるいは複素数でよく,一次元では任意の記号式でもよい. - 長さ
の一次元のデータリストで,InterpolatingPolynomialは次数
の多項式を与える. - 指定された任意のデータセットを使ってできる補間多項式は無限にある.InterpolatingPolynomialは,常にその中で総次数が最も低いものを見付けようとする.
- InterpolatingPolynomialは,数値的評価に適したホーナー形式の補間多項式を与える.
- データ中の異なる要素は指定された異なる数の導関数を持つことができる.
- 多次元データに関しては,D[f,{{x,y,…},n}]に相当する構造を持ったテンソルとして

次導関数を与えることができる. » - InterpolatingPolynomialは任意の関数値あるいは導関数がAutomaticとして与えられるのを許す.この場合,必要な情報は導関数あるいは他の関数値から得ようとされる. »
- Modulus->n というオプション設定は,補間多項式の法が
であるように指定する. »
例題
すべて開く すべて閉じる例 (2)
スコープ (3)
InterpolatingPolynomial[{4, 7, 2, 8, 9}, x]Show[Plot[%, {x, 0, 6}], ListPlot[{4, 7, 2, 8, 9}]]InterpolatingPolynomial[{4, 7, 2, {8, 0}, 9}, x]Show[Plot[%, {x, 0, 6}], ListPlot[{4, 7, 2, 8, 9}]]InterpolatingPolynomial[{{{0, 0}, 1}, {{1, 0}, 7}, {{0, 1}, 10}, {{2, 1}, 40}, {{3, 3}, 151}, {{1, 2}, 47}}, {x, y}]ContourPlot[%, {x, 0, 3}, {y, 0, 3}, Epilog -> {Green, Map[Point, {{0, 0}, {1, 0}, {0, 1}, {2, 1}, {3, 3}, {1, 2}}]}]一般化と拡張 (3)
多項式が
と
で導関数を持たないようにする,ただしそこでの値は指定しない:
InterpolatingPolynomial[{{-1, Automatic, 0}, {0, 1, 1}, {1, Automatic, 0}}, x]Plot[%, {x, -1, 1}]InterpolatingPolynomial[{{{0, 0}, 1, {2, 3}}, {{1, 0}, 7}, {{0, 1}, 10, {Automatic, 15}}}, {x, y}]InterpolatingPolynomial[{{{1, 2, 3}, 4, {5, 6, 7}}, {{3, 2, 1}, 0}}, {x, y, z}]オプション (1)
アプリケーション (5)
InterpolatingPolynomial[{{0, 1}, {a, 0}, {b, 0}, {c, 0}}, x]Factor[%]
点のニュートン・コーツ(Newton-Cotes)積分公式:
TableForm[Table[
abc = Range[0, n - 1] / (n - 1);
Integrate[InterpolatingPolynomial[Table[{x, f[x]}, {x, abc}], x], {x, 0, 1}],
{n, 2, 8}]]TableForm[Table[
abc = Range[-k / 2, k / 2];
Together[D[InterpolatingPolynomial[Table[{s, f[x + s h]}, {s, abc}], s], s] / h /. s -> 0],
{k, 2, 10, 2}]]m = RandomInteger[1, {6, 6}]InterpolatingPolynomial[Table[Det[m - λ IdentityMatrix[6]], {λ, 11}], x]Expand[%] === CharacteristicPolynomial[m, x]{m, n} = {4, 4};
{xc, yc} = {Range[m], Range[n]};
zc = RandomInteger[{-9, 9}, {m, n}];yinterp = Map[InterpolatingPolynomial[Transpose[{yc, #}], y]&, zc]points = Graphics3D[{PointSize[Medium], Red, Point@Flatten[Table[{xc[[i]], yc[[j]], zc[[i, j]]}, {i, m}, {j, n}], 1]}];Show[ParametricPlot3D[Evaluate@Table[{xc[[i]], y, yinterp[[i]]}, {i, m}], {y, 1, n}, BoxRatios -> {1, 1, 0.4}], points]xyinterp = InterpolatingPolynomial[Transpose[{xc, yinterp}], x]Show[Plot3D[xyinterp, {x, 1, m}, {y, 1, n}], points]特性と関係 (3)
data = {1, 2, 3, 5, 8, 5};InterpolatingPolynomial[data, x]% /. x -> Range[6]ListInterpolationはテンソル積の補間を作る:
{m, n} = {5, 6};
{xc, yc} = {Range[m], Range[n]};
zc = RandomInteger[{-9, 9}, {m, n}];数値InterpolatingFunctionオブジェクトを作る:
linterp = ListInterpolation[zc, {xc, yc}, InterpolationOrder -> {m - 1, n - 1}]yinterp = Map[InterpolatingPolynomial[Transpose[{yc, #}], y]&, zc];
interp = InterpolatingPolynomial[Transpose[{xc, yinterp}], x];Max[Abs[Table[interp - linterp[x, y], {x, RandomReal[{1, m}, 2m]}, {y, RandomReal[{1, n}, 2n]}]]]pts = {{0, 0}, {1 / 10, 3 / 10}, {1 / 2, 3 / 5}, {1, -1 / 5}, {2, 3}};LinearSolveでVandermondeMatrixを使って補間多項式の係数を取得する:
LinearSolve[VandermondeMatrix[pts[[All, 1]]], pts[[All, 2]]]% == CoefficientList[InterpolatingPolynomial[pts, x], x]考えられる問題 (3)
f[x_] := 1 / (1 + 25 x ^ 2);points = Table[{x, f[x]}, {x, -1, 1, .1}];Plot[Evaluate[InterpolatingPolynomial[points, x]], {x, -1, 1}, PlotRange -> All, Epilog -> {Red, Map[Point, points]}]Interpolationは,この問題のない,より階数の低い区分多項式を使う:
Interpolation[points]Plot[%[x], {x, -1, 1}, Epilog -> {Red, Map[Point, points]}]導関数が関数の値なしで指定されると,補間式が見付からないことがある:
InterpolatingPolynomial[{{-1, 1}, {0, Automatic, 0}, {1, -1}}, x]Expand[InterpolatingPolynomial[{{-1, 1}, {0, a, 0}, {1, -1}}, x]]data = {{{0, 0}, 1}, {{1, 1}, 2}, {{2, 2}, 4}};多次元では,ある種の点の並び方では補間式が求まらないことがある:
InterpolatingPolynomial[data, {x, y}]InterpolatingPolynomial[{{0, 1}, {1, 2}, {2, 4}}, x]テクニカルノート
-
▪
- 多項式の代数演算
関連するガイド
履歴
1991 で導入 (2.0) | 2007 で更新 (6.0)
テキスト
Wolfram Research (1991), InterpolatingPolynomial, Wolfram言語関数, https://reference.wolfram.com/language/ref/InterpolatingPolynomial.html (2007年に更新).
CMS
Wolfram Language. 1991. "InterpolatingPolynomial." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2007. https://reference.wolfram.com/language/ref/InterpolatingPolynomial.html.
APA
Wolfram Language. (1991). InterpolatingPolynomial. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/InterpolatingPolynomial.html
BibTeX
@misc{reference.wolfram_2026_interpolatingpolynomial, author="Wolfram Research", title="{InterpolatingPolynomial}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/InterpolatingPolynomial.html}", note=[Accessed: 05-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_interpolatingpolynomial, organization={Wolfram Research}, title={InterpolatingPolynomial}, year={2007}, url={https://reference.wolfram.com/language/ref/InterpolatingPolynomial.html}, note=[Accessed: 05-November-2026]}