三次方程式の判別式計算と実数解の分類
x³ − 6x² + 11x − 6の判別式は4なので、異なる3つの実数解をもちます。4つの係数を入力すると、判別式とその符号、異なる実数解の個数が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 1
- B
- -6
- C
- 11
- D
- -6
- 判別式
- 4
- 符号
- positive
- 分類
- three_distinct_real_roots
- 異なる実数解
- 3
三次式の判別式は、4 つの係数を 1 つの値にまとめ、個々の解を求めなくても実数解の構成を明らかにします。a が 0 ではない ax³ + bx² + cx + d の係数を入力すると、判別式の値と符号、分かりやすい分類、異なる実数解の個数を返します。3 つの異なる実数解、1 つの実数解と複素共役な 2 解、重解、特別な三重解を区別します。
三次式の判別式から分かること
実係数の三次多項式 ax³ + bx² + cx + d の判別式は、18abcd − 4b³d + b²c² − 4ac³ − 27a²d² です。その符号から、グラフと横軸の交わり方が分かります。判別式が正なら、異なる実数解が 3 つあり、グラフは横軸と 3 回交わります。
負なら、実数解がちょうど 1 つあり、残りの 2 解は実数ではない複素共役の組です。0 なら、少なくとも 2 つの解が一致します。この場合は係数に関する追加の恒等式を確認し、1 つの三重実数解と、一方が重複度 2 である 2 つの異なる実数解を区別します。
重複度を数えて三次式に 3 解があるという説明と、異なる実数値が何個あるかという説明は同じではありません。解そのものの近似値は求めず、判別式による迅速な構造判定に特化しています。
係数の入力方法と結果の読み方
a、b、c、d は ax³ + bx² + cx + d に現れる順序で指定してください。存在しない項を表す 0 も含め、すべて必須です。先頭係数 a を 0 にすると二次以下の式になるため、0 は指定できません。
成功時には discriminant に数値が入り、sign は positive、negative、zero のいずれかになります。正なら 3、負なら 1、0 なら 1 または 2 です。返される式によって採用した規約が明確になり、教科書によって逆の符号で示されることがあるカルダノの減次三次式の量との混同を防げます。
有効な有限数だけを含む数値文字列も受け付けます。
精度、重解、実務での利用
重解の判定は数値的に繊細です。理論上 0 になる判別式でも、複数回の積と和の後にごく小さな浮動小数点の残差が生じることがあります。本アルゴリズムは、その残差を判別式の 5 項の大きさに合わせた許容値と比較します。
通常の丸め誤差を真の正値や負値と誤判定せず、同一入力には常に同じ結果を返します。代数問題の確認、変曲の挙動の分析、特性多項式の検査、次に使う求解法の選択にご利用ください。正なら 3 実根用の方法、負なら完全解に複素数演算が必要です。
0 は重複度により一般的な数値計算が不安定になり得ることを示します。本機能は分類器であり、記号因数分解や完全な三次方程式求解は行いません。
活用例
代数問題を確認する
因数分解やカルダノ法で三次式を解く前に、判別式と異なる実数解の個数を確認できます。
数値処理を振り分ける
高コストな計算の前に、符号から実数専用または複素数対応の求解器を選択できます。
重複固有値を検出する
判別式が 0 で少なくとも 1 つの重解を持つ三次特性多項式を検出できます。
よくある質問
どの式で計算しますか?
ax³ + bx² + cx + d に対して Δ = 18abcd − 4b³d + b²c² − 4ac³ − 27a²d² を使用します。
判別式が負とは何を意味しますか?
三次式には実数解が 1 つと、実数ではない複素共役な 2 解があります。
判別式が 0 とは何を意味しますか?
少なくとも 2 解が一致します。また、三重解と、二重解に別の実数解が伴う場合を区別します。
解の値も返しますか?
いいえ。 判別式と解の構成を返します。値が必要な場合は三次方程式求解器をご利用ください。
x³ − xのように項が欠けた式はどう入力しますか?
欠けている項には0を入れます。x³ − xなら1、0、−1、0と入力します。4つの係数はすべて必要で、最初の係数を0にすると三次式ではなくなるため使えません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/cubic-discriminant \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1,"b":-6,"c":11,"d":-6}'const res = await fetch("https://api.kit.forhosting.com/algebra/cubic-discriminant", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1,
"b": -6,
"c": 11,
"d": -6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/cubic-discriminant",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1,
"b": -6,
"c": 11,
"d": -6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/cubic-discriminant", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1,"b":-6,"c":11,"d":-6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1,"b":-6,"c":11,"d":-6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/cubic-discriminant", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 1,
"b": -6,
"c": 11,
"d": -6
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.cubic_discriminant",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs_coefficient | 1000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
計算は決定的で、ブラウザーと API のどちらからでも利用できます。
三次式の判別式から分かること
そのため、応答には説明的な分類と distinct_real_roots の明示的な個数を含めます。
係数の入力方法と結果の読み方
たとえば x³ − x は a = 1、b = 0、c = −1、d = 0 と入力します。classification は解の構成を示し、distinct_real_roots は異なる実数解の数を示します。
精度、重解、実務での利用
中間計算を有限に保つため係数に上限を設け、結果を安定した JSON 数値に正規化しています。ブラウザーでは無料で、成功した API リクエストには 1 項目あたり公開基本価格 $0.002 が適用されます。
技術的な質問
判別式が正とは何を意味しますか。
三次式には異なる実数解が 3 つあります。
API 計算の料金はいくらですか。
成功した API リクエストには 1 項目あたり公開基本価格 $0.002 が適用され、ブラウザー版は無料です。