関数反復計算ツール
関数反復計算ツールは、同じ実数値の式を初期値へ繰り返し適用し、得られた軌道のすべての点を返します。x を含む式を入力し、x_0 と反復回数を指定してください。結果には初期値、各回の出力、最終値が含まれます。漸化式、固定点、周期、収束、発散、単純な力学系の初期挙動を、代入計算を一つずつ手作業で行わずに調べる際に役立ちます。
無料で実行
関数と初期値を入力します
規則は x を含む式として、たとえば x^2 - 1、cos(x)、0.5*x + 3 のように入力してください。括弧、十進数、科学表記、演算子 +、-、*、/、^、定数 pi と e を利用できます。1 引数関数として abs、sqrt、sin、cos、tan、exp、ln、log、floor、ceil、round に対応しています。乗算記号は省略できないため、2x ではなく 2*x と記述してください。次に、有限の実数を初期値として指定します。この値が軌道の最初の要素 x_0 であり、1 回目の適用結果ではありません。最後に、ゼロから千までの反復回数を選びます。ゼロを指定すると初期点だけが返るため、入力が意図どおり解釈されたか確認できます。式は数学として解析され、コードとして実行されることはありません。記載された文法にない名前、構文、演算を使用すると、わかりやすい入力エラーが返されます。
軌道を正しい順序で読み取ります
入力した規則を f、初期値を x_0 とすると、まず x_1 = f(x_0)、次に x_2 = f(x_1) が計算され、x_n まで続きます。したがって orbit 配列には n + 1 個の値が入ります。インデックスゼロの初期値に続き、要求した適用ごとに一つの値が並びます。final_value フィールドはスクリプトから使いやすいよう最後の要素を再掲し、iterations は要求された適用回数を記録します。この区別により、数え方を一つ間違える典型的な問題を避けられます。たとえば 3 回の反復で返るのは合計 3 点ではなく、x_0、x_1、x_2、x_3 です。値は有用な精度を保ちながら二進浮動小数点の不要な末尾を抑えるため、15 桁の有効数字に正規化されます。ただし、この処理で数値反復が記号代数になるわけではありません。非常に敏感な系では、多数の手順を経ると丸めの影響が大きくなります。近い初期値が急速に離れる場合、長いカオス軌道は数値近似として扱ってください。
収束、周期、エラーを解釈します
連続する値から、漸化式の定性的な挙動が見えることがあります。後半の値がある数の近くで安定するなら、その数は引き付ける固定点かもしれません。関数へ代入しても、ほぼ同じ値になるためです。少数の値が交互に繰り返される場合は周期が示唆され、大きさが増え続ける場合は発散の可能性があります。有限の一覧だけでこれらを証明することはできませんが、分析に役立つ根拠と出発点を得られます。安定性を調べる際は、近接する複数の初期値から得た軌道を比較してください。ゼロ除算、負数の平方根、無効な対数などによって演算結果が Infinity または NaN になると、計算ツールは入力エラーで停止します。エラーには実数軌道が存在しなくなった反復回数が示されます。式の長さと反復回数に固定上限を設けているため、ブラウザーでも API でも実行時間を予測できます。ネットワーク、乱数、時計、隠れた状態を使わないので、同じ有効な入力からは常に同じ出力が得られます。
活用例
漸化式を調べます
x^2 - 1 のような規則について、手作業で代入を繰り返さずに x_0 から x_n までを生成できます。
固定点への収束を探します
連続する出力が、もう一度適用してもほとんど変化しない値へ近づくか確認できます。
近接する初期値を比較します
同じ非線形関数を近い初期条件から実行し、それぞれの数値軌道がどのように進むか比較できます。
よくある質問
軌道には初期値が含まれますか?
はい。最初の要素が x_0 で、その後に要求した各反復の出力が一つずつ続きます。
どのような式の構文に対応していますか?
x、数値、pi、e、括弧、+、-、*、/、^、および記載された 1 引数関数を使用できます。乗算記号は明示してください。
反復結果が未定義になるとどうなりますか?
計算を停止し、有限でない値が生じた反復回数を示す入力エラーを返します。
カオス軌道が理論上の厳密解と異なることがあるのはなぜですか?
浮動小数点による数値反復だからです。敏感な力学系では、小さな丸めの差が急速に拡大する場合があります。
API での計算料金はいくらですか?
API リクエスト 1 件の料金は $0.002 です。同じ決定論的な計算ツールをブラウザーでも利用できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/function-iteration \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"function":"x^2 - 1","start":1.5,"iterations":4}'const res = await fetch("https://api.kit.forhosting.com/algebra/function-iteration", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"function": "x^2 - 1",
"start": 1.5,
"iterations": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/function-iteration",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"function": "x^2 - 1",
"start": 1.5,
"iterations": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/function-iteration", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"function":"x^2 - 1","start":1.5,"iterations":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"function":"x^2 - 1","start":1.5,"iterations":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/function-iteration", 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 - 1",
"start": 1.5,
"iterations": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.function_iteration",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_iterations | 1000 |
max_expression_chars | 500 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |