向量間投影和距離
這段時間用到了點到向量的距離,發現已經還給高數老師了。借這篇博客(參考英文博客)總結回顧一下,並且附上Python代碼。先回顧下向量點積和叉乘公式, , 。
從下圖可以看出b向量在a向量上的投影長度是 ,可以通過b和a的點積除以a的長度,實際的投影向量 。同理,b到a的距離爲 ,可以通過b和a的叉乘除以a的長度得到,即 。可知 ,並且 。
點到向量的距離
考慮下圖中上半部分,求點P到直線L的距離,其中L的方向向量是v。任取直線上一點Q, ,設P點座標爲(1,3,8),Q點座標是(-2,1,3),可知 ,另設 。
通過叉乘的計算公式(如下圖,聯想行列式計算公式),我們可知 。通過 ,可知 。
Python程序
可以通過Python腳本模擬上述過程,代碼如下。 求 , 求 ,兩者相除之後再進行一次 得到 ,結果跟手動計算一致。
import numpy as np
QP = np.array([3,2,11])
v = np.array([1,-2,-1])
h = np.linalg.norm(np.cross(QP, v)/np.linalg.norm(v))
print h