自然三次スプライン補間計算機
0と1を交互にとる四つの点を通る自然三次スプラインは、xが1.5のとき0.5になります。三点以上を順不同で入れ、目標のxを指定するだけで、なめらかな値とそれを生んだ三次式の区間が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 目標の x
- 1.5
- Y
- 0.5
- 点の数
- 4
- x の最小値
- 0
- x の最大値
- 3
自然三次スプライン補間は、結び目の間で一次・二次導関数を連続に保ち、端付近では穏やかでほぼ直線的な形を望むときに、散在する標本点を通る滑らかな曲線を描く標準的な方法です。単一の高次多項式とは異なり、自然三次スプラインは連続する x 値の各区間に別々の三次式を用い、内点の各結び目で関数・傾き・曲率が一致するようにつなぎます。自然とは、両端点で二次導関数をゼロに固定することを意味し、追加の傾きデータを用意せずに最後の二つの自由パラメータを除きます。本計算機は順序付きまたは無順序の (x, y) 結び目リストを受け取り、三重対角の Thomas 解法でその一意な自然スプラインを構築し、目標 x での補間値とアクティブ区間の係数を返します。
自然三次スプラインとは何か、端点がなぜ重要か
内点結び目での S・S'・S'' の連続性から、境界条件が二つ残ります。x が狭義単調増加なら二次導関数係数の系は対称三重対角かつ正定値となり、一度の Thomas 掃き出しで線形時間に解けます。目標 x での評価は、その目標を含む唯一の区間での短い Horner 風多項式評価です。
本自然三次スプライン補間計算機はまさにこのパイプラインを実装し、授業や参照ライブラリで用いられる古典的構成と結果が一致するようにしています。
自然三次スプライン評価が役立つ場面
授業の実験では、自然境界系で三〜十点の表形式標本を手計算で補間させます。オンラインの自然三次スプライン補間計算機があれば、中間の二次導関数と区間中央の x での最終 S を、線形代数を打ち直さずに検証できます。金融や運用のノートブックは、最小二乗フィットではなく全観測を厳密に通る補間子が欲しいときに、透明な平滑化として自然スプラインを使います。
検証失敗は残高を消費しません。
活用例
宿題と数値解析の確認
手計算の自然三次系を検証します。同じ結び目と区間中央の x を送り、y と区間係数を教科書の Thomas 法の手順と比較してください。
センサー・校正の欠測埋め
不規則間隔の校正表を、最初と最後の標本の間に厳密に収まる照会時刻で補間し、科学計算スタック一式をエッジへ送る必要をなくします。
ノートブックと滑らかな厳密補間
最小二乗平滑が不適切なとき、すべての観測を通る二階微分可能な曲線を構築します。
よくある質問
三次スプラインで自然とは何を意味しますか?
自然とは両端点の二次導関数をゼロにすることです。端点傾きを要求せず系を閉じ、教科書で用いられる古典的な三重対角解法につながります。
何点必要ですか?
x が互いに異なる結び目が少なくとも三点(二区間)です。三点未満は拒否され、256 超も拒否されます。重複 x はこの補間子では常に無効です。
入力点は事前に並べ替える必要がありますか?
いいえ。 任意の順で送れます。エンジンは解く前に x 昇順に並べ替えます。必要なのは x の一意性だけです。
データの範囲の外でスプラインを評価できますか?
できません。目標のxは、入力した点の最小のxから最大のxまで(両端を含む)の範囲に入っている必要があります。範囲外は外挿になるため、値を推測せずに受け付けません。
スプラインと最小二乗法による近似はどう違いますか?
スプラインは与えたすべての点を正確に通り、つなぎ目で傾きと曲がり具合がなめらかにそろいます。最小二乗法は各点を通らずにならすため、誤差のある測定値に向き、正確な表には向きません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calculus/cubic-spline-natural \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"points":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":0},{"x":3,"y":1}],"target_x":1.5}'const res = await fetch("https://api.kit.forhosting.com/calculus/cubic-spline-natural", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"points": [
{
"x": 0,
"y": 0
},
{
"x": 1,
"y": 1
},
{
"x": 2,
"y": 0
},
{
"x": 3,
"y": 1
}
],
"target_x": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/cubic-spline-natural",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"points": [
{
"x": 0,
"y": 0
},
{
"x": 1,
"y": 1
},
{
"x": 2,
"y": 0
},
{
"x": 3,
"y": 1
}
],
"target_x": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/cubic-spline-natural", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"points":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":0},{"x":3,"y":1}],"target_x":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"points":[{"x":0,"y":0},{"x":1,"y":1},{"x":2,"y":0},{"x":3,"y":1}],"target_x":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/cubic-spline-natural", 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": 0
},
{
"x": 1,
"y": 1
},
{
"x": 2,
"y": 0
},
{
"x": 3,
"y": 1
}
],
"target_x": 1.5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.cubic_spline_natural",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
自然三次スプラインとは何か、端点がなぜ重要か
結び目 x_0 が x_1 より小さく … x_n より小さい三次スプラインとは、各データ値 y_i を x_i で正確に通過し、区間全体で二階連続微分可能であり、各部分区間 [x_i, x_{i+1}] に一つの三次片を用いる区分的三次多項式 S です。自然条件は x_0 と x_n の二次導関数をともにゼロとし、標本窓の外側では曲線が直線として続くとみなすことに相当します。この選択は数値解析の教科書、CAD 寄りのスケッチ、科学プロットで広く使われ、端点の傾きや曲率を利用者から要求せず表形式の点だけで足ります。係数が分かれば、各片は S_i(x) = a_i + b_i·δ + c_i·δ² + d_i·δ³ と書け、δ は x − x_i、a_i は y_i、b_i・c_i・d_i は標準漸化式から得られます。
入力契約、応答フィールド、検証規則
points は少なくとも三つのオブジェクトの配列で、各要素は有限の数値 x と y を持ちます。順序は問いません。 エンジンはスプライン構築前に x 昇順で並べ替えます。結び目 256 個の上限がブラウザとワーカーの負荷を抑えます。必須フィールドが二つの JSON 本体を POST してください。同じ配列を別名 knots または data でも送れます。x 値は互いに一意でなければならず、二つの結び目が同じ横座標を共有すると、この補間子では一 x に二つの縦座標を持てないため invalid_input で失敗します。target_x は S を評価したい有限の横座標で、短いクライアント向けに別名 x も受け付けます。目標は最小の結び目 x から最大までの閉区間内になければならず、自然三次の各片は結び目間でのみ意図した補間を保証するため、本エンドポイントは標本窓外へは外挿しません。欠落フィールド、非有限数、三点未満、重複 x、結び目範囲外の目標はすべて invalid_input となり課金されません。
自然三次スプライン評価が役立つ場面
センサー系は不規則間隔の校正点を持ち、標本間の照会時刻で滑らかな埋め込みが必要になることが多く、小さな parse API を呼べばフル SciPy スタックを各エッジワーカーへ送らずに済みます。実装は線形 Thomas 解法の純粋解析数学のため、成功呼び出しごとに公開の基準価格 $0.002 のみで、モデルトークンも外向きネットワークもありません。リクエストを小さく保ち、テストで清掃済み y と区間係数を固定すれば、自前の数式や描画基盤を立てずに LMS プラグイン・設計ツール・計測ダッシュボード向けの再現可能なスプライン値が得られます。
技術的な質問
データ範囲の外でも評価できますか?
いいえ。target_x は最小から最大の結び目 x までの閉区間内になければなりません。範囲外は黙った外挿ではなく invalid_input で失敗します。
自然三次スプライン計算機の料金は?
ブラウザツールは無料です。API は成功呼び出しあたり $0.002 の前払い KIT 残高を使い、無効入力は課金されません。