量子運算中的向量和矩陣
一些熟悉線性代數對於瞭解量子運算至關重要。 本文介紹線性代數的基本概念,以及如何在量子運算中使用向量和矩陣。
向量
數據行向量,或維度 v 的向$量(或 size) $n$ 是 n$ 複數$的集合$(v_1,v_2,\ldots,v_n)$排列為數據$行:
$$v =\begin{bmatrix} v_1\\ v_2\\ \vdots\\ v_n \end{bmatrix}$$
向量 $v 的常態定義為 $\sqrt{\sum_i v_i||^2}$$。 如果向量為 1,則稱為單位向量。$$
數據行向量 v$ 的相鄰是表示為 $v^\dagger$ 的數據列向量$,並定義為 v$ 的$結合轉置。 對於維度 $n 的數據行向量 $v$,相鄰是維度 $1 \times n$ 的數據列向$量:
$$\begin{bmatrix}v_1 \ \vdots \ v_n \end{bmatrix}^\dagger=\begin{bmatrix}v_1^* & \cdots& v_n^* \end{bmatrix}$$
其中 $v_i^*$ 表示v_i$的複雜結合$。
使用線性代數,量子位的狀態 $\psi= a \ket{0} + b \ket{1}$ 被描述為 量子狀態向量$\begin{bmatrix} a \ b \end{bmatrix}$,其中 $|a|^2 + |b|^2 = 1$。 如需詳細資訊,請參閱 量子位。
純量產品
兩個向量可以乘以純量乘積,也稱為點乘積或內部乘積。 顧名思義,兩個向量純量乘積的結果是純量。 純量乘積會將一個向量投影到另一個向量,並用來將一個向量表示為其他更簡單向量的總和。 兩個數據行向量 u 和 v 之間的純量$乘積表示為 $\left\langle u、v=\right\rangle u^\dagger v$,並定義為$$$
$$\left\langleu, v\right\rangle= u^\dagger v=\begin{bmatrix}u_1^* & \cdots&放大器;u_n^* v_1\\ \vdots\\ v_n \end{bmatrix}= u_1^* \end{bmatrix}\begin{bmatrix}v_1 + \cdots u_n^* v_n。 $$
透過純量乘積,向量 $v$ 的常態可以撰寫為 $\sqrt{\langle v、 v\rangle}$。
您可以將向量乘以數位 $a,以形成新向量,其專案乘以$$ 。$ 您也可以新增兩個向量 u 和 v,以形成新的向量$,其專案是 u$ 和 v$ 專案$的總和。$$$$ 這些作業如下:
$$ au+bv =\begin{bmatrix} au_1+bv_1\\ au_2+bv_2\\ \vdots\\ au_n+bv_n \end{bmatrix}$$
矩陣
大小 m n 的矩陣是 m\cdot n$ 複數的集合$,以 $m$ 列和 $n$ 個數據行排列,如下所示:$\times$
$$M =\begin{bmatrix} M_{11} M_{12}\cdots M_{1n}\\ M_{{21} M_{22}\cdots M_{2n}\\\ddots\\ M_{m1} M_{m2}\cdots M_{mn}\\\end{bmatrix}$$
注意
請注意,維度 $n$ 的向量只是大小 $n \times 1$ 的矩陣。
量子運算會以 平方矩陣表示,也就是說,數據列和數據行數目相等。 例如,單一量子位作業會以 $2 \times 2$ 個矩陣表示,例如 Pauli $X$ 運算
$$X =\begin{bmatrix} 0 & 1 1 \\& 0 \end{bmatrix}$$
提示
在 Q#中,Pauli $X$ 作業是由 X
作業表示。
如同向量,您可以將矩陣乘以數位 $c,以取得新的矩陣,其中每個專案都乘$以 c$$,而且可以加入兩個相同大小的矩陣,以產生新的矩陣,其專案是兩個矩陣的個別專案總和。
矩陣乘法
您也可以將維度 $m \times n$ 的矩陣 $M$ 與維度 $n \times p$ 的矩陣 $N$ 相乘,以獲得一個維度 $m \times p$ 的新矩陣 $P$,如下所示:
$$ \begin{ \begin{align} &\begin{bmatrix} M_{{11} M_{12}\cdots M_{1n}\\ M_{{21} M_{22}\cdots M_{2n}\\\ddots\\ M_{m1} M_{m2}\cdots M_{mn}\end{bmatrix}\begin{bmatrix} N_{{11} N_{{12}\cdots N_{1p}\\ N_{{21} N_{22}\cdots N_{2p}\\\ddots\\ N_{n1} N_{n2}\cdots N_{np}\end{bmatrix}=\begin{bmatrix} P_{{11} P_{12}\cdots P_{1p}\\ P_{21} P_{{22}\cdots P_{2p}\\\ddots\\ P_{m1} P_{m2}\cdots P_{mp}\end{bmatrix}\end{align}$$
其中 P 的專案$為 $P_{ik\sum}=_j M_{ij}N_{jk。}$$ 例如,專案$P_是 M$ 第一個數據列的純量乘積,第一個數據行$為 $N${11}$。 請注意,由於向量只是矩陣的特殊案例,因此此定義會延伸至矩陣向量乘法。
特殊類型的矩陣
一個特殊的平方矩陣是標識矩陣,表示\mathbb{I}$$\mathbb{,其所有對角線元素都$等於 1$,其餘元素等於 $0$:
$\mathbb{ \mathbb{I}=\begin{bmatrix} 1 0 \cdots 0\\ 0 1 \cdots 0\\\ddots\\ 0 0 \cdots 1 \end{bmatrix}。$
對於平方矩陣 $A,如果$AB = BA=\mathbb{I}$\mathbb{,矩陣 $B$ 是反轉矩陣。$ 如果矩陣 $A$ 有反轉,反矩陣是唯一的,而且會寫入為 $A^{-1}$。
對於任何矩陣 $M,M$$ 的相鄰或串連轉置$是矩陣 $N$,$因此N_{ij=} M_{ji}^*$。 M 的$相鄰表示 $M^\dagger$。$
如果 UU^ U^ U^=\dagger U =\mathbb{I}$ 或\dagger相等$的 U^ U^\dagger${-1}{=,矩陣 $U$ 是單位 U。$ 一元矩陣的一個重要屬性是它們會保留向量的常態。 這是因為
$\langle v,v \rangle=v^{\dagger} v^ = v^{\dagger} U^{{-1} U v = v^{\dagger} U^{\dagger} U v =\langle U v,U v\rangle。$
注意
量子運算是以單一矩陣表示,這些矩陣是正方形矩陣,其相鄰的矩陣等於其反向矩陣。
如果 $M^\dagger$,=矩陣 $M$ 稱為 Hermitian。
在量子運算中,基本上只有兩個矩陣,您遇到的矩陣是:赫米蒂安和單一矩陣。
Tensor 產品
另一個重要的作業是 張量乘積,也稱為 矩陣直接產品 或 克朗克產品。
請考慮兩個向量 $v=\begin{bmatrix}a \\ b \end{bmatrix}$ 和 $u =\begin{bmatrix} c \\ d \end{bmatrix}$。 其張量乘積會表示為 $v \otimes u$ ,併產生區塊矩陣。
$$ \begin{bmatrix} a \\ b \end{bmatrix}\otimes\begin{bmatrix} c \\ d \end{bmatrix}=\begin{bmatrix} a \begin{bmatrix} c \\ d \end{bmatrix} b \begin{bmatrix} c \\ d \end{bmatrix}\end{bmatrix}=\begin{bmatrix} a c \\ a d \\ b c \\ b d \end{bmatrix}$$
注意
請注意,張量乘法與矩陣乘法不同,這是完全不同的運算。
張量乘積用來表示多個量子位的合併狀態。 量子運算的真正能力來自於利用多個量子位來執行計算。 如需詳細資訊,請參閱 多個量子位上的作業。