点积(内积)和叉积(外积)小结

点积

定义

设有两个向量 a ⃗ \vec a a b ⃗ \vec b b ,他们的夹角为 θ \theta θ,那么他们的点积就是 ∣ a ⃗ ∣ ∣ b ⃗ ∣ cos ⁡ θ |\vec a||\vec b|\cos\theta a b cosθ。式子: a ⋅ b = ∣ a ⃗ ∣ ∣ b ⃗ ∣ cos ⁡ θ a\cdot b=|\vec a||\vec b|\cos\theta ab=a b cosθ

计算式

用上面的那个公式计算点积的话很麻烦,于是有一个计算式(设向量 a ⃗ ( x 1 , x 2 , x 3 , . . . ) , b ⃗ ( y 1 , y 2 , y 3 , . . . ) \vec a(x_1,x_2,x_3,...),\vec b(y_1,y_2,y_3,...) a (x1,x2,x3,...),b (y1,y2,y3,...)):
a ⃗ ⋅ b ⃗ = x 1 y 1 + x 2 y 2 + x 3 y 3 + . . . \vec a\cdot \vec b=x_1y_1+x_2y_2+x_3y_3+... a b =x1y1+x2y2+x3y3+...
所以,点积也可以用矩阵来表示:
a ⃗ ⋅ b ⃗ = ( x 1 x 2 x 3 ⋮ ) ∗ ( y 1 y 2 y 3 ⋯ ) \vec a\cdot \vec b= \left( \begin{matrix} x_1\\ x_2\\ x_3\\ \vdots \end{matrix} \right)* \left( \begin{matrix} y_1 & y_2 & y_3 & \cdots \end{matrix} \right) a b =x1x2x3(y1y2y3)

那么问题来了,怎么证明这个计算式呢?

证明如下

考虑向量 a ⃗ , b ⃗ \vec a,\vec b a ,b 只有两维的情况,也就是 a ⃗ ( x 1 , y 1 ) , b ⃗ ( x 2 , y 2 ) \vec a(x_1,y_1),\vec b(x_2,y_2) a (x1,y1),b (x2,y2)

再设 i , j i,j i,j 为单位向量,即 i ⃗ ( 1 , 0 ) , j ⃗ ( 0 , 1 ) \vec i(1,0),\vec j(0,1) i (1,0),j (0,1)

那么显然,向量 a , b a,b a,b可以表示成这个样子:
a = x 1 i ⃗ + y 1 j ⃗ b = x 2 i ⃗ + y 2 j ⃗ a=x_1\vec i+y_1\vec j\\ b=x_2\vec i+y_2\vec j a=x1i +y1j b=x2i +y2j
那么就有

a ⃗ ⋅ b ⃗ = ( x 1 i ⃗ + y 1 j ⃗ ) ⋅ ( x 2 i ⃗ + y 2 j ⃗ ) = x 1 i ⋅ x 2 i ⃗ + x 1 i ⃗ ⋅ y 2 j ⃗ + y 1 j ⃗ ⋅ x 2 i ⃗ + y 1 j ⃗ ⋅ y 2 j ⃗ = x 1 x 2 ⋅ i ⃗ 2 + x 1 y 2 ⋅ i ⃗ j ⃗ + y 1 x 2 ⋅ i ⃗ j ⃗ + y 1 y 2 ⋅ j ⃗ 2 \begin{aligned} \vec a\cdot \vec b&=(x_1\vec i+y_1\vec j)\cdot(x_2\vec i+y_2\vec j)\\ &=x_1i\cdot x_2\vec i+x_1\vec i\cdot y_2\vec j+y_1\vec j\cdot x_2\vec i+y_1\vec j\cdot y_2\vec j\\ &=x_1x_2\cdot \vec i^2+x_1y_2\cdot \vec i\vec j+y_1x_2\cdot \vec i\vec j+y_1y_2\cdot \vec j^2 \end{aligned} a b =(x1i +y1j )(x2i +y2j )=x1ix2i +x1i y2j +y1j x2i +y1j y2j =x1x2i 2+x1y2i j +y1x2i j +y1y2j 2
因为 i ⃗ \vec i i j ⃗ \vec j j 两向量的夹角是 90 ° 90\degree 90°,所以 cos ⁡ θ = 0 \cos\theta=0 cosθ=0,根据定义式 a ⋅ b = ∣ a ∣ ∣ b ∣ cos ⁡ θ a\cdot b=|a||b|\cos\theta ab=abcosθ,得到 i ⃗ ⋅ j ⃗ = 0 \vec i\cdot \vec j=0 i j =0。于是乎就消掉了两个单项式。
( 接 上 式 ) = x 1 x 2 ⋅ i ⃗ 2 + y 1 y 2 ⋅ j ⃗ 2 (接上式)=x_1x_2\cdot \vec i^2+y_1y_2\cdot \vec j^2 ()=x1x2i 2+y1y2j 2
又因为两个相同的向量 i ⃗ \vec i i 相乘等于 1   ( i ⃗ ⋅ i ⃗ = ∣ i ⃗ ∣ ∣ i ⃗ ∣ cos ⁡ θ = 1 ∗ 1 ∗ 1 = 1 ) 1~(\vec i\cdot \vec i=|\vec i||\vec i|\cos\theta=1*1*1=1) 1 (i i =i i cosθ=111=1),所以式子就变成了
( 接 上 式 ) = x 1 x 2 + y 1 y 2 (接上式)=x_1x_2+y_1y_2 ()=x1x2+y1y2
推广一下,就得到了向量 a ⃗ , b ⃗ \vec a,\vec b a ,b 在更高维时的证明。


应用

first 根据定义式 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ cos ⁡ θ \vec a \cdot \vec b=|\vec a||\vec b|\cos\theta a b =a b cosθ,移项一下,可以得到 θ = a c c   c o s a ⃗ ⋅ b ⃗ ∣ a ⃗ ∣ ∣ b ⃗ ∣ \theta=acc~cos\frac {\vec a \cdot \vec b} {|\vec a||\vec b|} θ=acc cosa b a b ,于是乎,可以用来求两向量间的夹角。

second 还有一个更便捷的用法,因为一个角大于 90 ° 90\degree 90° 时,他的 cos ⁡ \cos cos 值是负数,等于 90 ° 90\degree 90° 时,他的 cos ⁡ \cos cos 值是0,小于 90 ° 90\degree 90° 时,他的 cos ⁡ \cos cos 值是正数,所以,我们也可以利用 a ⃗ ⋅ b ⃗ \vec a \cdot \vec b a b 的值的正负来判断两向量的位置关系(通常用于判断是否垂直)。

叉积

定义

模长

叉积叉出来的是一个向量,他的模长等于 ∣ a ⃗ ∣ ∣ b ⃗ ∣ sin ⁡ θ |\vec a||\vec b|\sin\theta a b sinθ

方向

两个向量叉出来的向量我们规定它的方向垂直于那两个向量,并且满足右手定则1

计算式

一般来说,只有二、三维和七维的向量存在叉积,七维向量的叉积太神了我并不会,所以这里只能讲讲二和三维的。

先讲三维的,设 a ⃗ ( x 1 , y 1 , z 1 ) , b ⃗ ( x 2 , y 2 , z 2 ) \vec a(x_1,y_1,z_1),\vec b(x_2,y_2,z_2) a (x1,y1,z1),b (x2,y2,z2),那么他们的叉积可以写成行列式的形式:
a × b = ∣ i j k x 1 y 1 z 1 x 2 y 2 z 2 ∣ a\times b= \left| \begin{matrix} i & j & k\\ x_1 & y_1 & z_1\\ x_2 & y_2 & z_2 \end{matrix} \right| a×b=ix1x2jy1y2kz1z2

其中, i , j , k i,j,k i,j,k 是三个维度的单位向量,即 i ( 1 , 0 , 0 ) , j ( 0 , 1 , 0 ) , k ( 0 , 0 , 1 ) i(1,0,0),j(0,1,0),k(0,0,1) i(1,0,0),j(0,1,0),k(0,0,1),然后再推一推上面的柿子,得到:
= i ( y 1 z 2 − z 1 y 2 ) + j ( z 1 x 2 − x 1 z 2 ) + k ( x 1 y 2 − y 1 x 2 ) =i(y_1z_2-z_1y_2)+j(z_1x_2-x_1z_2)+k(x_1y_2-y_1x_2) =i(y1z2z1y2)+j(z1x2x1z2)+k(x1y2y1x2)

所以他们叉乘出来的向量的坐标就是 ( y 1 z 2 − z 1 y 2   ,   z 1 x 2 − x 1 z 2   ,   x 1 y 2 − y 1 x 2 ) (y_1z_2-z_1y_2~,~z_1x_2-x_1z_2~,~x_1y_2-y_1x_2) (y1z2z1y2 , z1x2x1z2 , x1y2y1x2)

二维叉积的话只需要让 z z z 坐标为 0 0 0 然后带入上式,就会得到坐标为 k ( x 1 y 2 − y 1 x 2 ) k(x_1y_2-y_1x_2) k(x1y2y1x2),即垂直于原来的两个向量,然后模长为 x 1 y 2 − y 1 x 2 x_1y_2-y_1x_2 x1y2y1x2

应用

first 根据叉积的方向,如果向量 a ⃗ \vec a a 通过顺时针旋转 180 ° 180\degree 180° 以内可以与向量 b ⃗ \vec b b 的方向相同,那么 c ⃗ \vec c c 的模长就是负数,反之,就是正数。

所以,可以通过判断叉积的模长的正负来判断两个向量间的旋转关系。(顺便就可以证明,叉积不满足交换律)

这个用法可以推广出一些其他的用法,比如折线拐向什么的,重点讲讲判断两线段是否相交

判断方法:跨立实验

如果两线段 A B AB AB C D CD CD 相交(方便理解,弄了个图),
在这里插入图片描述
那么,向量 A D ⃗ \vec {AD} AD A C ⃗ \vec {AC} AC 必定一个在 A B ⃗ \vec {AB} AB 左边,一个在右边。
显然,向量 D A ⃗ \vec {DA} DA D B ⃗ \vec {DB} DB 也必定 D C ⃗ \vec {DC} DC 的两边。

那么可以得出,只要满足这两个要求, A B AB AB C D CD CD 就相交。

second 两向量叉出来的新向量,它的模长在值上是与原先的两向量构成的平行四边形的面积是相等的,这个琢磨琢磨叉积的模长定义式就能知道。


  1. 当右手的四指的方向与向量 a ⃗ \vec a a 的方向相同时,四指自然向前弯曲 ( 0 ° < θ < 180 ° ) (0\degree<\theta<180\degree) (0°<θ<180°),方向可以与 b ⃗ \vec b b 相同,此时大拇指竖起来的方向就是 c ⃗ \vec c c 的方向。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值