點積
定義
設有兩個向量 a 和 b,他們的夾角爲 θ,那麼他們的點積就是 ∣a∣∣b∣cosθ。式子:a⋅b=∣a∣∣b∣cosθ
計算式
用上面的那個公式計算點積的話很麻煩,於是有一個計算式(設向量 a(x1,x2,x3,...),b(y1,y2,y3,...)):
a⋅b=x1y1+x2y2+x3y3+...
所以,點積也可以用矩陣來表示:
a⋅b=⎝⎜⎜⎜⎛x1x2x3⋮⎠⎟⎟⎟⎞∗(y1y2y3⋯)
那麼問題來了,怎麼證明這個計算式呢?
證明如下
考慮向量 a,b 只有兩維的情況,也就是 a(x1,y1),b(x2,y2)。
再設 i,j 爲單位向量,即 i(1,0),j(0,1)。
那麼顯然,向量a,b可以表示成這個樣子:
a=x1i+y1jb=x2i+y2j
那麼就有
a⋅b=(x1i+y1j)⋅(x2i+y2j)=x1i⋅x2i+x1i⋅y2j+y1j⋅x2i+y1j⋅y2j=x1x2⋅i2+x1y2⋅ij+y1x2⋅ij+y1y2⋅j2
因爲 i 和 j 兩向量的夾角是 90°,所以 cosθ=0,根據定義式 a⋅b=∣a∣∣b∣cosθ,得到 i⋅j=0。於是乎就消掉了兩個單項式。
(接上式)=x1x2⋅i2+y1y2⋅j2
又因爲兩個相同的向量 i 相乘等於 1 (i⋅i=∣i∣∣i∣cosθ=1∗1∗1=1),所以式子就變成了
(接上式)=x1x2+y1y2
推廣一下,就得到了向量a,b在更高維時的證明。
應用
first 根據定義式a⋅b=∣a∣∣b∣cosθ,移項一下,可以得到 θ=acc cos∣a∣∣b∣a⋅b,於是乎,可以用來求兩向量間的夾角。
second 還有一個更便捷的用法,因爲一個角大於 90° 時,他的 cos 值是負數,等於 90° 時,他的 cos 值是0,小於 90° 時,他的 cos 值是正數,所以,我們也可以利用 a⋅b 的值的正負來判斷兩向量的位置關係(通常用於判斷是否垂直)。
叉積
定義
模長
叉積叉出來的是一個向量,他的模長等於 ∣a∣∣b∣sinθ
方向
兩個向量叉出來的向量我們規定它的方向垂直於那兩個向量,並且滿足右手定則。
計算式
一般來說,只有二、三維和七維的向量存在叉積,七維向量的叉積太神了我並不會,所以這裏只能講講二和三維的。
先講三維的,設 a(x1,y1,z1),b(x2,y2,z2),那麼他們的叉積可以寫成行列式的形式:
a×b=∣∣∣∣∣∣ix1x2jy1y2kz1z2∣∣∣∣∣∣
其中,i,j,k 是三個維度的單位向量,即 i(1,0,0),j(0,1,0),k(0,0,1),然後再推一推上面的柿子,得到:
=i(y1z2−z1y2)+j(z1x2−x1z2)+k(x1y2−y1x2)
所以他們叉乘出來的向量的座標就是 (y1z2−z1y2 , z1x2−x1z2 , x1y2−y1x2)。
二維叉積的話只需要讓 z 座標爲 0 然後帶入上式,就會得到座標爲 k(x1y2−y1x2),即垂直於原來的兩個向量,然後模長爲 x1y2−y1x2。
應用
first 根據叉積的方向,如果向量 a 通過順時針旋轉 180° 以內可以與向量 b 的方向相同,那麼 c 的模長就是負數,反之,就是正數。
所以,可以通過判斷叉積的模長的正負來判斷兩個向量間的旋轉關係。(順便就可以證明,叉積不滿足交換律)
這個用法可以推廣出一些其他的用法,比如折線拐向什麼的,重點講講判斷兩線段是否相交。
判斷方法:跨立實驗。
如果兩線段AB和CD相交(方便理解,弄了個圖),
那麼,向量 AD 和 AC 必定一個在 AB 左邊,一個在右邊。
顯然,向量 DA 和 DB 也必定 DC 的兩邊。
那麼可以得出,只要滿足這兩個要求,AB和CD就相交。
second 兩向量叉出來的新向量,它的模長在值上是與原先的兩向量構成的平行四邊形的面積是相等的,這個琢磨琢磨叉積的模長定義式就能知道。