余因子行列の計算
余因子行列APIは、正方行列を要素ごとに受け取り、その余因子からなる行列を返します。各位置 (i, j) について、行 i と列 j を取り除いて得られる小行列の符号付き行列式を計算します。これは余因子行列(随伴行列)、逆行列の公式 A^-1 = adj(A)/det(A)、そしてあらゆる教科書の行列式展開の背後にある中間ステップであり、符号を一つずつ手作業で計算する代わりに、1回の決定論的な呼び出しで求められます。算術処理を開始する前に、すべての要素が検証されます。
無料で実行
余因子行列とは実際には何か
正方行列 A に対して、余因子 C(i,j) は2つの要素を組み合わせたものです。行 i と列 j を削除して残った小行列の行列式である小行列式 M(i,j) と、行と列にわたって交互に現れる市松模様の符号 (-1)^(i+j) です。余因子行列は、すべての C(i,j) を元の要素と同じ位置に集めたものなので、A とまったく同じ形状になります。学生がこれを学ぶのは、行または列に沿ったラプラス展開の仕組みとしてですが、それは単なる練習問題以上のものです。余因子行列の転置は随伴行列であり、行列式がゼロでない場合はいつでも、随伴行列を行列式で割ると逆行列が得られます。どこかで符号を1つ間違えるだけで、結果の行全体または列全体が反転してしまいますが、これこそ決定論的な計算が完全に取り除いてくれる種類の静かな誤りです。要素を送信すれば、すべての符号がすでに適用された完全な余因子行列と、応答が完全に自己記述的になるように次数 n を受け取ることができます。
計算はどのように行われるか
各余因子には (n-1) x (n-1) の小行列の行列式が必要なため、エンドポイントは次数 n の行列に対して内部的に n の2乗個の行列式を計算します。それぞれは部分ピボット選択付きのガウス消去法で評価されます。この手法は、実際に送信される整数や単純な小数の行列に対しては厳密であり、それ以外に対しても数値的に安定しています。コストが n に対して階乗的に爆発する素朴な再帰展開とは異なります。結果は小数点以下9桁に丸められるため、どこで実行しても回答はバイト単位で安定します。入力契約は意図的に厳格です。行列は正方でなければならず、すべての要素は有限の数値でなければならず、次数は10に制限されています。それを超えると余因子行列が必要になることは稀だからです。コストは n の5乗で増大し、随伴行列経由の逆行列計算は知られている中で最も遅い方法です。1x1 の行列は [[1]] を返します。これは A * adj(A) = det(A) * I という等式をその境界ケースでも成り立たせる規約です。
使うべき場面と使うべきでない場面
余因子行列そのものが成果物である場合に使用してください。宿題を要素ごとに確認する、完全な解答例を教材用に生成する、随伴行列公式の実装を信頼できる参照と照合する、あるいは集約された単一の数値ではなく符号付き小行列式を個々に必要とする記号処理パイプラインに供給する場合などです。本当に必要なものが行列式だけ、あるいは逆行列だけの場合、それらは別の、より安価な機能です。行列式は1つの数値であり、逆行列は n の2乗個の小行列を経由せずガウス・ジョルダン消去法で直接計算されます。APIに応答しているのと同じコードがこのページ上でブラウザー内を無料で実行されるため、行列を貼り付けて結果を確認し、自分のシステムから呼び出しを自動化する場合にのみ、リクエストごとに $0.002 を支払えばよいのです。送信されたものはどこにも保持されません。行列はメモリー内で処理され破棄され、余因子行列だけが返されます。
活用例
線形代数の宿題を確認する
手計算した余因子を符号も含めて、10x10までの任意の正方行列に対する厳密な結果と比較できます。
随伴行列の実装を検証する
随伴行列は余因子行列の転置です。その逆行列公式を信頼する前に、コードを正解出力と照合してテストできます。
教材用の解答例を生成する
n の2乗個の小行列式を手計算することなく、講義ノートや練習問題用の完全な余因子行列を作成できます。
よくある質問
料金はいくらですか?
API経由ではリクエストごとに $0.002 です。このページ上でブラウザー内を無料で実行することもでき、同じコードで同じ結果が得られます。
余因子とは正確には何ですか?
C(i,j) = (-1)^(i+j) に、行 i と列 j を取り除いて得られる小行列の行列式を掛けたものです。余因子行列は各 C(i,j) を元の要素と同じ位置に配置します。
どのような入力を受け付けますか?
行の配列として表現された正方行列で、各行は有限の数値の配列です。1x1 から 10x10 まで対応します。不揃いな行列や数値でない要素は、問題のある位置を明示した明確なエラーで拒否されます。
1x1 の行列は何を返しますか?
[[1]] です。これは標準的な規約で、A * adj(A) = det(A) * I という等式が n = 1 の場合にも成り立つようにするものです。
呼び出し後に行列は保存されますか?
いいえ。メモリー内で処理され破棄されます。返されるのは余因子行列とその次数だけです。
なぜ次数は10に制限されているのですか?
余因子行列には n の2乗個の小行列式が必要なため、作業量は n とともに非常に速く増大します。10x10 を超えると余因子による方法はほとんど適切な道具ではありません。行列式または逆行列の機能がそれらのニーズに直接応えます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/cofactor-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[1,2],[3,4]]}'const res = await fetch("https://api.kit.forhosting.com/math/cofactor-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
1,
2
],
[
3,
4
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/cofactor-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
1,
2
],
[
3,
4
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/cofactor-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[1,2],[3,4]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[1,2],[3,4]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/cofactor-matrix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"matrix": [
[
1,
2
],
[
3,
4
]
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.cofactor_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 10 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |