向量
向量v=[x,y,z]表示三维空间中一个有长度的方向,单位长度为1。
也写作:
v=x×i+y×j+z×k 其中i,j,k是x,y,z三个轴上的单位向量,平面中的向量可以视为z轴长度为0的三维空间中一种特殊的向量,一般写作:
v=x×i+y×j 点积
向量的点积计算方式如下:
v1⋅v2=x1×x2+y1×y2+z1×z2 两个向量的点积结果是一个数字。
叉积
向量的叉积计算方式如下:
v1×v2=ix1x2jy1y2kz1z2 叉积的结果是一个向量,此向量遵循右手法则,将右手四指卷起大拇指伸出。从v1沿着四根卷起的手指指向v2,叉积结果向量与大拇指方向相同,与v1和v2所在平面垂直。
也可以写作:
v1×v2=n∣v1∣⋅∣v2∣sinθ 其中n即为右手法则中大拇指的方向向量,长度为1,θ为从v1转向v2的转角(0∘≤θ≤180∘)。
行列式计算公式
二阶行列式:
acbd=a⋅d−b⋅c 三阶行列式:
adgbehcfi=a⋅e⋅i+b⋅f⋅g+c⋅d⋅h−c⋅e⋅g−a⋅f⋅h−b⋅d⋅i 根据上式可知,三维空间中向量叉积为:
v1×v2=(y1⋅z2−y2⋅z1)⋅i−(x1⋅z2−x2⋅z1)⋅j+(x1⋅y2−x2⋅y1)⋅k 二维平面中向量叉积为:
v1×v2=(x1⋅y2−x2y1)⋅k 向量夹角
计算两个向量v1和v2的夹角时,我们一般将它们看作其共同的垂直方向向量长度为0,叉积C=v1×v2=x1⋅y2−x2⋅y1的结果。
(1) 若C>0则v2在v1的逆时针方向(按右手螺旋法则从v1旋转到v2时,大拇指与单位向量k方向相同);
(2) 若C<0则v2在v1的顺时针方向(按右手螺旋法则从v1旋转到v2时,大拇指与单位向量k方向相反);
(3) 若C=0则v1与v2共线,这属于边界情况;
需要注意叉积的正负值与向量间顺时针逆时针的关系,很容易搞混。
计算向量叉积的时间复杂度为O(1)。
数学复习全书(李永乐李正元考研数学 数学一)
源码
Cross.h
Cross.cpp
测试
CrossTest.cpp