MCPで接続 →

計算を入力してください

公式

広告

結果

直積行列のサイズ
3 x 2
行数 × 列数(m × n)
4 5
8 10
12 15
行数(m) 3
列数(n) 2
定義 C[i][j] = a_i × b_j

ベクトルの直積とは?

ベクトルの直積(テンソル積、二項積とも呼ばれます)は、長さ m のベクトル a と長さ n のベクトル b を組み合わせて、m×n の行列 C を作る演算です。各要素は a の成分と b の成分を掛け合わせるだけで求まります:\((\mathbf{a} \otimes \mathbf{b})_{ij} = a_i\, b_j\)。2つのベクトルを1つの数値にまとめる内積(ドット積)とは異なり、直積は2つのベクトルを行列へと「広げる」演算です。純粋な線形代数の概念であり、国や地域によるルールの違いはなく、どこでも同じように成り立ちます。

この計算機の使い方

まずベクトル a の各成分を、1行に1つずつ(またはカンマ区切りで)入力します。続けてベクトル b も同じように入力してください。2つのベクトルの長さは 同じである必要はありません。表示する小数点以下の桁数を選び、実行すると、行列のサイズ(m×n)と行列全体が表示されます。負の数・小数・0 もすべて扱えます。

公式の解説

a を列ベクトル(m×1)、b を行ベクトル(1×n、つまり b の転置)とみなすと、\(\mathbf{C} = \mathbf{a}\,\mathbf{b}^{\top}\) と書けます。$$\mathbf{a} \otimes \mathbf{b} = \mathbf{a}\,\mathbf{b}^{\top} = \begin{bmatrix} a_1 b_1 & a_1 b_2 & \cdots & a_1 b_n \\ a_2 b_1 & a_2 b_2 & \cdots & a_2 b_n \\ \vdots & \vdots & \ddots & \vdots \\ a_m b_1 & a_m b_2 & \cdots & a_m b_n \end{bmatrix}$$ m×1 行列と 1×n 行列を掛けると m×n 行列が得られます。行数は a の長さに、列数は b の長さに一致します。得られる行列は常にランク 1 になります(どちらかのベクトルがすべて 0 の場合はランク 0)。

広告
列ベクトル a と行ベクトル b の転置の積で、m×n の積のグリッドを生成
外積は列ベクトル a と行ベクトル b^T を掛けて m×n 行列を作ります。

計算例

a = [1, 2, 3](m = 3)、b = [4, 5](n = 2)とします。このとき C は 3×2 の行列になります:
1行目:\(1 \times 4 = 4\)、\(1 \times 5 = 5\)
2行目:\(2 \times 4 = 8\)、\(2 \times 5 = 10\)
3行目:\(3 \times 4 = 12\)、\(3 \times 5 = 15\)
よって $$\mathbf{C} = \begin{bmatrix} 4 & 5 \\ 8 & 10 \\ 12 & 15 \end{bmatrix}$$ となり、行数 = 3、列数 = 2 です。

各要素が行の因子と列の因子の積になっているグリッド
各要素 \((\mathbf{a} \otimes \mathbf{b})_{ij}\) は \(a_i \times b_j\) に等しい。

よくある質問

2つのベクトルは同じ長さでなければなりませんか? いいえ。直積は任意の長さ m と n に対して m×n 行列を生成します。同じ長さが必要になるのは内積(ドット積)の特徴であり、直積では不要です。

直積に交換法則は成り立ちますか? いいえ。入力を入れ替えると結果は転置されます:\(\mathbf{a} \otimes \mathbf{b} = (\mathbf{b} \otimes \mathbf{a})^{\top}\)。

外積(クロス積)とはどう違いますか? 外積(クロス積)は3次元ベクトルにのみ定義され、結果はベクトルになります。一方、直積(テンソル積)は任意の次元で計算でき、結果は行列になります。

最終更新: