# 何謂向量
> 覺得人生沒有方向嗎?向量會為你指引方向
向量(Vector)會是初學者入門量子計算中最基礎的一課,也是在接下來的線性代數文章中最具體最容易想像的數學。
在平面 Euclidean 空間中,向量是個有方向性的線段,通常以帶有箭頭的線來表示一個向量,線段的長度是該向量的大小,箭頭則為該向量的方向。在這裡,我們舉個簡單的例子帶大家認識向量 。
<div style="text-align: center;">
<img src="https://hackmd.io/_uploads/rJ57kXeQZl.svg" alt="vector" width="70%"/>
<br>一顆球往右上方移動,此時我們可以用箭頭代表這顆球的移動方向與速度一顆球往右上方移動,此時我們可以用箭頭代表這顆球的移動方向與速度</p>
<br>
</div>
如上圖,今天有一個球朝右上方移動,每秒移動五公尺,相當於往右 $3$ 公尺,往上 $4$ 公尺,此時這球的速度就是一種向量,我們可以這樣表示:
> Euclidean 空間就是各位讀者在國中學的那套數學:平面幾何,如果您看不太懂,就把「平面 Euclidean 空間」這幾個字都換成你熟悉的笛卡兒坐標,最常用的就是平面 $xy$ 座標還有立體的 $xyz$ 座標
\begin{align}
\vec{v} &=(3,4)=
\begin{bmatrix}
3 \\
4
\end{bmatrix} \\
&= 3\hat{x}+4\hat{y} \\
&= 3\vec{e}_x + 4\vec{e}_y\\
&=\sum_{i=x}^y v^i \vec{e}_i
\end{align}
> 筆者就是想炫,所以 $i$ 一個上標一個下標,讀者不習慣的話就都當作下標,作為記號,這上標下標在熟悉的平面 Euclidean 空間中沒有任何影響
其中 $\hat{x}, \vec{e}_x$ 和 $\hat{y}, \vec{e}_y$ 分別為 $(1,0)$ 和 $(0,1)$,它們是基本向量(姑且就當作單位向量,也稱作 [basis](https://www.entangletech.tw/lesson/math-03),會在日後的文章中詳細解釋),$v^i$ 像是 $3$ 與 $4$ 稱作向量的分量,分別是水平分量與垂直分量。對於二維空間,向量會有兩個元素,三維立體空間則有三個元素,$n$-維空間的向量便有 $n$ 個元素,例如:
\begin{align}
(1, 2, 3), \begin{bmatrix} 2714 \\ 2435 \end{bmatrix}, \begin{bmatrix} 32 \\ 127 \\ 139 \end{bmatrix}
\end{align}
在物理與工程裡有許多東西可以用向量表達,包括位移、速度、角速度、動量、角動量、加速度、力與力矩等等。
> 本章提到的向量僅討論平面 Euclidean 空間,對於彎曲空間(非 Euclidean),不在本課程討論範圍內,有興趣者可以參考微分幾何或廣義相對論
## 向量的運算
### 向量的長度
一個向量的長度,我們記做 $||\vec{v}||$,即把向量中每個元素開平方相加後開根號,即:
\begin{align}
||\vec{v}||&=\sqrt{3^2+4^2}=5\\
&=\sqrt{\sum_i (v^i)^2}
\end{align}
以剛剛那顆球為例,它的速度向量長度為 $5$,代表這顆球現在的速率為每秒 $5$ 公尺。向量的長度又稱作 norm,或是 Euclidean distance。如果一個向量的長度為 $1$,則該向量稱作單位向量(unit vector)。
> 不要理我,對於四維平面“時”空,向量的長度會是空間向量元素的平方減去時間的平方,加起來開根號,只做個補充,跟量子計算無關
### 向量的加法
我們先講解怎麼計算,再從幾何的角度解釋向量怎麼加減,假設有兩個向量:
\begin{align}
\vec{AB}=(3,4)\\
\vec{BC}=(2,1)
\end{align}
那這兩個向量相加的結果就是每個分量分開來相加,即:
\begin{align}
\vec{AC}&=\vec{AB}+\vec{BC} \\
&=(3,4)+(2,1)\\
&=(3+2,4+1)\\
&=(5,5)
\end{align}
以幾何角度來看,可以使用首尾相接原則,把第一個向量畫出來,利用**向量可平移**的特性,第二個向量從第一個向量的終點開始畫,而連接起點與最終終點的向量,就是這兩個向量的「和」,如下圖所示
<div style="text-align: center;">
<img src="https://hackmd.io/_uploads/rJl8QmlmWl.svg" alt="vector add" width="70%"/>
<br>向量加法的幾何解釋,向量頭尾相接</p>
<br>
</div>
另一種幾何角度為平行四邊形法則。一樣利用向量可平移的特性,將兩個向量的起點對齊,做出一個平行四邊形,連接對角線即可得到所求向量,如下圖:
<div style="text-align: center;">
<img src="https://hackmd.io/_uploads/Sk0iNXgXZe.svg" alt="vector add" width="70%"/>
<br>向量加法的幾何解釋,利用平行四邊形原則</p>
<br>
</div>
減法亦然:
\begin{align}
\vec{AD}&=\vec{AB}-\vec{BC} \\
&=\vec{AB}+\vec{CB}\\
&=(3,4)-(2,1)\\
&=(3-2,4-1)\\
&=(1,3)
\end{align}
> 一樣不要理我,我就愛炫,對於彎曲空間,向量如何平移有嚴謹的數學定義,這邊只是想讓高中生知道,數學比你想得還宏大
### 純量乘法
> 純量(scalar),就是一個只有大小沒有方向的量,像是你的質量、氣溫等等
當純量作用在向量上,簡單來說,就是將原本的向量乘一個倍數,使得向量可以伸長或縮短,以前面 $\vec{AB}$ 為例:
\begin{align}
2\vec{AB}=2(3,4)=(2\times 3, 2\times 4)=(6,8)
\end{align}
### 內積
向量與向量之間如何相乘呢?向量的乘法有兩種,分別是內積(inner product, dot product, $\cdot$)與外積(cross product, $\times$),其中量子計算鮮少用到外積,因此這邊僅介紹內積。
兩個向量 $\vec{A}$ 與 $\vec{B}$ 的內積會是一個純量。假使兩個向量分別為:
\begin{align}
\vec{AB}= (a^1, a^2)=(3,4)\\
\vec{BC}= (b^1, b^2)=(2,1)
\end{align}
那兩個向量的內積為:
\begin{align}
\vec{AB}\cdot\vec{BC}&=a^1b^1+a^2b^2\\
&=3\cdot2+4\cdot1 \\
&=10\\
&=\sum_i a^i b^i
\end{align}
如果兩向量內積為 $0$,代表這兩向量互相垂直,這在[日後文章](https://www.entangletech.tw/lesson/math-04)我們會再次討論。從幾何角度來看,內積的意義為為向量 $\vec{AB}$ 在向量 $\vec{BC}$ 上的分量再乘上 $\vec{BC}$ 的長度,如下圖所示:
<div style="text-align: center;">
<img src="https://hackmd.io/_uploads/H1KXjExXWx.svg" alt="vector inner product" width="70%"/>
<br>向量內積的幾何意義</p>
<br>
</div>
即:
\begin{align}
\vec{AB}\cdot\vec{BC}&=|\vec{AB}||\vec{BC}|\cos\theta\\
&=\bigg(|\vec{AB}|\cos\theta\bigg)|\vec{BC}|
\end{align}
其中 $\theta$ 為兩個向量之間的夾角。
在高二物理中,大家都學過「做功」(work),當你對一個箱子施力 $\vec{F}$,箱子移動的向量為 $\vec{d}$,只有與 $\vec{d}$ 平行的"力" 有做功,否則做白功。要得知這過程做了多少“功”,即把兩個向量內積:
\begin{align}
W=\vec{F}\cdot\vec{d}=F_{||}d=Fd\cos\theta
\end{align}
其中,$F_{||}$ 為 $\vec{F}$ 與 $\vec{d}$ 平行的分量。
## 進階
### 向量是一維張量
對上面內容還讀不過癮的讀者,想了解更多可以閱讀以下內容,以下內容對於了解基礎量子計算並無影響,除非你是已經要做研究,且你的研究與空間和座標轉換有關(像是優化)。
再更深入介紹向量之前,我們要先了解張量(tensor),對於初識 tensor 的讀者要清楚了解並熟悉 tensor 的概念會有些吃力,tensor 可以想成一個“量”如何隨著座標轉換而改變,這邊提及的座標轉換,像是你熟悉的 $xy$ 座標順時針旋轉一個角度,或是座標向右恆速移動或加速移動。
純量就是個 $0$ 維 tensor,不隨座標轉換而變化,可以想想今天你怎麼把座標平移或旋轉,氣溫仍然不會因此而變動。
向量為 $1$ 維 tensor,經過座標轉換後,向量本身是不會變,它本值依然在那,但是向量的分量會跟著改變,假設座標轉換前的座標為 $x^i$,向量的分量為 $v^i$,座標轉換後的新座標為 $x^{'i}$,新的向量分量為 $v^{'i}$,那向量的轉換規則為:
\begin{align}
v^{'i}=\sum_j\frac{\partial x^{'i}}{\partial x^j}v^j\tag{1}
\end{align}
以熟悉的二維平面為例,如下圖,我們將二維平面逆時針旋轉 $\theta$
<div style="text-align: center;">
<img src="https://hackmd.io/_uploads/SyPe77E7Zl.svg" alt="coordinate rotation" width="100%"/>
<br><p>同樣的藍色向量在不同的座標有不同的分量。舊座標(灰色粗虛線)經過旋轉後變成新座標(黑色實線),綠色代表在舊座標下的水平與垂直分量,紅色線代表在新座標下的分量,黃色線為輔助線,幫助你推出下列公式(2)(3)</p>
<br>
</div>
根據上圖,新座標與舊座標之間的關係為:
\begin{align}
x'&=x\cos{\theta}+y\sin{\theta} \tag{2}\\
y'&= -x\sin{\theta}+y\cos{\theta} \tag{3}
\end{align}
根據(1)式,新的向量為:
\begin{align}
v^{'x}&=\frac{\partial x'}{\partial x}v^x+\frac{\partial y'}{\partial y}v^y\\
&=\frac{\partial (x\cos{\theta}+y\sin{\theta})}{\partial x}v^x
+\frac{\partial (-x\sin{\theta}+y\cos{\theta})}{\partial y}v^y\\
&=v^x\cos{\theta}+v^y\sin{\theta}
\end{align}
同理,
\begin{align}
v^{'y}=-v^x\sin{\theta}+v^y\cos{\theta}
\end{align}
以前面向量 $\vec{AB}=(3,4)$ 為例,假設座標平面逆時針旋轉 $90$ 度,旋轉後的向量分量為:
\begin{align}
v^{'x}&= 3\cos{90^\circ}+4\sin{90^\circ}=4\\
v^{'y}&=-3\sin{90^\circ}+4\cos{90^\circ}=-3
\end{align}
原本向量 $(3,4)$ 在新座標下變成 $(4,-3)$。
以此類推,$2$ 維 tensor $T^{ij}$ 是如何隨著座標轉換變化:
\begin{align}
T^{'ij}=\sum_i\sum_j\frac{\partial x^{'i}}{\partial x^i}\frac{\partial x^{'j}}{\partial x^j}T^{ij}
\end{align}
同理更高維的亦然。
### 彎曲空間的向量
在平面空間上,向量的定義都很直觀,然而,在更多變的空間中該如何定義向量?像是球體空間或是甜甜圈形狀的空間。在這種空間上,我們可以假設這空間上每個局部的地方都是你熟知的平面 Euclidian 空間,以球體空間為例,你遠看它是一個球,當你不斷拉近距離看,你可以把某一小區域的球面姑且近似為一個平面,就像你在地球上的處境,因此一個球體空間可以視作多個二維平面拼湊出來,這個平面就稱作切平面(tangent plane)。
<div style="text-align: center;">
<img src="https://hackmd.io/_uploads/SkR0oVx7-g.png" alt="tangent plane" width="70%"/>
<br>在一個球體表面上,可以把某一個點 p 鄰近位置視作一個二維平面,此二維平面(藍色矩形)即為 p 點的切平面,在切平面上的向量(紅色箭頭)即為該點的向量
<br>Picture comes from A Visual Introduction to Differential Forms and Calculus on Manifolds</p>
</div>
在這空間上某一點的 tangent plane,tangent plane 上的向量即為切向量(tangent vector),這就是如何在彎曲空間上定義某一點的向量,當然這邊是形象地解釋,數學上有更完整的定義。