向量积和数量积公式推导

在进行向量的数量积(点积)和向量积(叉积)的推导之前,我们先设 ( e x , e y , e z ) (\mathbf{e}_x, \mathbf{e}_y, \mathbf{e}_z) (ex,ey,ez) 为三维空间中的单位正交基底。这意味着每个基向量都是单位向量(即它们的长度为1),并且每对基向量之间都是正交的(即它们之间的夹角是90度,或者它们的点积为0)。
在这里插入图片描述

接下来,我们定义两个向量 a \mathbf{a} a b \mathbf{b} b,它们在这个基底下的坐标表示为 ( a x , a y , a z ) (a_x, a_y, a_z) (ax,ay,az) ( b x , b y , b z ) (b_x, b_y, b_z) (bx,by,bz)
a = a x e x + a y e y + a z e z \mathbf{a} = a_x \mathbf{e}_x + a_y \mathbf{e}_y + a_z \mathbf{e}_z a=axex+ayey+azez
b = b x e x + b y e y + b z e z \mathbf{b} = b_x \mathbf{e}_x + b_y \mathbf{e}_y + b_z \mathbf{e}_z b=bxex+byey+bzez

在这里插入图片描述

数量积(点积)

  • 设有两个向量 a = ( a x , a y , a z ) \mathbf{a} = (a_x, a_y, a_z) a=(ax,ay,az) b = ( b x , b y , b z ) \mathbf{b} = (b_x, b_y, b_z) b=(bx,by,bz)。这两个向量的点积定义为:
    a ⋅ b = a x b x + a y b y + a z b z \mathbf{a} \cdot \mathbf{b} = a_x b_x + a_y b_y + a_z b_z ab=axbx+ayby+azbz
    这是向量分量的对应乘积之和。

推导过程如下

  1. 首先写出向量点积的一般形式:
    a ⋅ b = ( a x e x + a y e y + a z e z ) ⋅ ( b x e x + b y e y + b z e z ) \mathbf{a} \cdot \mathbf{b} = (a_x \mathbf{e}_x + a_y \mathbf{e}_y + a_z \mathbf{e}_z) \cdot (b_x \mathbf{e}_x + b_y \mathbf{e}_y + b_z \mathbf{e}_z) ab=(axex+ayey+azez)(bxex+byey+bzez)

  2. 展开点积:
    a ⋅ b =   ( a x e x ⋅ b x e x ) + ( a x e x ⋅ b y e y ) + ( a x e x ⋅ b z e z ) + ( a y e y ⋅ b x e x ) + ( a y e y ⋅ b y e y ) + ( a y e y ⋅ b z e z ) + ( a z e z ⋅ b x e x ) + ( a z e z ⋅ b y e y ) + ( a z e z ⋅ b z e z ) \begin{align*} \mathbf{a} \cdot \mathbf{b} = & \ (a_x \mathbf{e}_x \cdot b_x \mathbf{e}_x) + (a_x \mathbf{e}_x \cdot b_y \mathbf{e}_y) + (a_x \mathbf{e}_x \cdot b_z \mathbf{e}_z) \\ & + (a_y \mathbf{e}_y \cdot b_x \mathbf{e}_x) + (a_y \mathbf{e}_y \cdot b_y \mathbf{e}_y) + (a_y \mathbf{e}_y \cdot b_z \mathbf{e}_z) \\ & + (a_z \mathbf{e}_z \cdot b_x \mathbf{e}_x) + (a_z \mathbf{e}_z \cdot b_y \mathbf{e}_y) + (a_z \mathbf{e}_z \cdot b_z \mathbf{e}_z) \end{align*} ab= (axexbxex)+(axexbyey)+(axexbzez)+(ayeybxex)+(ayeybyey)+(ayeybzez)+(azezbxex)+(azezbyey)+(azezbzez)

  3. 应用点积的性质:

    • 同向量点积为自己的模的平方,而基向量是单位向量: e x ⋅ e x = e y ⋅ e y = e z ⋅ e z = 1 \mathbf{e}_x \cdot \mathbf{e}_x = \mathbf{e}_y \cdot \mathbf{e}_y = \mathbf{e}_z \cdot \mathbf{e}_z = 1 exex=eyey=ezez=1
    • 不同基向量之间正交,点积为零: e x ⋅ e y = e x ⋅ e z = e y ⋅ e z = 0 \mathbf{e}_x \cdot \mathbf{e}_y = \mathbf{e}_x \cdot \mathbf{e}_z = \mathbf{e}_y \cdot \mathbf{e}_z = 0 exey=exez=eyez=0
  4. 将这些规则应用于展开的式子中:
    a ⋅ b =   ( a x b x e x ⋅ e x ) + ( 0 ) + ( 0 ) + ( 0 ) + ( a y b y e y ⋅ e y ) + ( 0 ) + ( 0 ) + ( 0 ) + ( a z b z e z ⋅ e z ) \begin{align*} \mathbf{a} \cdot \mathbf{b} = & \ (a_x b_x \mathbf{e}_x \cdot \mathbf{e}_x) + (0) + (0) \\ & + (0) + (a_y b_y \mathbf{e}_y \cdot \mathbf{e}_y) + (0) \\ & + (0) + (0) + (a_z b_z \mathbf{e}_z \cdot \mathbf{e}_z) \end{align*} ab= (axbxexex)+(0)+(0)+(0)+(aybyeyey)+(0)+(0)+(0)+(azbzezez)

  5. 简化结果:
    a ⋅ b = a x b x + a y b y + a z b z \mathbf{a} \cdot \mathbf{b} = a_x b_x + a_y b_y + a_z b_z ab=axbx+ayby+azbz

这样,我们得到了向量点积的标准结果:两个向量对应分量的乘积之和。

向量积(叉积)

  • 向量的叉积定义为:

a × b = ∣ e x e y e z a x a y a z b x b y b z ∣ \mathbf{a} \times \mathbf{b} = \begin{vmatrix} \mathbf{e}_x & \mathbf{e}_y & \mathbf{e}_z \\ a_x & a_y & a_z \\ b_x & b_y & b_z \end{vmatrix} a×b= exaxbxeyaybyezazbz

推导过程如下

  1. 先写出向量叉积的一般形式:
    a × b = ( a x e x + a y e y + a z e z ) × ( b x e x + b y e y + b z e z ) \mathbf{a} \times \mathbf{b} = (a_x \mathbf{e}_x + a_y \mathbf{e}_y + a_z \mathbf{e}_z) \times (b_x \mathbf{e}_x + b_y \mathbf{e}_y + b_z \mathbf{e}_z) a×b=(axex+ayey+azez)×(bxex+byey+bzez)

  2. 展开叉积:
    a × b =   ( a x e x × b x e x ) + ( a x e x × b y e y ) + ( a x e x × b z e z ) + ( a y e y × b x e x ) + ( a y e y × b y e y ) + ( a y e y × b z e z ) + ( a z e z × b x e x ) + ( a z e z × b y e y ) + ( a z e z × b z e z ) \begin{align*} \mathbf{a} \times \mathbf{b} = & \ (a_x \mathbf{e}_x \times b_x \mathbf{e}_x) + (a_x \mathbf{e}_x \times b_y \mathbf{e}_y) + (a_x \mathbf{e}_x \times b_z \mathbf{e}_z) \\ & + (a_y \mathbf{e}_y \times b_x \mathbf{e}_x) + (a_y \mathbf{e}_y \times b_y \mathbf{e}_y) + (a_y \mathbf{e}_y \times b_z \mathbf{e}_z) \\ & + (a_z \mathbf{e}_z \times b_x \mathbf{e}_x) + (a_z \mathbf{e}_z \times b_y \mathbf{e}_y) + (a_z \mathbf{e}_z \times b_z \mathbf{e}_z) \end{align*} a×b= (axex×bxex)+(axex×byey)+(axex×bzez)+(ayey×bxex)+(ayey×byey)+(ayey×bzez)+(azez×bxex)+(azez×byey)+(azez×bzez)

  3. 应用叉积的性质:

    • 同向量叉积为零: e x × e x = e y × e y = e z × e z = 0 \mathbf{e}_x \times \mathbf{e}_x = \mathbf{e}_y \times \mathbf{e}_y = \mathbf{e}_z \times \mathbf{e}_z = 0 ex×ex=ey×ey=ez×ez=0
    • 基向量间叉积: e x × e y = e z , e y × e z = e x , e z × e x = e y \mathbf{e}_x \times \mathbf{e}_y = \mathbf{e}_z, \\\mathbf{e}_y \times \mathbf{e}_z = \mathbf{e}_x, \\\mathbf{e}_z \times \mathbf{e}_x = \mathbf{e}_y ex×ey=ez,ey×ez=ex,ez×ex=ey
    • 叉积的反交换律: e x × e y = − e y × e x \mathbf{e}_x \times \mathbf{e}_y = -\mathbf{e}_y \times \mathbf{e}_x ex×ey=ey×ex
  4. 将这些规则应用于展开的式子中:

  • 根据基向量叉积规则,我们将 e x × e y \mathbf{e}_x \times \mathbf{e}_y ex×ey, e y × e z \mathbf{e}_y \times \mathbf{e}_z ey×ez ,和 e z × e x \mathbf{e}_z \times \mathbf{e}_x ez×ex 替换为相应的基向量。
  • 使用反交换律,比如 e x × e z = − e z × e x \mathbf{e}_x \times \mathbf{e}_z = -\mathbf{e}_z \times \mathbf{e}_x ex×ez=ez×ex
  • 我们得到:
    a × b =   ( 0 ) + ( a x b y e x × e y ) + ( − a x b z e z × e x ) + ( − a y b x e x × e y ) + ( 0 ) + ( a y b z e y × e z ) + ( a z b x e z × e x ) + ( − a z b y e y × e z ) + ( 0 ) \begin{align*} \mathbf{a} \times \mathbf{b} = & \ (0) + (a_x b_y \mathbf{e}_x \times \mathbf{e}_y) + (-a_x b_z \mathbf{e}_z \times \mathbf{e}_x) \\ & + (-a_y b_x \mathbf{e}_x \times \mathbf{e}_y) + (0) + (a_y b_z \mathbf{e}_y \times \mathbf{e}_z) \\ & + (a_z b_x \mathbf{e}_z \times \mathbf{e}_x) + (-a_z b_y \mathbf{e}_y\times \mathbf{e}_z) + (0) \end{align*} a×b= (0)+(axbyex×ey)+(axbzez×ex)+(aybxex×ey)+(0)+(aybzey×ez)+(azbxez×ex)+(azbyey×ez)+(0)
  1. 简化结果:
  • 继续简化,我们得到:

    a × b =   ( 0 ) + ( a x b y e z ) + ( − a x b z e y ) + ( − a y b x e z ) + ( 0 ) + ( a y b z e x ) + ( a z b x e y ) + ( − a z b y e x ) + ( 0 ) \begin{align*} \mathbf{a} \times \mathbf{b} = & \ (0) + (a_x b_y \mathbf{e}_z) + (-a_x b_z \mathbf{e}_y) \\ & + (-a_y b_x \mathbf{e}_z)+ (0) + (a_y b_z \mathbf{e}_x) \\ & + (a_z b_x \mathbf{e}_y) + (-a_z b_y \mathbf{e}_x) + (0) \end{align*} a×b= (0)+(axbyez)+(axbzey)+(aybxez)+(0)+(aybzex)+(azbxey)+(azbyex)+(0)

    a × b = ( a y b z − a z b y ) e x + ( a z b x − a x b z ) e y + ( a x b y − a y b x ) e z \mathbf{a} \times \mathbf{b} = (a_y b_z - a_z b_y)\mathbf{e}_x + (a_z b_x - a_x b_z)\mathbf{e}_y + (a_x b_y - a_y b_x)\mathbf{e}_z a×b=(aybzazby)ex+(azbxaxbz)ey+(axbyaybx)ez

