余因子展開の計算
選んだ行または列に沿って行列式を余因子展開し、すべての項を確認できます。3×3の例では1行目の寄与が4、5、−60で、合計は−51です。どの行や列が計算を短くするかも比べられ、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
余因子展開(ラプラス展開)は、行列式の古典的な再帰的定義です。任意の行または列を選び、各成分に符号付き小行列式を掛けて合計します。この計算ツールでは、展開する行または列を正確に選べます。ゼロの多い行なら計算はほぼ不要になり、密な行なら長くなるため、これは教育上も重要な違いです。結果として行列式に加え、展開の全内訳を返します。選んだ行・列の各成分、交互符号、対応する小行列から求めた余因子、最終和への寄与のすべてです。正方行列でない行列は明確な検証エラーで拒否されます。行列式は正方行列にのみ定義されるためです。
選んだ行・列に沿った余因子展開の仕組み
ラプラス展開の定理によれば、n×n 行列の行列式は任意の1つの行または列に沿って計算できます。余因子とは、(-1)^(i+j) に、行 i と列 j を取り除いて得られる小行列の行列式を掛けたものです。どの行・列を選んでも結果は同じであり、これはまさに線形代数の授業で学生が検証を求められる定理です。
この機能はその再帰を文字どおり適用します。選ばれた行または列について、各小行列式はより小さい部分行列の先頭行で再び展開して計算し、行列式が単一の成分となる 1×1 の基底ケースまで再帰します。2×2 の場合は閉形式 ad − bc に短絡されます。
出力は中間量をすべて公開します。展開行の各成分、位置の偶奇で決まる交互符号、余因子の値、そして成分×余因子の寄与です。寄与の列を手計算で合計すれば返される行列式を再現できるため、最終値を確認するだけでなく作業の監査にも役立ちます。
再帰のコストは階乗的なため、次元は 10×10 に制限されていますが、授業やコンテストのサイズは完全にカバーされます。
展開する行・列の選択が重要な理由
行列式は展開する行・列にかかわらず不変ですが、手計算の作業量は不変ではありません。ゼロを含む行または列に沿って展開すると、ゼロの成分は余因子がどれほど大きくても何も寄与しないため、項が完全に消えます。
教科書は小行列に触れる前に最も疎な行・列を探すよう教えており、この計算ツールは同じ行列で行展開と列展開を比較できるようにすることで、その戦略を具体的に示します。教師は段階的な解答作成に使います。terms 配列は学生が書き写すべき積の列そのものなので、解答キーは最終値だけでなくすべての余因子を示せます。
学生は自分の間違いを見つけるために使います。手計算がツールと一致しない場合、項ごとの内訳により、全面やり直しではなく特定の1つの小行列に誤りを特定できます。コンテスト環境で小さな行列式ルーチンを検証するプログラマも、余因子経路を LU ベースの実装に対する独立したオラクルとして使えます。
行・列を選ばない単純な行列式、逆行列、固有値、多項式上の記号的小行列が必要な場合は、この余因子展開ページに負荷を集中させず、別のインテントとして扱ってください。
活用例
段階的な宿題の解答
選んだ行または列に沿って det(A) を展開し、すべての成分・符号・余因子・寄与を取得できるため、解答キーは最終値だけでなくラプラス展開の全過程を示せます。
ゼロ行展開戦略の練習
同じ行列の異なる行や列に沿った展開を比較し、最もゼロの多い行・列を選ぶことが手計算を最小化する理由を実演できます。
学生の誤りの特定
手計算が返された行列式と一致しない場合、項ごとの内訳と学生の答案を突き合わせ、間違いが起きた小行列を正確に特定できます。
よくある質問
行や列の選択で行列式は変わりますか?
いいえ。 ラプラスの定理により、どの行または列に沿っても同じ値が保証されます。選択が変えるのは展開に必要な計算量だけです。ゼロの多い行・列ほど計算が楽になるため、この計算ツールでは行・列を選べるようになっています。
行列が正方でない場合はどうなりますか?
行列式は正方行列にのみ定義されます。不揃いの行や行数と列数の不一致は、失敗した行を特定するメッセージとともに拒否されます。
terms 配列には何が含まれますか?
展開行の各位置につき1件のレコードが入ります。行列の成分、1始まりの行と列、位置の偶奇による交互符号、余因子(符号付き小行列式)、そして成分×余因子の寄与です。行列式はすべての寄与の合計です。
行列の最大サイズは?
n ≤ 10 です。 小行列は再帰的に展開されるためコストは階乗的ですが、この上限により無料の解析経路は1ミリ秒未満に保たれます。授業やコンテストのサイズは完全にカバーされます。
料金はいくらですか?
ブラウザツールは無料でローカルで動作します。無効な入力は課金されません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/cofactor-expansion-old \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[2,1,3],[0,4,1],[5,2,1]]}'const res = await fetch("https://api.kit.forhosting.com/math/cofactor-expansion-old", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
2,
1,
3
],
[
0,
4,
1
],
[
5,
2,
1
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/cofactor-expansion-old",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
2,
1,
3
],
[
0,
4,
1
],
[
5,
2,
1
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/cofactor-expansion-old", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[2,1,3],[0,4,1],[5,2,1]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[2,1,3],[0,4,1],[5,2,1]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/cofactor-expansion-old", 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,
3
],
[
0,
4,
1
],
[
5,
2,
1
]
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.cofactor_expansion_old",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
選んだ行・列に沿った余因子展開の仕組み
その行・列の各成分 a_ij に余因子 C_ij を掛けて合計します。すべての演算は決定論的な浮動小数点コードで、乱数シード、壁時計タイムスタンプ、ネットワーク呼び出しを使わないため、同一の入力は常にバイト単位で同一の JSON を生成します。
送信内容と返却内容
すべての行は同じ長さでなければならず、その長さは行数と一致して正方行列である必要があります。ゼロの成分も contribution 0 で terms 配列に現れるため、展開は完全に監査可能です。簡単な確認には無料のブラウザフォームを使い、大量の解答キーにはスクリプトから同一の契約を呼び出してください。必須フィールドは matrix の1つです。有限数の行からなるネストした JSON 配列、または同じネスト配列をエンコードした JSON 文字列を送ります。2×3 の格子は invalid_input で即座に失敗し、問題の行を特定するメッセージが返ります。2つの任意フィールドが展開を制御します。axis(別名 along)は row または col を受け付け、デフォルトは row です。index(別名 line)は展開する行または列の1始まりの位置で、デフォルトは1、1から n までの整数でなければなりません。matrix の欠落、配列でない形状、不揃いの行、非数値セル、NaN、Infinity、空の格子、10を超える次元、不明な axis、範囲外の index はすべて invalid_input で失敗し、課金されません。成功時のレスポンスには、12 significant digits(有効数字12桁)で安定丸めされた整形済み行列、整数の次元 n、解決された axis と index、数値の行列式、abs_determinant、−1・0・+1 の sign、ブール値の is_singular フラグ、展開行の各位置について entry・row・col・sign・cofactor・contribution を含む完全な terms 配列、使用した行・列を示す短い formula 文字列が含まれます。成功した API 呼び出しの料金は公開基本価格 $0.002/件で、検証失敗はプリペイド残高を消費しません。
展開する行・列の選択が重要な理由
この機能は純粋な解析エンジンなので、API 料金は公開基本価格 $0.002/成功件で、検証失敗は残高を消費しません。