# 補充:向量空間與 Hilbert 空間
其實在標準線性代數教材,頭第一章就會先介紹向量空間,然而,初學者剛接觸會因此覺得線性代數太抽象,不像以前學的數學也不像微積分這麼具體有形,從而失去學習的熱忱繼續往下學,就像背英文單字一樣,看到第一個單字 abandon 就把書收回抽屜裡,因此筆者將線性空間挪到最後面,在你學完有形有像的 basis, eigenvalue 等等後再接觸比較抽象的數學,當然,這世界也是不乏天賦異稟的人初學向量空間就覺得亢奮,那你很適合左轉數學系,或是右轉理論物理。
會把它歸類在補充單元是因為如果你沒學過向量空間,沒學過 Hilbert 空間,也不影響你理解量子計算是甚麼,你依然可以理解[純量子演算法](https://www.entangletech.tw/courses/algorithm),以及近年學術研究熱點的[混合量子演算法](https://www.entangletech.tw/courses/optim),不過,如果你想更深入更進階,成為研究學者,那你還是得回來看這章節。
> 劇透,接下來的內容對多數人來說,會偏枯燥無聊,讓各位展現什麼叫真正的數學
## 向量空間
其實你在前面章節碰到的二維平面、三維空間,或是乃至更高維的空間,都屬於數學上「向量空間」(vector space) 的一種,而線性代數,就是在討論這種空間的性質,以及如何在這空間上做運算。
在介紹向量空間前,先假裝你不知道甚麼是向量,因為向量空間就是在定義甚麼東西可以是向量。
給一個定域 $F$ (像是實數或是複數),$F$ 上一個非空集合 $V$,如果集合 (set) 中的元素運算規則滿足以下公理,我們就稱 $V$ 是向量空間,而 $V$ 裡的元素叫向量:
> 在數學中,$F$ 其實稱作 field (體),記得這是數學,不要跟物理的「場」當作同個東西
1. 任兩個元素相加後得出的新元素仍是 $V$ 的元素(加法封閉性)
2. 元素與純量相乘後得出的新元素仍是 $V$ 的元素(乘法封閉性)
3. 任兩個元素 $\vec{u}, \vec{v}$ 相加滿足交換律,即加法交換律﹔
\begin{align}
\vec{u}+\vec{v}=\vec{v}+\vec{u}
\end{align}
4. 任三個元素 $\vec{u}, \vec{v}, \vec{w}$ 相加滿足結合律,即﹔
\begin{align}
(\vec{u}+\vec{v})+\vec{w}=\vec{v}+(\vec{u}+\vec{w})
\end{align}
5. 存在一個元素 $\vec{0}$,任何元素與它相加後仍是自己,即:
\begin{align}
\vec{v}+\vec{0}+\vec{v}
\end{align}
6. 每個元素 $\vec{v}$ 相應有另一個元素與之相加後得到 $\vec{0}$, 即﹔
\begin{align}
\vec{v}+(-\vec{v})+\vec{0}
\end{align}
7. 對於任意純量 $k$ 與任兩個元素 $\vec{u}, \vec{v}$,滿足乘法分配律:
\begin{align}
k(\vec{u}+\vec{v})=k\vec{u}+k\vec{v}
\end{align}
8. 對於任意純量 $k,t$ 與任意元素 $\vec{v}$,滿足係數分配律
\begin{align}
(k+t)\vec{v}=k\vec{v}+t\vec{v}
\end{align}
9. 承上,也滿足乘法結合律
\begin{align}
(kt)\vec{v}=k(t\vec{v})
\end{align}
10. 存在一種單位元素 $\vec{1}$,任意元素與它相乘後仍是自己
\begin{align}
\vec{1}\cdot\vec{v}=\vec{v}
\end{align}
以上十個條件其實可以不用特別記住。如果你完全看不太懂,就這樣簡單理解吧,給一個空間,空間裡所有的向量集合就是向量空間 $V$。
還記得前面提到「先假裝你不知道甚麼是向量」,為何要你先短暫忘記向量,是因為滿足以上條件的不是只有你熟知物理中的向量,不過在日後量子計算中我們提到的向量都是你熟知的那種向量,撇開物理,根據數學的定義,多項式也可以是向量﹔
\begin{align}
f(x)=\sum_{i=0}^n a_ix^i\\
g(x)=\sum_{i=0}^n b_ix^i
\end{align}
可以自己驗證是否滿足以上十個規則。另外齊次線性方程組的解也是向量,從這裡你可以知道,平常你熟知的向量,在數學中只是其中一種比較狹義的向量。
> 給對數學有興趣的讀者過癮一下,一個空間如果有定義長度怎麼算,那這空間稱為 metric space,如果一個線性空間多加上內積的定義,這空間稱作 inner product space (內積空間),從而我們可以計算任兩向量之間的角度
## Hilbert 空間
前面介紹向量空間是為了引入 Hilbert 空間,Hilbert 空間在量子力學與量子計算中扮演重要基礎角色,或者這樣說,量子力學中的計算都是在 Hilbert 空間上進行 (或是這樣說,任兩個空間中的元素算出來的新元素都還是在這空間中),而 Hilbert 空間其實就是基於 inner product space 上再加個 "completeness" (完備性),別害怕,我們會逐步介紹這是甚麼東西。
首先我們先講 inner product space 一些重要的性質,在這空間上,因為定義了甚麼是內積,從而有距離、角度與 orthogonal 的概念。在**複數**域 $\mathbb{C}$ 中,空間中任兩個元素 $\vec{x}, \vec{y}$,經過某種運算後會得到一個複數,這運算稱作內積,記做 $(\vec{x},\vec{y})$,有些教材會記做 $\langle \vec{x},\vec{y}\rangle$,那:
1. 自己與自己的內積一定會大於等於 $0$ (nonnegative):
\begin{align}
(\vec{x},\vec{x})\geq0
\end{align}
2. 只有當 $\vec{x}=\vec{0}$ 時,上式等號成立,反之亦然 (positive definite)
4. conjugate symmetry (記住現在在討論複數):
\begin{align}(\vec{x},\vec{y})=\overline{(\vec{y},\vec{x})}
\end{align}
5. $(a\vec{x},b\vec{y},\vec{z})=a(\vec{x},\vec{z})+b(\vec{y},\vec{z})$
6. $(\vec{x},a\vec{y}+\vec{z})=\overline{a}(\vec{x},\vec{y})+\overline{b}(\vec{x},\vec{z})$
有了這些性質後,也不難在這空間上定義向量的長度(norm):
\begin{align}
||\vec{x}||=\sqrt{(\vec{x},\vec{x})}
\end{align}
基於上面,再多加 completeness 就會是 Hilbert space, $H$,那甚麼是 completeness ? 如果認真解釋會變得很數學,多數人會直接把這視窗關掉。講白一點就是這個空間沒有"洞",這個"洞"的意思是處處都有定義,比方說假設有一個函數 $f$,它在整個實數上都有定義,唯獨 $x=3$ 這一點沒有值,我們就會說在這裡有個"洞",如果一個空間上沒有"洞",那代表處處都可以微分,我們就能在這空間上做微積分運算。
如果你聽完這解釋後,你還意猶未盡,那我們就再講深入一點,我們先來認識 Cauchy sequence (柯西序列),太數學的東西我們就不提了,直接上範例,如果一串數字序列,越後面的項彼此之間的距離越來越小,像是要收斂到某個數字,比方說 $x_n=\frac{1}{n}$ 就是一種柯西序列:
\begin{align}
\left\{1, \frac{1}{2}, \frac{1}{3}, \frac{1}{4}, \dots \right\}
\end{align}
可以看到越後面的項,彼此的差值越來越小,越來越接近 $0$ (收斂)。那 completeness 的定義就是任意柯西序列,其極限(收斂)的元素 (例如 $0$) 必須是這空間的元素。
讓我們以有理數 $\mathbb{Q}$ 為例,我們想找到一個柯西序列來逼近 $\sqrt{2}$:
\begin{align}
\left\{\frac{14}{10}, \frac{141}{100}, \frac{1414}{1000}, \cdots\right\}
\end{align}
這的確是一個柯西序列,且逐漸收斂到 $\sqrt{2}$,然而 $\sqrt{2}$ 並不在有理數中,因此有理數是 non-completeness (不完備),也可以這樣說,在有理數空間在,在 $\sqrt{2}$ 這位置上有個洞。
如果今天 Hilbert 空間改成有限維度且元素都是實數,該空間就是你熟悉的 Euclidean 空間,也就是二維平面或是三維空間,或更高維。