テイラー展開法による常微分方程式計算ツール
このテイラー展開法計算ツールは、y' = f(x,y) の形で表される初期値問題を数値的に近似します。導関数の式、初期点、x の目標値、正の刻み幅、1 から 4 までの次数を入力してください。結果には採用された各点に加え、次数ごとのテイラー係数と増分が表示されます。そのため、実際の数値計算にも、手計算で求めた解法の確認にもご利用いただけます。
無料で実行
初期値問題を明確に入力する方法
equation 欄には微分方程式の右辺だけを入力してください。たとえば、y' = x + y なら x + y と入力します。変数 x と y には、数値、括弧、加算、減算、乗算、除算、累乗、および exp、log、sin、cos、sqrt の各関数を組み合わせられます。次に x0 と y0 を指定し、既知の条件 y(x0) = y0 を定めます。target_x は近似計算を終了する x の位置です。step_size には常に正の最大距離を入力してください。計算ツールが x0 と target_x から進行方向を判断するため、前向きにも後ろ向きにも積分できます。区間が指定した刻み幅で割り切れない場合は、最後のステップだけを短くします。これにより、目標を通り過ぎたり手前で終了したりせず、最終値が正確に target_x に置かれます。乗算は 2x ではなく 2*x のように明示し、関数の引数は括弧で囲んでください。不正な構文、未対応の名前、ゼロ除算、実数の定義域外となる演算は入力エラーとして通知され、誤解を招く数値表は生成されません。
高次の項が計算される仕組み
テイラー展開法では、ある点の y に導関数の項を順に加え、y(x+h) を求めて次の点へ進みます。1 次では h y' だけを残すため、よく知られたオイラー法と同じです。2 次では h の 2 乗と y''/2! の積も加え、3 次と 4 次も同じ考え方で続きます。重要なのは、高階導関数を近傍の標本値から推測していない点です。この計算ツールは各ステップで x と y を打ち切りべき級数として表し、べき級数演算によって f(x,y) を評価します。y' = f(x,y) の同じ次数の係数を対応させることで、次の係数を順番に得ます。出力の coefficient は、導関数の次数 n に対するステップ開始点での y^(n)/n! です。increment は、その係数に h^n を掛けた値です。表示されたすべての増分を直前の y に加えると、表の次の y が得られます。この内訳により、各項を教科書の導出と照合し、符号や階乗の誤りを見つけ、後半の項が大きくなって刻み幅の見直しが必要になる状況を確認できます。
次数と刻み幅を適切に選ぶための注意点
解が滑らかで、級数が良好に振る舞う範囲にステップが収まる場合、次数を上げると一般にテイラー近似は改善します。ただし、次数だけで精度が保証されるわけではありません。刻み幅を小さくすると、反復回数は増えますが、より信頼できる結果になることが多いです。実用的な確認方法として、同じ問題を刻み幅を半分にしてもう一度実行し、最終的な y の値を比較してください。差が無視できない場合は、さらに刻み幅を小さくするか、低次のテイラー展開法がその方程式に適しているかをご検討ください。分母がゼロに近づく式や、log または sqrt の引数が実数の定義域を外れる場合にも注意が必要です。演算結果が有限値でなくなるステップは拒否されますが、有限に見える近似が区間全体で正確であることまでは証明できません。また、刻み幅の自動調整や厳密な誤差限界の提示も行いません。表示される項は、閉形式の解ではなく、追跡可能な数値的根拠としてお使いください。硬い方程式、不連続な右辺、高精度の科学計算では、適切な適応型ソルバーと分野固有の誤差解析による比較をお勧めします。
活用例
数値解析の課題を確認する
最終結果だけでなく、各係数とステップ増分を手計算の内容と照合できます。
次数と刻み幅の影響を調べる
同じ初期値問題を異なる次数や刻み幅で繰り返し、終点の近似値がどう変化するかを確認できます。
再現可能な教材を作成する
低次のテイラー展開法が常微分方程式をどのように進むかを示す、決定論的な表を作成できます。
よくある質問
1 回のリクエスト料金はいくらですか?
API リクエスト 1 回の料金は $0.002 です。簡単な対話形式の計算はブラウザーでもご利用いただけます。
各項の coefficient は何を表しますか?
導関数の次数 n に対し、coefficient はステップ開始時の y^(n)/n! です。increment はその係数に符号付き刻み幅の n 乗を掛けた値です。
1 次はオイラー法と同じですか?
はい。order 1 では y' と刻み幅の積だけを用いるため、陽的オイラー法の更新と同じです。
後ろ向きにも積分できますか?
はい。target_x を x0 より小さくし、step_size は正のまま入力してください。負のステップが自動的に適用されます。
厳密解や誤差限界も計算されますか?
いいえ。決定論的な数値近似とその各項を返しますが、閉形式の導出や大域誤差限界の保証は行いません。
どのような式を入力できますか?
x、y、pi、e、算術演算子、括弧、および exp、log、sin、cos、sqrt を使用できます。乗算記号は省略できません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calculus/taylor-method-ode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"equation":"x + y","x0":0,"y0":1,"target_x":0.2,"step_size":0.1,"order":4}'const res = await fetch("https://api.kit.forhosting.com/calculus/taylor-method-ode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"equation": "x + y",
"x0": 0,
"y0": 1,
"target_x": 0.2,
"step_size": 0.1,
"order": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/taylor-method-ode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"equation": "x + y",
"x0": 0,
"y0": 1,
"target_x": 0.2,
"step_size": 0.1,
"order": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/taylor-method-ode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"equation":"x + y","x0":0,"y0":1,"target_x":0.2,"step_size":0.1,"order":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"equation":"x + y","x0":0,"y0":1,"target_x":0.2,"step_size":0.1,"order":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/taylor-method-ode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"equation": "x + y",
"x0": 0,
"y0": 1,
"target_x": 0.2,
"step_size": 0.1,
"order": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.taylor_method_ode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_steps | 10000 |
max_expression_chars | 500 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |