根から四次方程式を作る計算機
根から4次方程式を作る計算機は、4つの実数根を1つのモニック4次多項式に変換します。異なる値だけでなく重複する値も入力でき、対応する因子を展開して、降べき順の係数、標準形、読みやすい方程式を返します。問題で零点だけが与えられて多項式を求める場合、因数分解を検算する場合、または根の表記ではなく係数配列を必要とするソフトウェアへ渡す場合に便利です。計算は決定論的であり、外部の数式処理サービスを利用しません。
無料で実行
4つの根を一次因子に変換します
数 r を x に代入したとき多項式が0になるなら、r はその多項式の根です。因数定理により、根 r は一次因子 (x - r) に対応します。本計算機は4つの入力値すべてにこの規則を適用し、(x - r1)(x - r2)(x - r3)(x - r4) を作ります。負の根では負数を引くため、因子内は自然に加算になります。根が0なら因子は x です。重複値もそのまま保持されるため、2, 2, -1, 0 からは2を重根とする多項式が得られます。結果はモニック、すなわち最高次係数が1です。そのため、低次の係数が打ち消し合っても、4つの一次因子からは必ず x^4 の項が生じます。根は式や記号定数ではなく、実際のJSON数値として入力してください。検証を明確にするため、有限の実数をちょうど4つ指定する必要があります。
展開と係数の計算方法です
因子は係数の決定論的な畳み込みによって展開されます。最初は定数多項式1です。根 r ごとに現在の係数列を x - r と掛けます。各係数は1回ずつ次の高い次数の位置に加わり、さらに -r を掛けた値がその次の位置に加わります。4回の処理後、ax^4 + bx^3 + cx^2 + dx + e に対応する [a, b, c, d, e] が得られます。作られる多項式はモニックなので、a は常に1です。他の値は基本対称式とも一致します。b は根の和の負数、c はすべての2根積の和、d はすべての3根積の和の負数、e は4根の積です。応答には順序付き係数配列と標準形の名前付きフィールドに加え、因子表示、整形済みの式、右辺を0とした方程式も含まれます。コード、学習問題、目視確認のどれにも同じ結果を利用できます。
結果を読み取り4次式を検算します
数値ソフトウェアへ渡す場合は係数配列をご利用ください。順序は常に x^4, x^3, x^2, x, 定数項です。名前付きフィールドが分かりやすい場合は standard_form を使い、記述式の解答には方程式をコピーできます。簡単な検算では、展開式の x に元の各根を代入します。2進浮動小数点による小さな丸め誤差を除き、すべて0になるはずです。構造からも確認できます。定数項は4根の積で、x^3 の係数は根の和の負数です。根に0があれば定数項も0になります。互いに符号が反対の根が対になっていると、奇数次数の項が消えることがあります。このendpointは既知の根を解き直すものではなく、逆方向の処理として、それらに対応する唯一のモニック4次式を構築して展開します。APIリクエストは1項目あたり$0.002で、4根の1組を1項目として数えます。
活用例
指定された零点から方程式を作成します
代数問題で与えられた4つの根を、求められている標準形のモニック4次方程式に変換します。
手計算による展開を確認します
4つの一次因子を手で展開した結果を、決定論的な係数配列と整形済み方程式で照合します。
ソルバー用の入力を準備します
根で表されたデータを、数値計算やグラフ作成ツールが求める降べき順の係数配列に変換します。
よくある質問
根の順序は結果に影響しますか?
影響しません。乗算には交換法則があるため、同じ4つの根を並べ替えても係数は同じです。
同じ根を複数回指定できますか?
はい。重複する回数だけ同じ値を入力してください。対応する一次因子がその重複度を持ちます。
負数、0、小数の根を入力できますか?
はい。公開されている入力上限内の有限実数なら、負数、0、小数も指定できます。
最高次係数が常に1なのはなぜですか?
最高次係数が1である因子 (x - r) を掛け合わせるため、根に対応する唯一のモニック4次式になります。
1回の計算料金はいくらですか?
APIによる1回の計算は$0.002です。ちょうど4つの根を含むリクエストを1項目として数えます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/quartic-from-roots \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"roots":[1,2,3,4]}'const res = await fetch("https://api.kit.forhosting.com/algebra/quartic-from-roots", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"roots": [
1,
2,
3,
4
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/quartic-from-roots",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"roots": [
1,
2,
3,
4
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/quartic-from-roots", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"roots":[1,2,3,4]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"roots":[1,2,3,4]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/quartic-from-roots", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"roots": [
1,
2,
3,
4
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.quartic_from_roots",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |