クロネッカー積計算機
2×2の行列2つのクロネッカー積は、2つ目の行列を拡大した写しを並べた4×4の行列です。2つの行列を行ごとに入力すると、形がそろっていなくても、A⊗Bと各因子の大きさが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
2つの行列のクロネッカー積(テンソル積)は、第1因子の各成分で第2因子全体をスケールして得られるブロック行列です。本計算機は有限な数の行として与えられた2つの長方形行列を受け取り、決定的な4添字ループでクロネッカー積を組み立て、積行列と因子の形を返します。
クロネッカー積とは何か — そして何ではないか
クロネッカー積はブロック構成であり、行と列の内積ではありません。A を m 行 n 列の数表、B を p 行 q 列の数表として書いてください。2行3列の行列を1行2列の行とテンソルしても、列ベクトルを正方行列とテンソルしてもよく、両因子が長方形かつ有限である限り積は常に定義されます。
これが通常の行列の積との第一の対比です。通常の積は A の列数が B の行数と等しくなければ定義されません。対応する成分同士を掛け、同じ形を要求するアダマール積でもなく、多重線形代数の別の角落に現れる Khatri–Rao 積やクロネッカー和でもありません。
順序は重要です。 A テンソル B と B テンソル A が同じ成分を持つのは、行と列の既知の並べ替えの後だけであり、行列として等しいのは両因子が1行1列である場合などの特別なときに限ります。
整数の定番確認は A が [[1, 2], [3, 4]]、B が [[0, 5], [6, 7]] の組で、そのクロネッカー積は第1行が [0, 5, 0, 10]、最終行が [18, 21, 24, 28] の4行4列行列です。
本計算機はその教科書どおりのブロック規則だけを実装し、公開する各成分を指定の精度に丸め、欠けたセル、ぎざぎざの行、有限でないセルに対しては結果をでっち上げません。
クロネッカー積が使われる場面
教室や学習支援の場では、学習者が B のスケールした複製を手で展開せず、通常の積 A かける B と混同せずにブロック構成を確かめられるよう、クロネッカー積(テンソル積)計算機が使われます。試験問題の生成器には、有限でないセルをエラーとして印し、NaN を含む行列を返さない決定的なオラクルが必要です。
欠陥のある採点器がそれを惜しい正解と扱う恐れがあるからです。量子情報のノートは2量子ビット演算子を1量子ビット行列のクロネッカー積として書きます。信号処理や画像のスクリプトは同じやり方で分離可能カーネルを組み立て、隣接行列のクロネッカー積をとるグラフ算法は、控えめな整数例のための明示的で文書化された経路を必要とします。
開発者は自分で書いているクロネッカー手続きのフィクスチャを蒔くために、同じ契約を CI から呼び出します。まず教科書の4行4列積を固定し、次に2行3列の因子を1行2列の行とテンソルした長方形の例を足してください。検証の失敗は残高を消費しません。
入力は20×20、積は200×200の上限内に収め、丸めた積をテストに固定すれば、宿題、LMS プラグイン、エッジの worker 向けに再現可能なクロネッカー行列が得られ、独自の数式処理基盤を立てる必要はありません。
活用例
宿題と試験の解答キー
教科書の整数行列について A⊗B を組み立て、(m·p)×(n·q) の形を確かめ、各ブロックを手でスケールした B の複製と照合します。
決定的な CI フィクスチャ
4添字の展開や有限性の検査を手で保守せず、単体テスト向けに再現可能なクロネッカー積を生成します。
量子・グラフ・分離可能カーネル
両因子が公開された行・列の上限に収まるとき、2量子ビット演算子、クロネッカーグラフ、分離可能フィルタを合成します。
よくある質問
クロネッカー積は通常の行列の積と何が違いますか?
通常の積は A の列数が B の行数と等しい必要があり、行と列の内積からなる m×p 行列を作ります。クロネッカー積 A⊗B は長方形の A と B に対して常に定義され、B のスケールした複製を並べ、(m·p)×(n·q) の形になります。
行列に Infinity や NaN が含まれるとどうなりますか?
両因子のすべての成分は有限な数でなければならず、有限でない値は課金されず、積に現れることもありません。
A⊗B は B⊗A と等しいですか?
一般には等しくありません。2つの積は行と列の既知の置換の後に同じ数を含みますが、行列として等しいのは特別な場合だけです。本ツールは常にその順で A⊗B を計算します。
どの大きさの行列に対応していますか?
各因子は最大 20 行 20 列です。積が 200 行または 200 列を超える場合は拒否されます。
クロネッカー積では2つの行列の大きさがそろっている必要がありますか?
いいえ、必要ありません。通常の積と違い、長方形の行列ならどれでも組み合わせられ、2×3の行列と1×2の行も計算できます。Aがm行n列、Bがp行q列なら、結果はm·p行n·q列です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/tensor-product \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":[[1,2],[3,4]],"b":[[0,5],[6,7]]}'const res = await fetch("https://api.kit.forhosting.com/math/tensor-product", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
0,
5
],
[
6,
7
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/tensor-product",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
0,
5
],
[
6,
7
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/tensor-product", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":[[1,2],[3,4]],"b":[[0,5],[6,7]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":[[1,2],[3,4]],"b":[[0,5],[6,7]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/tensor-product", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
0,
5
],
[
6,
7
]
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.tensor_product",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_rows | 20 |
max_cols | 20 |
max_product_rows | 200 |
max_product_cols | 200 |
max_abs_entry | 1000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
A が m 行 n 列、B が p 行 q 列のとき、A テンソル B は (m×p) 行 (n×q) 列の行列で、(i, j) 番目のブロックは a_ij 倍の B です。この構成は多重線形代数、量子情報(1量子ビットゲートの積として書く2量子ビット演算子)、グラフ理論(隣接行列のクロネッカー積)、離散信号処理(分離可能フィルタ)で現れます。有限でないセルは NaN や Infinity に黙って変わるのではなく invalid_input として拒否されます。ネットワークも乱数もなく、テストに固定できる契約で、成功した呼び出し1件あたり $0.002 です。
クロネッカー積とは何か — そして何ではないか
すると A テンソル B は、A の各成分 a_ij を、a_ij 倍した B 全体のブロックで置き換えて得られる縦に長く横に広い行列です。したがって結果は m×p 行・n×q 列となり、行が i×p+r、列が j×q+c の位置の成分はちょうど a_ij 倍の b_rc です。この定義は A と B の内側の次元が一致することを求めません。
入力契約、応答の形、有限でない成分の失敗
空でない行の配列で、各行は有限な数の空でない配列、すべての行が同じ長さで行列が長方形になる必要があります。0から15桁の任意の precision は公開する積の各成分を丸め、既定値は10です。null を 0 に黙って変換することも、スカラーを行列へブロードキャストすることもありません。入力はそれぞれ最大20行20列に制限され、積が200行または200列を超える場合は拒否されます。検証の失敗は課金されません。装飾したクロネッカー括弧が必要なら、応答をご自身の組版と組み合わせてください。必須の2行列を含む JSON 本体を POST してください。フィールド a は左因子です。フィールド b は同じ行優先形式の右因子です。スプレッドシートやクエリ文字列、型付きフォームが同じ契約を再利用できるよう、第1因子には matrix_a・left・A、第2因子には matrix_b・right・B という別名も受け付けます。各セルは JSON の数または数値文字列として届いて構いません。空文字列、オブジェクト、有限でないトークン(Infinity、NaN、有限小数として解釈できない文字列)は、たとえば a[1][0] のように問題のフィールドパスを名指しする invalid_input で失敗します。クロネッカー形が因子の次元を掛け算しても、1件の要求が Worker の isolate に収まるようにするためです。成功時、本体は同じ入れ子配列形式のブロック行列 product、エコーされた因子 a と b、4つの形の数 rows_a・cols_a・rows_b・cols_b、積の次元、使用した精度、4添字規則を記した短い公式文字列、公開された入力上限を返します。このエンドポイントは JSON の数だけを返し、図や記号的な書き換え手順は出しません。
クロネッカー積 API が役立つ場面
小さな parse API があれば、授業ページは計算機代数システム一式を引き込まずに X ⊗ I や H ⊗ H を確認できます。実装が純粋な parse の tier A であるため、成功した呼び出しは公開された基本料金 $0.002 で、モデルトークンも外向きネットワークもありません。
技術的な質問
テンソル積計算機の料金はいくらですか。
ブラウザ上のツールは無料です。API 要求は成功した呼び出し1件あたり $0.002 の前払い KIT 残高を使い、無効な入力は課金されません。