ニュートン後退差分補間計算機
ニュートン後退補間は、x 値が一定間隔で並ぶ表から関数値を推定する方法です。公式が最終行を基準にし、その位置の後退差分を使うため、求める x が表の末尾に近い場合に特に適しています。昇順に並べた 2 点以上のデータと目標 x を入力してください。計算機は間隔を検査し、必要な有限差分をすべて作成して補間多項式全体を評価します。推定値だけでなく、各項の計算内容も返しますので、途中過程をご確認いただけます。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
ニュートン後退公式が適する場合
観測値が等間隔の x に対して表にまとめられ、目標値が最後の観測点に近い場合は、ニュートン後退補間をご利用ください。最後の 2 回の標本時刻の間にある測定値の推定、数値表の下部にある欠損値の補完、後退差分を扱う演習問題の検算などに使えます。末尾に近いことは解釈上の利点であり、入力上の絶対条件ではありません。多項式は別の位置でも評価できますが、表の先頭付近では別の表現のほうが理解しやすい場合があります。点は x の厳密な昇順で入力してください。すべての x と y は有限数である必要があり、最低 2 点が必要です。入力した点はすべて使用されるため、n 点から得られる補間多項式の次数は最大で n から 1 を引いた値です。雑音を含むデータでは点を増やせば必ず改善するわけではありません。補間多項式は全観測値を正確に通るため、測定誤差を増幅したり、点の間で振動したりする可能性があります。次数を上げる目的だけで遠い観測値を加えず、目標付近の簡潔で関連性の高い表をお選びください。
後退差分による計算の仕組み
共通間隔を h、表の最後の座標を x n とし、目標座標から x n を引いて h で割った値を p とします。公式は最後の y 値から始まります。次に、端点での 1 階後退差分に p を掛けた項を加え、さらに 2 階後退差分に p と p プラス 1 を掛け、2 の階乗で割った項を加えます。それ以降の項では、この上昇積を延ばして対応する階乗で割ります。計算機は、各値の直後の値からその値を繰り返し差し引いて有限差分を作ります。各差分行の最後の値が、公式で必要となる端点後退差分です。結果では 0 階から順に各項を表示します。それぞれに係数、後退差分、寄与量が含まれるため、合計を再現したり、手計算の算術誤りを見つけたりできます。表示される p は表の間隔を単位とした最終行からの距離も表し、端点では 0、その直前の目標では負になります。
結果の読み方と一般的な誤りの回避
推定値は表示された全寄与量の合計です。間隔は連続する x 値の間で検証された刻み、次数は入力点数から 1 を引いた値です。端点 x は後退公式の基準に使われた行を示します。推定値を解釈する前に、間隔が意図した表の刻みと一致し、p の符号と大きさが予想どおりかご確認ください。p の絶対値が非常に大きい場合、端点から遠くへの外挿であり、多項式が不安定になるおそれがあります。本計算機は、並び順が不正な座標、重複座標、有限でない値、不均等な間隔を拒否し、前提を満たさない公式を黙って適用しません。本来等しい小数間隔に生じるごく小さな浮動小数点差は許容しますが、明らかな不等間隔標本は受け付けません。また、補間は滑らかな多項式モデルが表の値に適することを仮定しており、実際の現象が多項式的であると証明するものではありません。実験データでは専門知識、不確かさの範囲、または低次近似と比較してください。正確な演習表では、項別表示により元の行から最終値まで明確に追跡できます。
活用例
数値解析の演習を完成する
端点の差分項を作り、ニュートン後退補間多項式の手計算をご確認いただけます。
表の末尾付近を推定する
最後の数個の等間隔観測値の間を、端点基準の計算過程を表示しながら近似します。
有限差分の計算表を監査する
各係数、後退差分、寄与量を表計算シートや教材の差分表と比較できます。
よくある質問
API リクエストの料金はいくらですか?
API リクエスト 1 回の料金は $0.002 です。ブラウザーでも実行していただけます。
x 値は等間隔でなければなりませんか?
はい。標準のニュートン後退差分公式は一定の間隔 h を前提とするため、不等間隔データは受け付けません。
目標値は表の範囲内である必要がありますか?
いいえ。ただし表の範囲外では外挿となり、特に端点から遠いほど信頼性が大きく低下する場合があります。
目標を最後の点に近づける理由は何ですか?
後退形式は最終行を基準とするため、その近くではパラメーターと差分を自然に解釈できます。
何点入力すればよいですか?
2 点以上 100 点以下を入力してください。傾向を表す近傍点を十分に使い、雑音や不要な高次数が信頼性を下げる点にご注意ください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calculus/newton-backward-interpolation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[{"x":0,"y":1},{"x":1,"y":2},{"x":2,"y":5},{"x":3,"y":10}],"target_x":2.5}'const res = await fetch("https://api.kit.forhosting.com/calculus/newton-backward-interpolation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"points": [
{
"x": 0,
"y": 1
},
{
"x": 1,
"y": 2
},
{
"x": 2,
"y": 5
},
{
"x": 3,
"y": 10
}
],
"target_x": 2.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/newton-backward-interpolation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"points": [
{
"x": 0,
"y": 1
},
{
"x": 1,
"y": 2
},
{
"x": 2,
"y": 5
},
{
"x": 3,
"y": 10
}
],
"target_x": 2.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/newton-backward-interpolation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"points":[{"x":0,"y":1},{"x":1,"y":2},{"x":2,"y":5},{"x":3,"y":10}],"target_x":2.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"points":[{"x":0,"y":1},{"x":1,"y":2},{"x":2,"y":5},{"x":3,"y":10}],"target_x":2.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/newton-backward-interpolation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"points": [
{
"x": 0,
"y": 1
},
{
"x": 1,
"y": 2
},
{
"x": 2,
"y": 5
},
{
"x": 3,
"y": 10
}
],
"target_x": 2.5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.newton_backward_interpolation",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_points | 100 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |