絶対値方程式ソルバー
|2x − 4| = 10 のような絶対値方程式は小さく見えますが、分岐を隠しています。バーの内側の式は正にも負にもなるため、1つの方程式は実際には2つの一次方程式が変装したものです。この絶対値方程式ソルバーは |ax + b| = c の3つの係数 a、b、c を受け取り、すべての実数解を返します。重要な4つの場合、つまり解が2つ、ちょうど1つ、c が負のときは解なし、a がゼロで |b| が c に等しいときは無限個、を区別します。近似法を使わない決定的な処理ですので、ブラウザでテストする答えは API が返す答えとまったく同じです。
無料で実行
1つの方程式が2つになる理由
数の絶対値はゼロからの距離です。ですから |ax + b| = c と言うことは、実際には ax + b という量がゼロからちょうど c 単位離れているという意味です。c が正のとき、それは2か所で起こります。ax + b = c または ax + b = −c です。それぞれの枝は通常の一次方程式で、x を分離して解くと、片側では x = (−b + c)/a、もう片側では x = (−b − c)/a となります。この絶対値方程式ソルバーはまさにこの分割を実行し、2つの根を昇順に並べ替えるため、出力は安定しており、教科書の答えと比較しやすくなっています。|2x − 4| = 10 を例に取ると、枝は 2x − 4 = 10 と 2x − 4 = −10 で、x = 7 と x = −3 が得られます。両方が返され、それぞれを元の式に代入して検算できます。これは代数の授業で教わるのと同じ手順ですが、符号のミスなく実行されます。学生に最も多い間違いは負の枝を完全に忘れることで、解集合の半分を失います。分割を自動化すれば、この種の誤りはすべて取り除けます。
エッジケース:解が1つ、なし、または無限個
すべての絶対値方程式に2つの答えがあるわけではなく、常に2つの根を返すソルバーは危険なほど頻繁に間違えます。c がゼロに等しいとき、2つの枝は ax + b = 0 という1つの方程式に収束し、x = −b/a にちょうど1つの解があります。|x + 3| = 0 を満たすのは x = −3 だけです。c が負のとき、見つけるものは何もありません。絶対値は距離であり、距離は負になれないため、|3x + 1| = −2 には実数解がなく、ソルバーは数値をでっち上げるのではなく空のリストでそれを伝えます。最も厄介な場合は a = 0 で、x が方程式から完全に消えます。|b| がたまたま c に等しければ、すべての実数が解となり、ソルバーは無限個あると報告します。そうでなければ、方程式は |5| = 3 のような矛盾であり、呼び出しは無効な入力として拒否されます。x を含められない係数の組は、解ける問題ではなくモデル化の誤りだからです。これら4つの場合を明示的に扱うことが、正しいソルバーと二次方程式の公式式の推測を分けるポイントです。
API の使い方と出力の解釈
a、b、c の3つの数値を送信すると、再構成された方程式、エコーされた係数、そして解集合が返されます。solutions フィールドは小数点以下10桁に丸められた実数のリストで、マシン間でバイト単位で同一の結果となり、テストでのスナップショット比較に安全です。solution_count は要素を数えなくても解の個数を教えてくれます。解集合が空の場合でも、空のリストを伴う成功レスポンスが返ります。「実数解なし」はエラーではなく、有効な数学的答えだからです。a がゼロで |b| が c に等しい場合、レスポンスはリストの代わりに infinite_solutions を持ちます。拒否されるのは本当に不正なリクエストだけです。係数の欠落や非数値、Infinity のような非有限値、前述の矛盾した a = 0 の場合などです。このケイパビリティはエッジ上で何も保存せずに実行され、このページの無料ウィジェットも同じコードで動いています。手作業でプロトタイプを作り、パイプラインに組み込んだときだけ1回 $0.002 をお支払いいただく形です。典型的な統合は、学生の回答を採点するチュータリングバックエンド、記号的前処理器、生成された問題セットの検証です。
活用例
宿題の答えを自動採点する
チュータリングアプリが生成された各問題の a、b、c を送信し、学生の答えを正確な解集合と比較します。
生成された問題セットを検証する
コンテンツパイプラインが、偶然にも実数解を持たない、または退化した a = 0 の生成された |ax+b|=c 項目を、学生に届く前に排除します。
工学の公差問題を解く
|x − 目標値| = 公差 のような方程式は校正や機械加工に現れます。境界値を係数から直接取得できます。
よくある質問
料金はいくらですか?
API 経由で1リクエストあたり $0.002 です。このページでブラウザから無料で実行することもできます。
どの形式の方程式を受け付けますか?
正確に |ax + b| = c の形式で、3つの数値係数 a、b、c として与えます。他の形式は先にこの形に変形してください。
c が負の場合はどうなりますか?
呼び出しは成功し、空の解リストが返ります。絶対値は負の数に等しくなれないため、実数解は存在しません。
a がゼロの場合はどうなりますか?
|b| が c に等しければ、すべての実数が解となり、レスポンスは無限個あると報告します。そうでなければ係数は矛盾しており、リクエストは無効な入力として拒否されます。
結果は正確ですか?
はい。解法は反復近似のない直接的な代数変形です。根が小数点以下10桁に丸められるのは、すべてのマシンで結果を同一にするためだけです。
送信したものは保存されますか?
いいえ。3つの係数はメモリ内で処理され破棄されます。返されるのは解集合だけです。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/absolute-value-equation \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":2,"b":-4,"c":10}'const res = await fetch("https://api.kit.forhosting.com/math/absolute-value-equation", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 2,
"b": -4,
"c": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/absolute-value-equation",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 2,
"b": -4,
"c": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/absolute-value-equation", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":2,"b":-4,"c":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":2,"b":-4,"c":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/absolute-value-equation", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 2,
"b": -4,
"c": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.absolute_value_equation",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |