消去法で連立一次方程式を解く
2x + 3y = 7と4x − 5y = 1の解は、x ≈ 1.7272727273、y ≈ 1.1818181818です。2つの一次方程式の6つの係数を入力すると、消去法の各手順を言葉で説明した解答が得られます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- A11
- 2
- A12
- 3
- A21
- 4
- A22
- -5
- B1
- 7
- B2
- 1
- X
- 1.7272727273
- Y
- 1.1818181818
6 つの係数を送信すると、x と y の解と消去の各手順が返されるため、結果は単なる答えではなく、途中式のある解答になります。一意解のない系は、誤解を招く数値を返さず、正直にエラーとして報告されます。
消去法のしくみ
二元一次連立方程式は 2 本の直線を表し、それを解くとは、2 直線が交わる唯一の点を見つけることです。消去法は、2 つの方程式を組み合わせて一方の変数を消すことでその点に到達します。最初の方程式を x の係数の比で倍して 2 番目の方程式から引くと、y だけの一変数方程式が残ります。
それを解けば y が得られ、y を元のどちらかの方程式に代入すれば x が得られます。計算は完全に決定的なので、同じ係数からは常に同じ答えが得られます。そのため、実行ごとにずれる近似ではなく再現可能な結果を必要とする宿題チェッカー、個別指導ツール、検証パイプラインに安心して組み込めます。
答えだけでなく手順も
最終答えの確認は誰にでもできますが、学習にも監査にも途中の過程が必要です。x と y に加えて、応答には消去の経緯を平易な言葉で記した steps 配列が含まれます。与えられた系、先頭の x 係数が 0 の場合に必要な行の入れ替え、x を消去するために使った倍率、一変数に約された方程式、そして x を復元する後退代入です。
各手順は実際の算術から生成され、入力への定型文の当てはめではないため、説明文は常に数値と一致します。応答は両方の方程式を正規化した形でも返すため、呼び出し側は解を信頼する前に、係数が意図した順序で解釈されたことを確認できます。
一意解がない場合
どの方程式の組も 1 点で交わるわけではありません。2 直線が平行なら解は存在せず、同じ直線を二度書いたものなら解は無限にあります。両方の場合に共通する特徴は、係数行列の行列式 a11·a22 − a12·a21 が 0 になることです。
個別指導アプリは従属系・不能系の適切な説明に分岐でき、パイプラインは意味のない数値をレポートに流す代わりに即座に失敗できます。無効な呼び出しは課金されないため、境界ケースの試行に費用はかかりません。
活用例
宿題・個別指導ツール
消去の各手順を含む完全な解答を返し、学生が答えだけでなく手順を見られるようにします。
解答キーと自動採点
決定的な参照解と中間手順を生成し、学生の作業と比較できるようにします。
よくある質問
どんな入力が必要ですか?
6 つの数値です。 第 1 式 a11·x + a12·y = b1 に a11、a12、b1、第 2 式に a21、a22、b2 を指定します。
途中経過は表示されますか?
はい。 応答には、各消去操作、y について約された方程式、x の後退代入を記述する steps 配列が含まれます。
結果は決定的ですか?
はい。 同じ 6 つの係数からは、乱数・時計・ネットワークなしで、常にバイト単位で同一の出力が得られます。
どの方式の消去法が使われますか?
行の倍率変換と減算です。最初の方程式を x 係数の比で倍し、2 番目から引いて y を解き、後退代入します。先頭の x 係数が 0 の場合、行は自動的に入れ替わります。
解が1つに決まらない連立方程式はどうなりますか?
係数の行列式が0になる場合で、2本の直線が平行で交わらないか、同じ直線を2回書いたかのどちらかです。誤解を招く数値は返さず、解が1つに決まらないことをはっきり知らせます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/elimination-method \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a11":2,"a12":3,"a21":4,"a22":-5,"b1":7,"b2":1}'const res = await fetch("https://api.kit.forhosting.com/math/elimination-method", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a11": 2,
"a12": 3,
"a21": 4,
"a22": -5,
"b1": 7,
"b2": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/elimination-method",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a11": 2,
"a12": 3,
"a21": 4,
"a22": -5,
"b1": 7,
"b2": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/elimination-method", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a11":2,"a12":3,"a21":4,"a22":-5,"b1":7,"b2":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a11":2,"a12":3,"a21":4,"a22":-5,"b1":7,"b2":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/elimination-method", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a11": 2,
"a12": 3,
"a21": 4,
"a22": -5,
"b1": 7,
"b2": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.elimination_method",
"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 は、二変数の二元一次連立方程式(a11·x + a12·y = b1 と a21·x + a22·y = b2)を、一方の変数を消去し、後退代入でもう一方を求めることで解きます。
消去法のしくみ
このエンドポイントは、ご入力いただいた 6 つの係数(第 1 式に a11、a12、b1、第 2 式に a21、a22、b2)に対してまさにこの手順を実行し、解を JSON として返します。
答えだけでなく手順も
教育ソフトウェアにとっては、1 回の API 呼び出しで完全な解答例を表示できることを意味し、自動採点にとっては、最終値だけでなく学生の途中の作業を参照手順と比較できることを意味します。
一意解がない場合
このエンドポイントはまずその行列式を計算し、0 になる場合は、0 で割って無限大や NaN を返すのではなく、一意解がないことを明確に告げる invalid_input エラーで要求を拒否します。この動作は下流で重要です。同じコードはこのページのブラウザ上で無料で実行でき、自動化する場合の API 料金は 1 要求 $0.002 です。
連携の活用例
パイプラインの入力検証
NaN を黙って返すのではなく、明確な invalid_input エラーで特異系・従属系を事前に検出します。
技術的な質問
料金はいくらですか?
1 要求 $0.002 です。このページのブラウザ上でも無料で実行でき、検証に失敗した呼び出しは課金されません。
一意解がない系の場合はどうなりますか?
系が特異または従属であることを説明する invalid_input エラーで拒否されます。x や y の値は返されません。