ニュートン・ラフソン法1回分の計算ツール
この計算ツールは、現在の近似値からニュートン・ラフソン法をちょうど1回だけ実行します。関数 f(x)、その導関数 f'(x)、現在値 x_n を入力してください。両方の式をその点で評価し、関数値を導関数値で割った補正量を現在値から引いて x_(n+1) を求めます。途中の数値もすべて返すため、演習の確認、数値計算手順の記録、反復を続けるか判断する前の1回分の検討にご利用いただけます。
無料で実行
関数、導関数、現在の近似値をご入力ください
まず、根を近似したい関数と、その導関数を別々の式として記述してください。どちらも変数には x を使用します。四則演算、括弧、べき乗、定数 pi と e、および sin、cos、tan、exp、log、sqrt、abs などの一般的な関数に対応しています。乗算は 2x ではなく 2*x のように明示してください。典型例 f(x) = x^2 - 2 では、関数に x^2 - 2、導関数に 2*x を入力します。続いて、この1回の計算を開始する近似値 x_current を指定してください。通常は根に比較的近く、導関数が存在してゼロにならない領域の値が適切です。f(x) = や f'(x) = という接頭表記も受け付けますが、自動処理では式だけを入力する方が明確です。数値は無次元として扱われるため、物理量を表す場合は単位系を統一してください。解析器は数学記法だけを受け付け、プログラムコードを実行しません。式の長さには上限があり、入力値と計算値はすべて有限でなければなりません。この制約により、保存した入力を再現でき、未定義の演算を正常な結果に見せることを防ぎます。
1回のニュートン・ラフソン更新をご確認ください
ニュートン・ラフソン法では、現在の近似点における接線が x 軸と交わる位置を次の候補にします。最初に f(x_current) と f'(x_current) を評価し、補正量 f(x_current) / f'(x_current) を求めて、x_next = x_current - correction を適用します。出力には現在の近似値、関数値、導関数値、補正量、次の近似値が含まれるため、各計算を個別に確認できます。x^2 - 2 に x_current = 1.5 を用いると、関数値は 0.25、導関数値は 3 です。補正量は約 0.0833333333 となり、差し引いた結果は約 1.4166666667 です。実行する更新は1回だけであり、x_next を自動的に再入力することはありません。そのため、授業、計算用紙、別のシステムが停止条件を管理する処理に適しています。精度の設定は JSON に表示する小数桁だけを変更し、式の評価と減算にはその前に浮動小数点精度を使用します。導関数がゼロの場合や式が現在点で未定義の場合は、無限値や誤解を招く近似値ではなく入力エラーを返します。
次の近似値を解釈し、その後の処理をご判断ください
次の近似値は数値的な候補であり、根の存在や収束を証明するものではありません。開始点が単根に十分近く、その周辺で関数が滑らかなら、ニュートン・ラフソン法は速く収束することが多いものの、1回の計算だけでは条件を確認できません。関数値と補正量の大きさをご確認ください。補正量が小さい場合は安定化の兆候かもしれませんが、導関数が非常に大きい場合にも起こるため、採用前に後続の手順で f(x_next) を評価してください。補正量が大きければ、接線の交点が現在点から遠いことを示します。反復を続けると、発散、振動、定義域外への移動、意図しない別の根への収束が起こる場合があります。重根では通常の収束速度も低下します。信頼できる処理には、補正量と残差の両方に停止基準を設け、最大反復回数を定め、既知の区間があれば挟み撃ち法とも比較してください。このツールは導関数を数値的に推定せず、明示された式を同じ x_current で評価します。そのため、記号微分の検算、接線を使う考え方の説明、大きなソルバーへの決定的な1ステップの組み込みに役立ちます。APIは1回$0.002で、ブラウザー版では同じ純粋計算をローカル実行できます。
活用例
演習の1回分を検算する
手計算した結果を、返された関数値、導関数、補正量、次の近似値と比較できます。
難しい開始点を調べる
反復を続ける前に1回だけ実行し、接線による補正が妥当かをご確認いただけます。
監視付きソルバーを構築する
別の処理で許容誤差、記録、反復上限を管理しながら、決定的な更新を1回ずつ呼び出せます。
よくある質問
APIリクエストの料金はいくらですか?
API料金は1リクエストあたり$0.002です。ブラウザー計算ツールでは同じ純粋計算を無料でローカル実行します。
このツールだけで根を最後まで求められますか?
いいえ。ニュートン・ラフソン更新をちょうど1回だけ実行します。収束方針で継続すべき場合に限り、x_next を新しい x_current としてお使いください。
導関数を入力する必要があるのはなぜですか?
式に f'(x_current) が必要だからです。導関数を明示すると、数値差分の隠れた選択を避け、計算を監査できます。
導関数がゼロの場合はどうなりますか?
ゼロ除算では有効な補正量を得られないため、無効な入力としてエラーを返します。
どのような式の記法に対応していますか?
x、数値、明示的な四則演算、括弧、べき乗、pi、e、および三角、指数、対数、平方根、絶対値などの1引数関数をご利用いただけます。
補正量が小さければ収束は保証されますか?
いいえ。次の近似値で残差を確認し、停止条件、反復上限、対象領域に関する知識を併用してください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calculus/newton-raphson-single-step \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"function":"x^2 - 2","derivative":"2*x","x_current":1.5}'const res = await fetch("https://api.kit.forhosting.com/calculus/newton-raphson-single-step", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"function": "x^2 - 2",
"derivative": "2*x",
"x_current": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/newton-raphson-single-step",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"function": "x^2 - 2",
"derivative": "2*x",
"x_current": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/newton-raphson-single-step", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"function":"x^2 - 2","derivative":"2*x","x_current":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"function":"x^2 - 2","derivative":"2*x","x_current":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/newton-raphson-single-step", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"function": "x^2 - 2",
"derivative": "2*x",
"x_current": 1.5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.newton_raphson_single_step",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |