アダマール積計算機
同じ大きさの行列の対応する成分どうしを掛けます。成分1, 2, 3, 4と5, 6, 7, 8なら、結果の1行目は5と12です。通常の行列の積と違い、行と列は混ざりません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
アダマール積は2つの行列を要素ごとに掛けます。結果の各セルは、対応する因数のセルの積そのものです。シュール積や要素ごとの行列乗算とも呼ばれ、線形代数で最初に学ぶ通常の行列積(行全体と列全体を混ぜる)とは本質的に異なります。この機能は同一形状の2つの長方形数値行列を受け取り、各行が空でなく長方形であることを検証し、対応する要素を掛け合わせ、次元と入力のエコー付きで積の格子を返します。
アダマール積の意味と形状が一致しなければならない理由
どちらも m 行 n 列の2つの行列 A と B を書きます。結果は常に別の m 行 n 列行列であり、新しい行や列は現れず、要素も落ちません。この規則は要素ごとの加算の乗法的な対であり、加算が対応セルをプラスで結合するのに対し、アダマールはそれらを掛けます。
通常の行列積 A かける B とは全く異なり、そちらは A の列数が B の行数と等しい必要があり、中間インデックスに沿った積の和からなる m 行 p 列行列を生みます。両操作の混同は宿題でよくある誤りで、特に両因数が正方のときに起きやすいです。幾何的には、配列を平坦化したあと、アダマールは R の m 倍 n 乗における座標ごとの乗算です。
各要素は他から独立なので、アルゴリズムは入れ子ループ1回、セルごとに1回の浮動小数点乗算です。硬い規則は次元の一致だけです。A が3×2で B が2×3なら、初等線形代数に標準のアダマール積はなく、変形・埋め込み・拒否のいずれかが必要です。
実務での使い方、料金、制限、関連操作
宿題の確認、講義スライドの準備、小さな数値格子への二値マスクの適用、計算機代数系を入れずに特徴マップ乗算のデバッグなど、すぐに要素ごとの積が欲しいときはブラウザツールを使ってください。検証失敗と次元不一致は残高を消費しません。言語モデルも外部線形代数サービスも乱数もなく、継続的インテグレーション検査や再現可能な教材に安全に固定できます。
結果は完全に決定的で、同じ行列は常に同じ結果格子を返します。問題文が要素ごと・エントリごと・アダマール・シュール積と言うときは本計算機を、行と列の和を伴う A かける B を求めるときは通常の行列乗算機能を選んでください。中間オーバーフローが問題にならないよう、エントリは通常の浮動小数点の大きさに保ちます。
教室の整数や典型的な工学スケールでは、倍精度の範囲で厳密です。要素ごとの加減、行列式、逆行列、転置には別機能を使い、本機能は等しい形状の要素ごとの乗算に意図的に絞っています。
活用例
宿題・チュータリングの検証
学生と採点者は、同じ大きさの行列について A ⊙ B を確認でき、次元が合わないときは明確に失敗します。ローカル CAS のインストールは不要です。
マスクと特徴マップのパイプライン
格子・画像・アテンション重みに二値またはソフトマスクを掛けるスクリプトは、各言語で形状検査を再実装せず、決定的なアダマールオラクルを呼び出します。
要素ごとの積と通常の行列積の対比教育
教材ページでは、同じ正方ペアでアダマールと通常乗算を並べ、形状が一致するだけでは A かける B が定義されないことを学習者に示せます。
よくある質問
行列の次元が一致しないとどうなりますか?
エラーメッセージは両形状(例: 2×3 対 3×2)を示し、アダマール積が等しい次元を要すると述べます。
通常の行列乗算と同じですか?
いいえ。 通常の乗算は A の行と B の列を混ぜ、内側の次元が一致する必要があります。アダマールは対応要素を掛け、形状の完全一致を要求します。
行列の加減もしますか?
いいえ。 要素ごとの乗算のみです。要素ごとの加減は行列加算機能をご利用ください。
アダマール積の各成分はどう計算されますか?
同じ行・同じ列にある2つの成分を掛けた値です。2×2の例では、左上は1と5を掛けて5、右上は2と6を掛けて12になります。
アダマール積にはほかにどんな呼び名がありますか?
シューア積や成分ごとの行列の積とも呼ばれ、A ⊙ B や A ∘ B と書かれることがよくあります。どれも同じ、成分ごとに掛ける規則を指します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/matrix-hadamard \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":[[1,2],[3,4]],"b":[[5,6],[7,8]]}'const res = await fetch("https://api.kit.forhosting.com/algebra/matrix-hadamard", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
5,
6
],
[
7,
8
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/matrix-hadamard",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": [
[
1,
2
],
[
3,
4
]
],
"b": [
[
5,
6
],
[
7,
8
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/matrix-hadamard", 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":[[5,6],[7,8]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":[[1,2],[3,4]],"b":[[5,6],[7,8]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/matrix-hadamard", 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": [
[
5,
6
],
[
7,
8
]
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.matrix_hadamard",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
形状不一致、ギザギザの行、空行列、有限でないセルは、埋め込みや暗黙のブロードキャストをせず invalid_input で失敗します。
アダマール積の意味と形状が一致しなければならない理由
そのアダマール積 C は、しばしば A ⊙ B または A ∘ B と書かれ、行インデックス i と列インデックス j ごとに c_ij が a_ij と b_ij の積として定義されます。本ツールは両方の形状を明示する invalid_input メッセージで拒否し、採点者や API クライアントが不一致ペアを黙って受け付けないようにします。
計算機の呼び出し方と応答の読み方
与えられた行列のすべての行は同じ長さを共有し、構造が長方形である必要があります。両行列がきれいに解析できても次元が異なる場合、例えば3×2対2×3のように両形状を述べ、アダマール積が等しい次元を要する旨を示すメッセージで失敗します。成功時の応答には result(m×n の積)、便宜上の rows と cols、解析済み数値行列のエコー a と b、操作と形状を記録する短い formula 文字列が含まれます。必須フィールド a と b を含む JSON 本体を送ってください。それぞれは空でない行の配列で、各行は有限数の空でない配列です。行列はネイティブ JSON 配列、または同じ入れ子構造の JSON 文字列として渡せます。第1因数には matrix_a・left・A、第2因数には matrix_b・right・B の別名が受け付けられます。エンジンは欠落フィールド、空行列、ギザギザ行、NaN や Infinity のセル、非数値文字列を invalid_input で拒否し、これらの失敗は課金されません。
実務での使い方、料金、制限、関連操作
チュータリング基盤、コーディング面接サンドボックス、コンピュータビジョンパイプライン、信号処理ノートブック、スプレッドシート出力が、単一契約の下で多くの行列ペアに安定した JSON を必要とするときは API を使ってください。成功した各リクエストは $0.002 の課金アイテム1件です。
技術的な質問
この API でアダマール積をどう計算しますか?
同じ次元で等しい長さの数値行配列として a と b を JSON で送ってください。応答は result、rows、cols、エコー行列、短い formula 文字列を返します。
アダマール積計算機は無料ですか?
ブラウザツールはお使いの端末で無料です。API 呼び出しは成功アイテムごとに $0.002 の KIT プリペイド残高を使い、検証・次元の失敗は課金されません。