本节主要内容
- 概述
- 向量和向量空间
- 矩阵和矩阵运算
- 线性相关和基
概述
线性代数是量子计算的描述语言。因此,对线性代数所基于的基本数学概念有一个很好的理解,有助于得出量子计算中看到的许多令人惊奇和有趣的结构。本部分的目的是建立入门级线性代数知识的基础。
向量和向量空间
首先,将讨论量子计算中最重要的数学概念之一:矢量。
通常,向量 ∣ v ⟩ \left| \text{v} \right\rangle ∣v⟩ 被定义为向量空间集合中的元素。一个更直观的定义是向量“是具有方向和幅度的数学量”。例如,考虑向量 ( 3 5 ) \left( \begin{matrix} \text{3} \\ \text{5} \\ \end{matrix} \right) (35) ,作图显示如下:
from matplotlib import pyplot as plt
import numpy as np
from qiskit import *
from qiskit.visualization import plot_bloch_vector
plt.figure()
ax = plt.gca()
ax.quiver([3], [5], angles='xy', scale_units='xy', scale=1)
ax.set_xlim([-1, 10])
ax.set_ylim([-1, 10])
plt.draw()
plt.show()
在量子计算中,经常处理状态向量,可以使用Bloch球将其可视化。例如,代表量子系统状态的向量可能看起来像如下所示的箭头,被包围在Bloch球内部。所谓Bloch球的即“状态空间”,是状态向量可以“指向”的所有可能点:
plot_bloch_vector([1, 0, 0])
上图中表示的状态是 ∣ 0 ⟩ |0\rangle ∣0⟩ 和 ∣ 1 ⟩ |1\rangle ∣1⟩ 的叠加态。bloch球上的状态允许旋转到球表面的任何位置,不同的位置代表不同的状态。
现在来看向量的正式定义,即向量是向量空间的元素。一个向量空间 V V V 是域 F F F上一组向量的集合,且需要满足两个条件成立。
- 两个向量的向量加仍在该集合中,即 ∣ a ⟩ , ∣ b ⟩ ∈ V |a\rangle, \ |b\rangle \ \in \ V ∣a⟩, ∣b⟩ ∈ V , ∣ a ⟩ + ∣ b ⟩ = ∣ c ⟩ |a\rangle \ + \ |b\rangle \ = \ |c\rangle ∣a⟩ + ∣b⟩ = ∣c⟩仍在 V V V。
- 标量乘法,对 ∣ a ⟩ ∈ V |a\rangle \ \in \ V ∣a⟩ ∈ V 和某个 n ∈ F n \ \in \ F n ∈ F,其乘积 n ∣ a ⟩ n|a\rangle n∣a⟩仍在 V V V.
现在,我们将通过一个简单示例来阐明上述的定义。让我们证明在域 R \mathbb {R} R上的集合 R 2 \mathbb {R} ^ 2 R2是一个向量空间。首先,
( x 1 y 1 ) + ( x 2 y 2 ) = ( x 1 + x 2 y 1 + y 2 ) \begin{pmatrix} x_1 \\ y_1 \end{pmatrix} \ + \ \begin{pmatrix} x_2 \\ y_2 \end{pmatrix} \ = \ \begin{pmatrix} x_1 \ + \ x_2 \\ y_1 \ + \ y_2 \end{pmatrix} (x1y1) + (x2y2) = (x1 + x2y1 + y2)
因为两个实数之和仍为实数,所上述式子的运算结果仍然在 R 2 \mathbb{R}^2 R2中。同时
n ∣ v ⟩ = ( n x n y ) ∈ V ∀ n ∈ R n |v\rangle \ = \ \begin{pmatrix} nx \\ ny \end{pmatrix} \ \in \ V \ \ \ \ \forall n \ \in \ \mathbb{R} n∣v⟩ = (nxny) ∈ V ∀n ∈ R
因为两个实数之和积仍为实数,所上述式子的运算结果也在 R 2 \mathbb{R}^2 R2中。因此,在域 R \mathbb {R} R上的集合 R 2 \mathbb {R} ^ 2 R2是一个向量空间。
矩阵和矩阵运算
现在来看另一个重要的概念矩阵。
一个简单的矩阵示例如下:
M = ( 1 − 2 3 1 5 i 0 1 + i 7 − 4 ) M \ = \ \begin{pmatrix} 1 & -2 & 3 \\ 1 & 5i & 0 \\ 1 \ + \ i & 7 & -4 \end{pmatrix} M = ⎝⎛111 + i−25i730−4⎠⎞
矩阵运算中,矩阵的乘法非常重要,也很简单,不会的话自己百度。这里给一个示例,
( 2 0 5 − 1 ) ( − 3 1 2 1 ) = ( ( 2 ) ( − 3 ) + ( 0 ) ( 2 ) ( 2 ) ( 1 ) + ( 0 ) ( 1 ) ( 5 ) ( − 3 ) + ( − 1 ) ( 2 ) ( 5 ) ( 1 ) + ( − 1 ) ( 1 ) ) = ( − 6 2 −