二次不等式のグラフ
3つの係数と不等号を入力すると、どこを塗ればよいかが分かります。x² − 5x + 6 ≤ 0なら解の境界は2と3、放物線は上に開き、答えは[2, 3]です。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A
- 1
- B
- -5
- C
- 6
- 符号
- <=
- 不等式
- 1x^2 - 5x + 6 <= 0
- 判別式
- 1
- 放物線
- opens_up
- 根
- 2, 3
二次不等式のグラフ化は、代数の学習者がつまずきやすいポイントです。根を求めるのは易しい半分で、どちら側を塗るか決めるのが難しい半分です。この機能は ax²+bx+c の三つの係数と不等号を受け取り、判別式、存在する場合の境界根、放物線が上に開くか下に開くか、そして解の領域を区間記法と平易な塗り方の説明文の両方で返します。二つの異なる根、重根、x軸に全く触れない放物線のすべての場合を決定論的に処理します。
係数からグラフまで一回の呼び出しで
x²−5x+6 ≤ 0 のような二次不等式は、式を成り立たせるすべての x を求めるもので、答えを正直に示すにはグラフが最適です。放物線を描き、x軸との交点を印して、符号を満たす領域を塗る。手作業では判別式の計算、根の求解、放物線の向きの判定、境界のどちら側が解に属するかの推論が必要です。
a、b、c と四つの符号(<、<=、>、>=)のいずれかを送れば、左から右へ並んだ境界根、放物線が上向きか下向きか、そして二つの表現で塗り方を示す領域オブジェクトが返ります。一つは [-1, 4] や (-∞, 2) ∪ (3, +∞) のような簡潔な区間記法、もう一つは学生にそのまま読み聞かせられる文章です。
入力は三つの数と符号だけなので、処理はマイクロ秒で完了し、結果はバイト単位で完全に再現されます。
境界ケースの扱い方
この分野の誤りの多くは境界から生じるため、ソルバーは境界を明示的に処理します。判別式が正なら二つの異なる根があり、答えは符号と放物線の向きに応じて、根の間の区間か外側の二つの領域の和集合になります。a が負のときはロジックを自動で反転させますが、これはまさに手計算で間違えやすい箇所です。
判別式がゼロなら放物線は重根で軸に接するだけで、答えは単一の閉じた点、全直線、一つの開いた点を除く全直線、空集合のいずれかになり、四つの結果はすべて区別して報告されます。判別式が負なら曲線は軸と交わらず、解は全実数か空集合のどちらかです。
狭義の符号は常に開いた端点と破線の境界曲線を生じ、等号付きの符号は閉じた端点と実線の曲線を生じ、その旨が説明文に明記されます。
宿題ツール、個別指導、コンテンツ生成での活用
出力は読むだけでなくソフトウェアで利用できるよう設計されています。根の配列は x 切片を昇順で返すため、キャンバスの描画処理が境界点をそのまま配置できます。区間の文字列と説明文は、表示とアクセシビリティをそれぞれ担います。
宿題チェッカーは学生の塗った図を区間と照合でき、個別指導アプリは説明文を読み上げられ、コンテンツパイプラインは係数を変えて何百もの一貫した解答例を生成できます。別実装によるずれはありません。
活用例
宿題チェッカーの強化
学生の区間の答えを計算された解の領域と照合し、開いた端点と閉じた端点を正しく判定します。
個別指導アプリでのグラフ描画
順序付きの根と塗り方の語彙を使い、数学を再導出せずにキャンバス上に放物線の境界と塗りつぶし帯を描画します。
解答例の大量生成
係数の組を順に変えて、根・判別式・領域を一つのオブジェクトに収めた一貫した決定論的解答をワークシート向けに生成します。
よくある質問
どのような入力が必要ですか?
三つの係数 a、b、c(有限の数値で a は非ゼロ)と、<、<=、>、>= のいずれかの符号です。
放物線に実数根がない場合は?
判別式が負であると報告され、領域は符号と放物線の向きに応じて全実数か空集合のいずれかになります。
狭義の符号と等号付きの符号はどう区別されますか?
狭義の符号(< と >)は開いた端点と破線の境界を、等号付きの符号(<= と >=)は閉じた端点と実線の境界を生じます。どちらが適用されるかは説明文に記載されます。
結果は決定論的ですか?
はい。 安定した丸めを伴う純粋な算術演算のみで、乱数も時計も使わないため、同一の入力には常にバイト単位で同一の出力が返ります。
判別式がゼロのときはどうなりますか?
放物線は重解の1点でだけ軸に接します。不等号によって、答えはその1点だけ、すべての実数、その1点を除くすべての実数、解なしのいずれかになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/graphing-quadratic-inequalities \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1,"b":-5,"c":6,"sign":"<="}'const res = await fetch("https://api.kit.forhosting.com/math/graphing-quadratic-inequalities", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1,
"b": -5,
"c": 6,
"sign": "<="
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/graphing-quadratic-inequalities",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1,
"b": -5,
"c": 6,
"sign": "<="
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/graphing-quadratic-inequalities", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1,"b":-5,"c":6,"sign":"<="}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1,"b":-5,"c":6,"sign":"<="}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/graphing-quadratic-inequalities", 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": 6,
"sign": "<="
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.graphing_quadratic_inequalities",
"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 経由では $0.002 でご利用いただけます。
係数からグラフまで一回の呼び出しで
このエンドポイントはその全工程を代行します。
宿題ツール、個別指導、コンテンツ生成での活用
塗り方のフィールドは限られた固定語彙(between_roots、outside_roots、single_point、all_except_root、all_real、no_solution)のいずれかなので、UI はテキストを解析せずに切り替えられます。
技術的な質問
料金はいくらですか?
API 経由で1回の呼び出しにつき $0.002 です。このページのブラウザ上では無料で実行できます。ウィジェットは同じコードを実行しています。
なぜ a = 0 は拒否されるのですか?
a = 0 では式は二次ではなく一次になるからです。代わりに一次不等式ソルバーで解いてください。この機能は問題を黙って変えるのではなくエラーを返します。