矢量叉乘,向量外积

矢量叉乘,向量外积

原创不易,路过的各位大佬请点个赞

在这里插入图片描述

1. 矢量叉乘定义

定义两个向量 a \mathbf{a} a b \mathbf{b} b,他们的叉乘可以写为
a × b \mathbf{a}\times\mathbf{b} a×b

本质上向量叉乘为向量旋转,满足右手螺旋准则;
叉乘结果是一个向量,向量模长是向量A,B组成平行四边形的面积;向量方向是垂直于向量A,B组成的平面;也叫向量积
在这里插入图片描述

与点乘不同之处是:点乘结果是一个数,表示两个向量的投影关系,也叫数量积
a ⋅ b = ∣ a ∣ ∣ b ∣ cos ⁡ θ \mathbf{a}\cdot\mathbf{b}=|\mathbf{a}||\mathbf{b}|\cos\theta ab=abcosθ

2. 模长

∣ c ∣ = ∣ a × b ∣ = ∣ a ∣ ∣ b ∣ sin ⁡ θ |\mathbf{c}|=|\mathbf{a}\times\mathbf{b}|=|\mathbf{a}||\mathbf{b}|\sin\theta c=a×b=absinθ
∣ c ∣ |\mathbf{c}| c长度在数值上等于以 a \mathbf{a} a b \mathbf{b} b,夹角为θ组成的平行四边形的面积。
而c的方向垂直于 a \mathbf{a} a b \mathbf{b} b所决定的平面, c \mathbf{c} c的指向按右手定则从a转向b来确定。

3. 方向

a \mathbf{a} a向量与 b \mathbf{b} b向量的向量积的方向与这两个向量所在平面垂直,且遵守右手定则。(一个简单的确定满足“右手定则”的结果向量的方向的方法是这样的:若坐标系是满足右手定则的,当右手的四指从 a \mathbf{a} a以不超过180度的转角转向b时,竖起的大拇指指向是 c \mathbf{c} c的方向。)
在这里插入图片描述

4. 坐标运算

向量 a \mathbf{a} a的坐标表示
a = ( a x , a y , a z ) \mathbf{a}=(a_x, a_y, a_z) a=(ax,ay,az)
向量 a \mathbf{a} a的坐标轴矢量表示
a = a x i + a y j + a z k \mathbf{a}=a_xi+a_yj+ a_zk a=axi+ayj+azk

其中矢量的x轴、y轴、z轴的单位矢量i、j、k、满足以下关系

i × j = k = − j × i j × k = i = − k × j k × i = j = − i × k i × i = j × j = k × k = 0 i\times j=k=-j\times i\\j\times k=i=-k\times j\\k\times i=j=-i\times k\\ i\times i=j\times j=k\times k=0 i×j=k=j×ij×k=i=k×jk×i=j=i×ki×i=j×j=k×k=0
其中的0为零矢量。
附加点乘的运算规则
i ⋅ j = k = − j × i j ⋅ k = i = − k ⋅ j k ⋅ i = j = − i ⋅ k i ⋅ i = j ⋅ j = k ⋅ k = 1 i\cdot j=k=-j\times i\\j\cdot k=i=-k\cdot j\\k\cdot i=j=-i\cdot k\\ i\cdot i=j\cdot j=k\cdot k=1 ij=k=j×ijk=i=kjki=j=ikii=jj=kk=1

a × b = ∣ i j k a x a y a z b x b y b z ∣ = ∣ a y a z b y b z ∣ i − ∣ a x a z b x b z ∣ j + ∣ a x a y b x b y ∣ k = ( a y b z − a z b y ) i + ( a z b x − a x b z ) j + ( a x b y − a y b x ) k \begin{aligned} \mathbf{a}\times\mathbf{b}&=\begin{vmatrix} i&j&k\\ a_x&a_y&a_z\\b_x&b_y&b_z\end{vmatrix}\\ &=\begin{vmatrix}a_y&a_z\\b_y&b_z\end{vmatrix}i -\begin{vmatrix}a_x&a_z\\b_x&b_z\end{vmatrix}j + \begin{vmatrix}a_x&a_y\\b_x&b_y\end{vmatrix}k \\ &=(a_yb_z-a_zb_y)i + (a_zb_x-a_xb_z)j + (a_xb_y-a_yb_x)k \end{aligned} a×b=iaxbxjaybykazbz=aybyazbziaxbxazbzj+axbxaybyk=(aybzazby)i+(azbxaxbz)j+(axbyaybx)k

6. 叉乘矩阵(斜对称矩阵)

每一个矢量都一个对应的斜对称矩阵, a \mathbf{a} a
[ a × ] = [ 0 − a y a z a y 0 − a x − a z a x 0 ] [\mathbf{a}\times]=\begin{bmatrix}0&-a_y&a_z\\a_y&0&-a_x\\ -a_z &a_x &0\end{bmatrix} [a×]=0ayazay0axazax0

则两个矢量的叉乘可以写为
a × b = [ a × ] b = [ 0 − a y a z a y 0 − a x − a z a x 0 ] [ b x b y b z ] \begin{aligned} \mathbf{a}\times\mathbf{b}&=[\mathbf{a}\times]\mathbf{b}\\ &=\begin{bmatrix}0&-a_y&a_z\\a_y&0&-a_x\\ -a_z &a_x &0\end{bmatrix}\begin{bmatrix}b_x\\b_y\\ b_z\end{bmatrix} \end{aligned} a×b=[a×]b=0ayazay0axazax0bxbybz

性质:( A = [ a × ] A=[\mathbf{a}\times] A=[a×]
1- A T = − A A^T=-A AT=A
2- A A A B B B为斜对称矩阵,则 A + B A+B A+B为斜对称矩阵
3- k k k为偶数, A k A^k Ak为对称矩阵; k k k为奇数, A k A^k Ak为斜对称矩阵;

6. 叉乘运算规则

1、交换律: a × b = − b × a a\times b=-b\times a a×b=b×a

2、分配律: a × ( b + c ) = a × b + a × c a\times (b+c)=a\times b +a\times c a×b+c)=a×b+a×c

3、与标量r相乘: r a × b = r ( a × b ) ra\times b=r(a\times b ) ra×b=r(a×b)

4、不满足结合律,但满足雅可比恒等式:: a × ( b × c ) + b × ( c × a ) + c × ( a × b ) = 0 a×(b×c)+b×(c×a)+c×(a×b)=0 a×b×c+b×c×a+c×a×b=0

5 、 两个非零向量a和b平行,当且仅当 a × b = 0 a×b=0 a×b=0

6、 拉格朗日公式
( a × b ) × c = b ( a ⋅ c ) − a ( b ⋅ c ) (a×b)×c=b(a·c)-a(b·c) a×b×c=bacabc
a × ( b × c ) = b ( a ⋅ c ) − c ( a ⋅ b ) a×(b×c)=b(a·c)-c(a·b) a×b×c=baccab
证明如下图
在这里插入图片描述
原创不易,路过的各位大佬请点个赞

### 矢量的概念与实现 矢量(Vector Cross Product),也称为向量积,在三维空间中定义为两个向量之间的运算,其结果是一个新的向量。这个新向量的方向垂直于原始两个向量所构成的平面,并遵循右手定则[^4]。 #### 数学定义 如果给定两个向量 \(\vec{A} = (a_1, a_2, a_3)\) 和 \(\vec{B} = (b_1, b_2, b_3)\),它们的可以表示为: \[ \vec{A} \times \vec{B} = \begin{vmatrix} \hat{i} & \hat{j} & \hat{k}\\ a_1 & a_2 & a_3\\ b_1 & b_2 & b_3 \end{vmatrix} = ((a_2b_3 - a_3b_2), -(a_1b_3 - a_3b_1), (a_1b_2 - a_2b_1)) \] 其中,\(\hat{i}, \hat{j}, \hat{k}\) 是标准正交基底向量。 #### 编程中的实现方式 以下是 Python 中的一个简单实现示例,用于计算两个三维向量: ```python import numpy as np def vector_cross_product(v1, v2): """ 计算两个三维向量 参数: v1: list 或 ndarray, 表示第一个向量 [a1, a2, a3] v2: list 或 ndarray, 表示第二个向量 [b1, b2, b3] 返回: result: ndarray, 的结果向量 """ # 使用 NumPy 的 cross 函数来简化计算过程 result = np.cross(v1, v2) return result # 测试用例 v1 = [1, 0, 0] v2 = [0, 1, 0] result = vector_cross_product(v1, v2) print("The cross product of", v1, "and", v2, "is:", result.tolist()) ``` 上述代码利用了 `numpy` 库中的 `cross` 方法来进行高效的矩阵运算。如果没有外部库支持,则可以通过手动编写函数完成相同功能: ```python def manual_vector_cross_product(a, b): c_x = a[1]*b[2] - a[2]*b[1] c_y = a[2]*b[0] - a[0]*b[2] c_z = a[0]*b[1] - a[1]*b[0] return [c_x, c_y, c_z] # 测试用例 v1 = [1, 0, 0] v2 = [0, 1, 0] manual_result = manual_vector_cross_product(v1, v2) print("Manual calculation gives:", manual_result) ``` 以上两种方法均能有效求解两向量间的关系。 #### 结果解释 通过上述程序运行后得到的结果表明,当输入 \(v1=[1, 0, 0]\) 和 \(v2=[0, 1, 0]\) 时,输出应为 `[0, 0, 1]`,这正是预期方向上的单位法线向量[^5]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑壳二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值