这就是向量叉积的最终结果,其中每一项是通过应用基向量间的叉积规则以及反交换律来获得的。这个结果表示了向量 a \mathbf{a} a 和向量 b \mathbf{b} b 叉积的三个分量。

最上面那两幅坐标图是让gpt画的,他给的代码如下

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# 创建一个3D坐标系
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')

# 设置坐标轴的范围
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])
ax.set_zlim([0, 1])

# 设置坐标轴的标签
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')

# 绘制基向量
ax.quiver(0, 0, 0, 1, 0, 0, color='r', arrow_length_ratio=0.1)
ax.quiver(0, 0, 0, 0, 1, 0, color='g', arrow_length_ratio=0.1)
ax.quiver(0, 0, 0, 0, 0, 1, color='b', arrow_length_ratio=0.1)

# 添加标签
ax.text(1, 0, 0, r'$\mathbf{e}_x$', color='r', fontsize=15)
ax.text(0, 1, 0, r'$\mathbf{e}_y$', color='g', fontsize=15)
ax.text(0, 0, 1, r'$\mathbf{e}_z$', color='b', fontsize=15)

plt.title('3D Coordinate System with Unit Orthogonal Basis Vectors')
plt.show()

# 创建一个新的3D坐标系
fig = plt.figure(figsize=(12, 8))
ax = fig.add_subplot(111, projection='3d')

