ビエタの公式
x² − 3x + 2 の根の和は3、積は2です。ビエタの公式により、方程式を解かずに係数から直接読み取れます。2次式や3次式で、求めた根が正しいかの確認に使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
ビエタの公式は、一変数多項式の係数と、その根の基本対称和を、根を一つずつ計算せずに結びつけます。昇べきの順(定数項が先頭、最高次が末尾)の有限係数の密なリストを与えると、この計算機は、最高次係数 an が非零である限り、方程式 a0 プラス a1 x プラス…プラス an x の n 乗 が零、のすべての根の和とすべての根の積を返します。古典的な恒等式は、和がマイナス a サブ n マイナス1 を an で割ったもの、積がマイナス1 の n 乗 掛ける a0 を an で割ったものです。この閉形式は複素数上で次数1以上なら厳密で、モニックでも非モニックでも成り立ち、決定的です。乱数シードもネットワーク呼び出しもモデルのドリフトもありません。最高次係数が零のような無効な入力は、黙って誤った次数にするのではなく、明確な検証エラーで拒否されます。
ビエタの公式が係数と根の和・積をどう結びつけるか
モニックでも非モニックでも、a0 プラス a1 x プラス a2 x の二乗 と続き an 掛ける x の n 乗 と書き、an が零でなく n が少なくとも1である多項式から始めます。x の各べきを対応させると直ちにビエタが得られます。
中間の基本対称和もありますが、両極端—総和と総積—が、二次の因数分解の確認、三次根の見当の検証、同伴行列を作らずにトレース様・行列式様の量を関係づけるときに学生や技術者が最もよく参照する恒等式です。この実装は数値的な根探しを反復せず、係数リストを解析して二つの閉じた比を評価するだけです。
その設計により、係数の浮動小数点表現に対して結果が厳密に保たれ、重根での発散を避け、配列の線形走査のあと定数時間で終わります。係数は有限数でなければならず、NaN と Infinity は拒否されます。次数0—定数だけの配列—は、非零定数の根の多重集合が空でビエタが適用できないため拒否されます。
最も重要な点として、配列の末尾が零または極めて零に近い場合、真の代数的次数が下がるため、末尾の零を黙って落とすと積の公式の比が変わってしまうので、最高次係数を名指しして無効入力として失敗します。
ビエタの和・積チェックが実務で現れる場面
高校・大学の代数では「根を確かめる」演習が絶えず出ます。学生が三次の3根を主張したあと、教員はそれらを掛けて足し、ビエタの係数比と比較します。両方の数を返す信頼できる単一のオラクルは、授業がまだ検証段階のときに個別の根を明かさず、採点とデモ準備を速めます。
プログラミングコンテストや面接のウォーミングアップでは、漸化式や特性方程式から得たモニック多項式の根の和または積だけを問うことが多く、技術者は壊れやすい数値因数分解より閉形式を必要とします。信号処理や制御のノートは離散系の特性多項式を取り出し、各極を解かずに定数項と安定余裕を根の積から論じます。
のちに基本対称和の完全リスト、二次・三次の明示的な根公式、係数ベクトルの多項式加算が必要なら、このビエタの和と積の計算機ページを過負荷にせず、別の検索意図とランディングとして扱ってください。
活用例
完全に解かずに宿題の根を確認
二次や三次について学生が主張した根を、与えられた係数からのビエタ比と和・積を比較して検証します。
特性多項式の健全性チェック
モニックな特性多項式から、固有値を計算せずに和(トレース様)と積(行列式様)を読み取ります。
コンテスト・面接用フィクスチャ
自動採点やコーディングチャレンジのオラクル向けに、合成係数ベクトルの和と積の正解値を生成します。
よくある質問
係数はどの順で送ればよいですか?
昇べき:インデックス0が定数項、最後が x^n の最高次係数です。例:x² − 3x + 2 は [2, −3, 1] です。
最高次係数が零の場合は?
ビエタには定義された次数が必要で、最高次係数の零は黙って落とされません。
x² − 3x + 2 の根の和と積はいくつですか?
和は3、積は2です。和は最高次の次の係数の符号を変えて最高次係数で割った値、2次式の積は定数項を最高次係数で割った値になります。
根そのものも計算されますか?
いいえ、計算するのは根の和と積だけです。個々の根を求めずに係数の比から出すので、重根があっても結果がぶれません。
3次方程式の根の検算はどうしますか?
定数項から順に −6、11、−6、1 と係数を入力します。和も積も6になり、予想した根1、2、3の和と積と一致すれば正しいと分かります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/vieta-formulas \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"coefficients":[2,-3,1]}'const res = await fetch("https://api.kit.forhosting.com/algebra/vieta-formulas", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"coefficients": [
2,
-3,
1
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/vieta-formulas",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"coefficients": [
2,
-3,
1
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/vieta-formulas", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"coefficients":[2,-3,1]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"coefficients":[2,-3,1]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/vieta-formulas", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"coefficients": [
2,
-3,
1
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.vieta_formulas",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無料のブラウザツールと有料APIは同じ純関数を共有するため、宿題デモ、コンテスト用フィクスチャ、自動化パイプラインが同一の係数ベクトルで食い違うことはありません。
送る内容と返ってくる内容
形式次数が少なくとも1になるよう要素は2つ以上、安全のため最大1万要素です。最高次係数が零のときは自動で次数を下げるのではなく明示的な検証エラーを返すため、連結でリストを組んだクライアントはバグに気づけます。教科書的な確認:係数 2, −3, 1 は x² − 3x + 2 を表し、根1と2の和は3、積は2;係数 −6, 11, −6, 1 は根1,2,3のモニック三次で、和6、積6です。宿題や素早い健全性確認には無料のブラウザフォームを使い、解答キーや回帰フィクスチャの大量生成が必要なら同じ契約をスクリプトから呼び出してください。必須フィールドは coefficients のみです。昇べきの有限数の JSON 配列で、インデックス0が定数項、最後が最高次係数です。スクリプト向けに coeffs と poly の別名も受け付けます。欠落フィールド、配列以外、空配列、非数値文字列、NaN、Infinity は invalid_input で失敗し課金されません。成功時の JSON は、整形済み係数リスト、整数の次数、最高次係数、定数項、零に等号で結んだ表示用の方程式文字列、数値の sum_of_roots、数値の product_of_roots、UIラベル用に古典的恒等式を再掲する formulas オブジェクト、結果が重複を数えて複素数上であるという短い注記を返します。成功した API 呼び出しの料金は公開の基本額 $0.002 毎件で、検証失敗はプリペイド残高を消費しません。
ビエタの和・積チェックが実務で現れる場面
この機能は純粋な解析エンジンなので、API 料金は成功1件あたり公開基本額 $0.002 で、検証失敗は残高を消費しません。
技術的な質問
根の和と積に関するビエタの公式とは何ですか?
a0 + a1 x + … + an x^n = 0 で an ≠ 0 のとき、重複を数えた n 根の和は −a_{n−1}/an、積は (−1)^n · a0/an です。
個々の根を計算しますか?
いいえ。係数比から sum_of_roots と product_of_roots のみ返します。明示的な二次の根には二次公式ソルバーを使ってください。
料金はいくらですか?
ブラウザツールは無料でローカル実行です。API は成功1件あたり $0.002 のプリペイド KIT 残高を使い、無効入力は課金されません。