# 張量積(Tensor product)
Tensor product(張量積),又稱為 Kronecker product (克羅內克積),是一種數學運算,它可以將兩個向量或矩陣結合成一個更高維度的向量或矩陣。
## 定義
今天有兩個矩陣(或向量)A 和 B:
\begin{split}A=\begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix}\space \text{and}\space B= \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix}
\end{split}
則他們的 tensor product,記做$A\otimes B$,為
\begin{split}
A\otimes B &=
\begin{bmatrix}
a_{11}B & a_{12}B\\
a_{21}B & a_{22}B
\end{bmatrix} =
\begin{bmatrix}
a_{11}
\begin{bmatrix}
b_{11} & b_{12} \\
b_{21} & b_{22}
\end{bmatrix}
& a_{12}
\begin{bmatrix}
b_{11} & b_{12} \\
b_{21} & b_{22}
\end{bmatrix} \\
a_{21}
\begin{bmatrix}
b_{11} & b_{12} \\
b_{21} & b_{22}
\end{bmatrix}
& a_{22}
\begin{bmatrix}
b_{11} & b_{12} \\
b_{21} & b_{22}
\end{bmatrix}
\end{bmatrix} \\
&=
\begin{bmatrix}
a_{11}b_{11} & a_{11}b_{12} & a_{12}b_{11} & a_{12}b_{12} \\
a_{11}b_{21} & a_{11}b_{22} & a_{12}b_{21} & a_{12}b_{22} \\
a_{21}b_{11} & a_{21}b_{12} & a_{22}b_{11} & a_{22}b_{12} \\
a_{21}b_{21} & a_{21}b_{22} & a_{22}b_{21} & a_{22}b_{22}
\end{bmatrix}
\end{split}
>範例:
>\begin{split}A=\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\space \text{and}\space B= \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}
\end{split}
則
\begin{split}
A\otimes B &=
\begin{bmatrix}
0B & 1B \\
1B & 0B
\end{bmatrix}
=
\begin{bmatrix}
\begin{bmatrix}
0 & 0 \\
0 & 0
\end{bmatrix}
&
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix} \\
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
&
\begin{bmatrix}
0 & 0 \\
0 & 0
\end{bmatrix}
\end{bmatrix} \\
&=
\begin{bmatrix}
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0
\end{bmatrix}
\end{split}
<div style="background-color: #E0E0E0; color: #333; padding: 15px; font-style: italic; border-radius: 5px;">
範例:<br>
\begin{split}A=\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\space \text{and}\space B= \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}
\end{split}
則
\begin{split}
A\otimes B &=
\begin{bmatrix}
0B & 1B \\
1B & 0B
\end{bmatrix}
=
\begin{bmatrix}
\begin{bmatrix}
0 & 0 \\
0 & 0
\end{bmatrix}
&
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix} \\
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}
&
\begin{bmatrix}
0 & 0 \\
0 & 0
\end{bmatrix}
\end{bmatrix} \\
&=
\begin{bmatrix}
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0
\end{bmatrix}
\end{split}
</div>
## 在量子計算中的應用
在量子計算中,Tensor product 可以描述多個量子位元(Qubits)的狀態。當我們有兩個 qubits 時,每個 qubits 的狀態可以用一個向量來表示,我們可以透過 tensor product 將兩個向量整合成用一個向量表達。
例如,qubit A處於狀態 $|0\rangle$ 表示為:
\begin{gather}|Q_A\rangle=
\begin{pmatrix} 1 \\ 0 \end{pmatrix}
\end{gather}
qubit B 處於狀態 $|1\rangle$ 表示為
\begin{gather}|Q_A\rangle=
\begin{pmatrix} 0 \\ 1 \end{pmatrix}
\end{gather}
今天我如果要同時表達這兩個 qubits 的狀態,就要用這樣的數學符號做表示:
\begin{gather}|0\rangle \otimes |1\rangle =|0\rangle|1\rangle=|01\rangle\end{gather}
要改用矩陣表達時,就要用 tensor product:
\begin{gather}
|Q_A\rangle \otimes |Q_B\rangle = |0\rangle \otimes |1\rangle=\begin{pmatrix} 1 \\ 0 \end{pmatrix} \otimes \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 1 \cdot 0 \\ 1 \cdot 1 \\ 0 \cdot 0 \\ 0 \cdot 1 \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \\ 0 \\ 0 \end{pmatrix}
\end{gather}
這個四維向量代表一個二 qubits系統的狀態。