# 设置坐标轴的范围
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])
ax.set_zlim([0, 1])

# 设置坐标轴的标签
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')

# 绘制基向量
ax.quiver(0, 0, 0, 1, 0, 0, color='r', arrow_length_ratio=0.1)
ax.quiver(0, 0, 0, 0, 1, 0, color='g', arrow_length_ratio=0.1)
ax.quiver(0, 0, 0, 0, 0, 1, color='b', arrow_length_ratio=0.1)

# 假设的向量a和b的坐标(可以根据需要调整)
a_x, a_y, a_z = 0.3, 0.6, 0.8
b_x, b_y, b_z = 0.5, 0.7, 0.3

# 绘制向量a和b
ax.quiver(0, 0, 0, a_x, a_y, a_z, color='cyan', arrow_length_ratio=0.1, label=r'$\mathbf{a}$')
ax.quiver(0, 0, 0, b_x, b_y, b_z, color='magenta', arrow_length_ratio=0.1, label=r'$\mathbf{b}$')

# 添加虚线标注到各个面
# 向量a的虚线
ax.plot([a_x, a_x], [a_y, a_y], [0, a_z], color='cyan', linestyle='dashed')
ax.plot([a_x, a_x], [0, a_y], [a_z, a_z], color='cyan', linestyle='dashed')
ax.plot([0, a_x], [a_y, a_y], [a_z, a_z], color='cyan', linestyle='dashed')

# 向量b的虚线
ax.plot([b_x, b_x], [b_y, b_y], [0, b_z], color='magenta', linestyle='dashed')
ax.plot([b_x, b_x], [0, b_y], [b_z, b_z], color='magenta', linestyle='dashed')
ax.plot([0, b_x], [b_y, b_y], [b_z, b_z], color='magenta', linestyle='dashed')

# 添加基向量标签
ax.text(1, 0, 0, r'$\mathbf{e}_x$', color='r', fontsize=15)
ax.text(0, 1, 0, r'$\mathbf{e}_y$', color='g', fontsize=15)
ax.text(0, 0, 1, r'$\mathbf{e}_z$', color='b', fontsize=15)

# 添加向量a和b的标签
ax.text(a_x, a_y, a_z, r'$\mathbf{a}$', color='cyan', fontsize=15)
ax.text(b_x, b_y, b_z, r'$\mathbf{b}$', color='magenta', fontsize=15)

# 标注向量坐标
ax.text(a_x / 2, a_y / 2, a_z / 2, f'({a_x}, {a_y}, {a_z})', color='cyan', fontsize=12)
ax.text(b_x / 2, b_y / 2, b_z / 2, f'({b_x}, {b_y}, {b_z})', color='magenta', fontsize=12)

plt.title('3D Coordinate System with Unit Orthogonal Basis Vectors, Vectors a and b')
plt.legend()
plt.show()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值