置換で解く二次形式方程式
この計算ツールは、ある式をuと置くことで通常の二次方程式になる問題を解きます。3つの係数を入力し、uがxの2乗を表すのか、xの主平方根を表すのかを選択してください。置換後の根を求め、必要な定義域の条件を適用してから元の変数へ戻し、xの実数解をすべて表示します。判別式と簡潔な計算手順も示すため、課題の確認、例題の作成、代数的な解法の検証にご利用いただけます。
無料で実行
別の式に隠れた二次方程式を見分けます
同じ式が1乗と2乗の形で現れる方程式は、置換によって二次形式として扱えます。たとえば、xの4乗から5x²を引いて4を足した式が0になる複二次方程式には、x²と、その2乗であるx⁴が含まれています。u = x²と置けば、u² − 5u + 4 = 0という通常の二次方程式になります。根号を含む場合も同様です。xと√xが同時に現れるとき、xは√xの2乗なので、u = √xと置くことで二次方程式に変換できます。このツールには、変換後のau² + bu + c = 0に対応するa、b、cを入力してください。元の式に合う置換を選ぶことが重要です。二次方程式の計算と、定義域の確認、逆置換を分けて考えることで、解の見落としや不適切な解の追加を防ぎやすくなります。
uについて解いた後で定義域を適用します
置換後、判別式b² − 4acを計算します。判別式が負なら実数のuはなく、対応する実数のxもありません。0なら重解が1つ、正なら候補が2つ得られます。ただし、候補がすべて有効とは限りません。対応している2種類の置換では、どちらもu ≥ 0でなければなりません。実数の2乗は負にならず、主平方根も負にならないためです。そこで、二次方程式から得た根をu_solutionsにすべて示し、定義域を満たす根だけをadmissible_u_solutionsに分けて表示します。除外された候補も確認できます。また、係数の大きさが大きく異なる場合の桁落ちを抑えるため、数値的に安定した二次方程式の解法を使用します。係数は有限の実数である必要があり、aが0なら変換後の式は二次ではなく一次になるため指定できません。
解を失わずに元の変数へ戻します
逆置換の方法はuの意味によって異なります。u = x²の場合、正のuからは正と負の平方根という2つの実数解が得られます。u = 0ならx = 0だけであり、同じ解を2回数えることはありません。そのため、置換後の二次方程式の根が最大2つでも、元の4次方程式には4個、2個、1個、または0個の異なる実数解があり得ます。u = √xの場合は、√x = uを解くとx = u²です。根号は非負の主平方根を表すため、有効なuごとにxは1つだけ得られます。ツールは最終値を並べ替え、重複を除き、solution_countも返します。利用前に、選んだ置換が元の式の構造と一致するかご確認ください。自由形式の数式を解析したり、入力した式から係数を推定したりはしません。自動処理では1回あたり$0.002で同じ決定的な結果を取得できます。
活用例
複二次方程式を解く
x²をuに置き換え、得られた二次方程式を解いて、必要に応じて正負両方のxの実数解を求めます。
根号について二次となる式を扱う
主平方根をuとし、負のuを除外して、有効な値を2乗することでxを求めます。
学習用の解答を確認する
判別式、uの全候補、定義域を満たす候補、並べ替えた最終解を手計算の結果と比較できます。
よくある質問
どの方程式を入力すればよいですか?
変換後の方程式au² + bu + c = 0のa、b、cを入力し、uで置き換える式を選択してください。
複素数解も表示されますか?
いいえ、実数解のみを表示します。判別式が負の場合、実数解の一覧は空になります。
uの解が除外されるのはなぜですか?
実数xに対してx²とxの主平方根はどちらも非負なので、負のuは対応するいずれの形にも戻せません。
x²で正のuから2つの答えが出るのはなぜですか?
x²が正なら、その正の平方根と負の平方根の両方が方程式を満たすためです。
uが√xのとき答えが1つなのはなぜですか?
主平方根は非負であり、有効なuを2乗すると対応する値x = u²が1つだけ得られるためです。
APIリクエストの料金はいくらですか?
APIは1回あたり$0.002です。同じ決定的な計算をブラウザーでは無料で実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/quadratic-in-form \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1,"b":-5,"c":4,"substitution":"x_squared"}'const res = await fetch("https://api.kit.forhosting.com/algebra/quadratic-in-form", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1,
"b": -5,
"c": 4,
"substitution": "x_squared"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/quadratic-in-form",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1,
"b": -5,
"c": 4,
"substitution": "x_squared"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/quadratic-in-form", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1,"b":-5,"c":4,"substitution":"x_squared"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1,"b":-5,"c":4,"substitution":"x_squared"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/quadratic-in-form", 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": -5,
"c": 4,
"substitution": "x_squared"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.quadratic_in_form",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |