ガウス・ジョルダン消去法で連立一次方程式を解く | RREF・解ベクトル表示
2x+y−zが8に等しいという式から始まる連立方程式は、(x, y, z) = (2, 3, −1)と解けます。各式を数の並びとして入力すると、解が一つか、無数にあるか、ないかも分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
このガウス・ジョルダン消去法の計算ツールは、拡大係数行列から直接、連立一次方程式を解きます。1行につき1つの方程式を入力し、最後の要素を右辺の値とすると、エンジンが部分ピボット選択を用いて行列を簡約行階段形(RREF)まで変形し、最終列から解を読み取ります。応答には完全な RREF、方程式が一意解を持つか、無限に多くの解を持つか、あるいは解を持たないかを示す status タグ、そして一意解の場合には解ベクトルそのものが含まれます。行の長さが不揃いな配列は明確に定義された方程式系ではないため、直ちに拒否されます。すべて決定論的な浮動小数点演算で、ネットワーク呼び出しも乱数も日付依存の動作もないため、同じ入力は常に同じ出力を返します。
ガウス・ジョルダン消去法が行うことと応答に含まれる内容
ガウス・ジョルダン消去法は行変形の完全な形です。連立一次方程式の拡大行列 [A|b] から出発し、係数ブロックが簡約行階段形になるまで基本的な行操作を適用します。つまり、すべての先頭要素が 1 になり、各ピボットがその列で唯一の非ゼロ要素になり、各ピボットが一つ上の行のピボットよりも厳密に右側に位置する形です。
この段階に達すると方程式系は自然に解けます。各ピボット行は単に一つの未知数の値を示し、最後の列には定数が収まるからです。この計算ツールはまさにこの処理を、数値安定性のために部分ピボット選択を用いて実行します。
各係数列について、現在の行より下で絶対値が最大の要素を選び、所定の位置に行を入れ替え、ピボットが 1 になるように行をスケーリングし、その列を上下の他のすべての行から消去します。エンジンが根拠のない答えをでっち上げることは決してありません。矛盾した系や不定な系は、偽のベクトルに押し込めるのではなく、その status とともに正直に報告されます。
拡大行列の書き方と、答えが再現可能であり続けるしくみ
各行は一つの方程式を表し、未知数の係数を順番に並べ、最後の要素として右辺を続けます。したがって m 個の方程式と n 個の未知数からなる系は m×(n+1) の配列になります。すべての行は同じ長さで、少なくとも 2 列必要です。
不揃いな配列は連立一次方程式を定義しないからです。系は正方である必要はありません。先頭のプラス符号を任意で含む数値文字列や科学的記数法は、有限の十進数として解釈できる場合に受け付けられます。
埋め込まれた空白、16 進数の接頭辞、非数値トークンは明確なメッセージとともに拒否されます。
三つの結果の読み方とこのツールの位置づけ
係数ブロックの階数が未知数の個数と等しく、矛盾する行が存在しない場合、status は unique となり、solution 配列が RREF の最終列から直接読み取られたすべての未知数の値を順番に返します。これは回路方程式、補間問題、小規模な平衡モデルに対する教科書どおりのケースです。
消去によって係数がすべてゼロで定数項だけが非ゼロの行が生じた場合、status は inconsistent となり解は返されません。これは、測定データが厳密なモデルを満たせるかを確認する際にまさに必要な信号です。
学生は試験前に手計算を検証するために三つのすべてのケースを使い、教師は不透明な電卓アプリを信用せずに解答を事前生成し、開発者は自作ソルバー向けの決定論的なテストベクトルを用意し、アナリストは時間的制約の下でコンピュータ代数システムを使わずに小規模な密行列の系をオフラインで健全性チェックします。このページでは計算はすべてブラウザ内で無料で実行されます。
活用例
宿題と試験前の確認
教科書の方程式系を拡大行列から解き、RREF を自分の手計算による行変形と比較し、試験前に unique、infinite、inconsistent のいずれの status かを確認できます。
決定論的なソルバー用フィクスチャ
再現可能な RREF 行列、解ベクトル、status タグを生成し、自作の数値計算コードの単体テストや CI のアサーションに活用できます。
個別指導と教育用 UI
ユーザーが入力した方程式系を RREF に正規化することで、束縛変数と自由変数の区別や矛盾する行を学習者にとって一目瞭然にします。
よくある質問
ガウス・ジョルダン消去法の計算ツールの料金はいくらですか?
このページ上ではブラウザで無料でご利用いただけます。無効な入力には課金されません。
入力行列はどのように書式化すればよいですか?
1行につき1つの方程式です。未知数の係数を順番に並べ、最後の要素として右辺を記します。m 個の方程式と n 個の未知数からなる系は m×(n+1) の配列で、すべての行が同じ長さである必要があります。
行の要素数が間違っている場合はどうなりますか?
不揃いな行は有効な方程式系を定義しないため、決して解かれません。
status の値 unique、infinite、inconsistent は何を意味しますか?
unique は解がちょうど一つ存在し、それが solution に返されることを意味します。inconsistent は矛盾する行(係数がゼロで定数項が非ゼロ)があり、解が存在しないことを意味します。
解が無数にある場合はどう表示されますか?
解が一つに決まらないときはその旨を示し、自由に値を選べる変数の番号を一覧で返します。無理に一つの解をこしらえることはないので、手計算の結果と安心して見比べられます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/gauss-jordan-elimination \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[2,1,-1,8],[-3,-1,2,-11],[-2,1,2,-3]]}'const res = await fetch("https://api.kit.forhosting.com/math/gauss-jordan-elimination", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
2,
1,
-1,
8
],
[
-3,
-1,
2,
-11
],
[
-2,
1,
2,
-3
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/gauss-jordan-elimination",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
2,
1,
-1,
8
],
[
-3,
-1,
2,
-11
],
[
-2,
1,
2,
-3
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/gauss-jordan-elimination", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[2,1,-1,8],[-3,-1,2,-11],[-2,1,2,-3]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[2,1,-1,8],[-3,-1,2,-11],[-2,1,2,-3]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/gauss-jordan-elimination", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"matrix": [
[
2,
1,
-1,
8
],
[
-3,
-1,
2,
-11
],
[
-2,
1,
2,
-3
]
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.gauss_jordan_elimination",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_rows | 50 |
max_cols | 51 |
max_abs_entry | 1000000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
宿題や授業にはブラウザで無料でお使いいただけるほか、スクリプト、家庭教師ソフトウェア、CI のフィクスチャ内で再現可能な連立一次方程式の結果を得るために、成功したリクエストにつき $0.002 で API を呼び出すこともできます。
ガウス・ジョルダン消去法が行うことと応答に含まれる内容
応答には、要求された精度に丸められた拡大行列全体の RREF、元の行列のエコー、unique、infinite、inconsistent のいずれかを取る status フィールド、status が unique の場合の解ベクトル、status が infinite の場合の自由変数のインデックス一覧、ゼロ始まりのピボットペアと構造化された pivot_positions、係数ブロックの rank、方程式と未知数の個数、method タグ gauss_jordan_elimination、使用された precision、短い公式のリマインダー、そしてサポートされる最大次元数が含まれます。拒否される入力には、matrix の欠落、配列でない行、先頭行と長さの異なる行、有限でない要素、文書化された上限を超える絶対値が含まれ、これらはすべて課金なしで invalid_input として報告されます。
拡大行列の書き方と、答えが再現可能であり続けるしくみ
入力フィールドは matrix で、有限な数値の行からなる入れ子の配列です。いずれかの行が先頭行より短いか長い場合、行番号と期待される要素数および実際の要素数を示す invalid_input ですぐにリクエストが失敗します。方程式が未知数より多い過剰決定系も、方程式が少ない不定系もどちらも有効な入力で、status フィールドが解集合がどうなったかを教えてくれます。スプレッドシート、クエリ文字列、入力フォームが同じ契約を再利用できるよう、a、A、mat、augmented というエイリアスも受け付けます。計算は部分ピボット選択を伴う純粋な倍精度演算で、絶対値がピボットのイプシロンを下回る要素は負のゼロと同様に厳密なゼロに丸められるため、受け取る JSON はクリーンでバイト単位でも安定しています。
三つの結果の読み方とこのツールの位置づけ
status フィールドは応答の核心であり、連立一次方程式の古典的な三つの場合を反映しています。系が矛盾しないものの、ある列がついにピボットを得られない場合、status は infinite となり、free_variables 配列が自由に選べる未知数のゼロ始まりのインデックスを列挙します。これにより、家庭教師や UI は解集合が点ではなく直線、平面、あるいはより高次元の平坦集合であることを説明できます。API 経由では成功したリクエストごとに $0.002 がかかり、バリデーション失敗時は課金されず、応答が返った後は何も保存されません。この切り分けは KIT の tier-A カタログの他の部分と一致しているため、数学的な結果を変えることなく、対話的な授業のデモから自動化された採点・検証パイプラインへ移行でき、ワークフローが関連する線形代数のステップを必要とする場合には、行列の逆行列、行列式、階数の計算ツールと組み合わせられます。
技術的な質問
方程式系は正方でなければなりませんか?
いいえ。過剰決定系も不定系も受け付けられ、status フィールドが解集合がどうなったかを報告します。強制されるのは行長の一貫性と文書化されたサイズ上限のみです。