线性代数 - 叉积的分量形式与矩阵形式

作者:二分掌柜的日期:2025/11/16

线性代数 - 叉积的分量形式与矩阵形式

flyfish

在这里插入图片描述

单位基向量与 向量的分解

1. 三维坐标系与单位基向量

图中蓝色的x轴、红色的y轴、绿色的z轴构成了一个右手系三维笛卡尔坐标系(符合“右手定则”的空间定向)。

在这个坐标系中,有三个单位基向量
i^\hat{i}i^(蓝色箭头):沿x轴方向的单位向量;
j^\hat{j}j^​(红色箭头):沿y轴方向的单位向量;
k^\hat{k}k^(绿色箭头):沿z轴方向的单位向量。

这三个基向量两两垂直(夹角为90∘90^\circ90∘)

2. 向量a⃗\vec{a}a的分量分解

黑色箭头表示的向量a⃗\vec{a}a可以分解为三个基向量方向上的分量
axa_xax​(灰色x方向箭头):a⃗\vec{a}a在x轴(i^\hat{i}i^方向)上的分量;
aya_yay​(灰色y方向箭头):a⃗\vec{a}a在y轴(j^\hat{j}j^​方向)上的分量;
aza_zaz​(灰色z方向箭头):a⃗\vec{a}a在z轴(k^\hat{k}k^方向)上的分量。

从代数上,向量a⃗\vec{a}a可以表示为这三个分量与对应基向量的线性组合,类似三维空间里一个点需要用三个数来表示:
a⃗=axi^+ayj^+azk^ \vec{a} = a_x\hat{i} + a_y\hat{j} + a_z\hat{k}a=ax​i^+ay​j^​+az​k^

叉积的分量形式

步骤1:明确基向量的叉积规则

三维空间的单位基向量 i^\hat{i}i^(x轴)、j^\hat{j}j^​(y轴)、k^\hat{k}k^(z轴)仍满足以下性质:

  • 自身叉乘为零:i^×i^=j^×j^=k^×k^=0\hat{i} \times \hat{i} = \hat{j} \times \hat{j} = \hat{k} \times \hat{k} = 0i^×i^=j^​×j^​=k^×k^=0;
  • 循环正方向(右手定则):i^×j^=k^\hat{i} \times \hat{j} = \hat{k}i^×j^​=k^,j^×k^=i^\hat{j} \times \hat{k} = \hat{i}j^​×k^=i^,k^×i^=j^\hat{k} \times \hat{i} = \hat{j}k^×i^=j^​;
  • 交换顺序变号:j^×i^=−k^\hat{j} \times \hat{i} = -\hat{k}j^​×i^=−k^,k^×j^=−i^\hat{k} \times \hat{j} = -\hat{i}k^×j^​=−i^,i^×k^=−j^\hat{i} \times \hat{k} = -\hat{j}i^×k^=−j^​。

步骤2:将向量 a⃗\vec{a}a 和 b⃗\vec{b}b 用基向量展开

设小写向量 a⃗\vec{a}a 沿x、y、z轴的分量为 ax,ay,aza_x, a_y, a_zax​,ay​,az​,b⃗\vec{b}b 的分量为 bx,by,bzb_x, b_y, b_zbx​,by​,bz​,则:
a⃗=axi^+ayj^+azk^,b⃗=bxi^+byj^+bzk^ \vec{a} = a_x\hat{i} + a_y\hat{j} + a_z\hat{k}, \quad \vec{b} = b_x\hat{i} + b_y\hat{j} + b_z\hat{k}a=ax​i^+ay​j^​+az​k^,b=bx​i^+by​j^​+bz​k^

步骤3:利用叉积的分配律展开 a⃗×b⃗\vec{a} \times \vec{b}a×b

按分配律将两个向量的基向量形式逐项叉乘(共9项):
a⃗×b⃗=(axi^+ayj^+azk^)×(bxi^+byj^+bzk^)=axi^×bxi^+axi^×byj^+axi^×bzk^+ayj^×bxi^+ayj^×byj^+ayj^×bzk^+azk^×bxi^+azk^×byj^+azk^×bzk^. \begin{align*} \vec{a} \times \vec{b} &= (a_x\hat{i} + a_y\hat{j} + a_z\hat{k}) \times (b_x\hat{i} + b_y\hat{j} + b_z\hat{k}) \\ &= a_x\hat{i} \times b_x\hat{i} + a_x\hat{i} \times b_y\hat{j} + a_x\hat{i} \times b_z\hat{k} \\ &\quad + a_y\hat{j} \times b_x\hat{i} + a_y\hat{j} \times b_y\hat{j} + a_y\hat{j} \times b_z\hat{k} \\ &\quad + a_z\hat{k} \times b_x\hat{i} + a_z\hat{k} \times b_y\hat{j} + a_z\hat{k} \times b_z\hat{k}. \end{align*}a×b​=(ax​i^+ay​j^​+az​k^)×(bx​i^+by​j^​+bz​k^)=ax​i^×bx​i^+ax​i^×by​j^​+ax​i^×bz​k^+ay​j^​×bx​i^+ay​j^​×by​j^​+ay​j^​×bz​k^+az​k^×bx​i^+az​k^×by​j^​+az​k^×bz​k^.​

步骤4:利用基向量规则化简每一项

对9项分别应用步骤1的规则,消去零项并整理符号:

  1. axbxi^×i^=0a_xb_x\hat{i} \times \hat{i} = 0ax​bx​i^×i^=0(自身叉乘为零);
  2. axbyi^×j^=axby⋅k^a_xb_y\hat{i} \times \hat{j} = a_xb_y \cdot \hat{k}ax​by​i^×j^​=ax​by​⋅k^(循环正方向);
  3. axbzi^×k^=axbz⋅(−j^)a_xb_z\hat{i} \times \hat{k} = a_xb_z \cdot (-\hat{j})ax​bz​i^×k^=ax​bz​⋅(−j^​)(交换顺序变号);
  4. aybxj^×i^=aybx⋅(−k^)a_yb_x\hat{j} \times \hat{i} = a_yb_x \cdot (-\hat{k})ay​bx​j^​×i^=ay​bx​⋅(−k^)(交换顺序变号);
  5. aybyj^×j^=0a_yb_y\hat{j} \times \hat{j} = 0ay​by​j^​×j^​=0(自身叉乘为零);
  6. aybzj^×k^=aybz⋅i^a_yb_z\hat{j} \times \hat{k} = a_yb_z \cdot \hat{i}ay​bz​j^​×k^=ay​bz​⋅i^(循环正方向);
  7. azbxk^×i^=azbx⋅j^a_zb_x\hat{k} \times \hat{i} = a_zb_x \cdot \hat{j}az​bx​k^×i^=az​bx​⋅j^​(循环正方向);
  8. azbyk^×j^=azby⋅(−i^)a_zb_y\hat{k} \times \hat{j} = a_zb_y \cdot (-\hat{i})az​by​k^×j^​=az​by​⋅(−i^)(交换顺序变号);
  9. azbzk^×k^=0a_zb_z\hat{k} \times \hat{k} = 0az​bz​k^×k^=0(自身叉乘为零)。

步骤5:合并同类基向量的项

按 i^\hat{i}i^(x轴)、j^\hat{j}j^​(y轴)、k^\hat{k}k^(z轴)分类,合并同一方向的非零项:

  • i^\hat{i}i^ 方向:项6 + 项8 = aybzi^−azbyi^=(aybz−azby)i^a_yb_z\hat{i} - a_zb_y\hat{i} = (a_yb_z - a_zb_y)\hat{i}ay​bz​i^−az​by​i^=(ay​bz​−az​by​)i^;
  • j^\hat{j}j^​ 方向:项3 + 项7 = −axbzj^+azbxj^=(azbx−axbz)j^-a_xb_z\hat{j} + a_zb_x\hat{j} = (a_zb_x - a_xb_z)\hat{j}−ax​bz​j^​+az​bx​j^​=(az​bx​−ax​bz​)j^​;
  • k^\hat{k}k^ 方向:项2 + 项4 = axbyk^−aybxk^=(axby−aybx)k^a_xb_y\hat{k} - a_yb_x\hat{k} = (a_xb_y - a_yb_x)\hat{k}ax​by​k^−ay​bx​k^=(ax​by​−ay​bx​)k^。

最终结果

a⃗×b⃗=(aybz−azby)i^+(azbx−axbz)j^+(axby−aybx)k^ \vec{a} \times \vec{b} = \boxed{(a_yb_z - a_zb_y)\hat{i} + (a_zb_x - a_xb_z)\hat{j} + (a_xb_y - a_yb_x)\hat{k}}a×b=(ay​bz​−az​by​)i^+(az​bx​−ax​bz​)j^​+(ax​by​−ay​bx​)k^​

叉积的矩阵形式(三阶行列式)

叉积 a⃗×b⃗\vec{a} \times \vec{b}a×b 最标准的矩阵表示的是 以基向量为第一行、a⃗\vec{a}a 分量为第二行、b⃗\vec{b}b 分量为第三行的三阶行列式,矩阵结构与图中坐标系(i^\hat{i}i^-x轴、j^\hat{j}j^​-y轴、k^\hat{k}k^-z轴)完全对应:
a⃗×b⃗=∣i^j^k^axayazbxbybz∣ \vec{a} \times \vec{b} = \begin{vmatrix} \hat{i} & \hat{j} & \hat{k} \\ a_x & a_y & a_z \\ b_x & b_y & b_z \end{vmatrix}a×b=​i^ax​bx​​j^​ay​by​​k^az​bz​​​

矩阵中各元素的含义:

第一行:i^,j^,k^\hat{i}, \hat{j}, \hat{k}i^,j^​,k^(x、y、z轴的单位基向量,蓝色、红色、绿色箭头);
第二行:ax,ay,aza_x, a_y, a_zax​,ay​,az​(向量 a⃗\vec{a}a 沿x、y、z轴的分量);
第三行:bx,by,bzb_x, b_y, b_zbx​,by​,bz​(向量 b⃗\vec{b}b 沿x、y、z轴的分量)。

矩阵(行列式)展开与分量形式的关联

这个三阶行列式按 第一行(基向量行)展开,就得到之前叉积分量形式,衔接矩阵运算与代数表达式:
∣i^j^k^axayazbxbybz∣=i^⋅∣ayazbybz∣−j^⋅∣axazbxbz∣+k^⋅∣axaybxby∣ \begin{vmatrix} \hat{i} & \hat{j} & \hat{k} \\ a_x & a_y & a_z \\ b_x & b_y & b_z \end{vmatrix} = \hat{i} \cdot \begin{vmatrix} a_y & a_z \\ b_y & b_z \end{vmatrix} - \hat{j} \cdot \begin{vmatrix} a_x & a_z \\ b_x & b_z \end{vmatrix} + \hat{k} \cdot \begin{vmatrix} a_x & a_y \\ b_x & b_y \end{vmatrix}​i^ax​bx​​j^​ay​by​​k^az​bz​​​=i^⋅​ay​by​​az​bz​​​−j^​⋅​ax​bx​​az​bz​​​+k^⋅​ax​bx​​ay​by​​​

再计算每个二阶行列式(主对角线减副对角线):
∣ayazbybz∣=aybz−azby\begin{vmatrix} a_y & a_z \\ b_y & b_z \end{vmatrix} = a_y b_z - a_z b_y​ay​by​​az​bz​​​=ay​bz​−az​by​(i^\hat{i}i^ 方向分量);

∣axazbxbz∣=axbz−azbx\begin{vmatrix} a_x & a_z \\ b_x & b_z \end{vmatrix} = a_x b_z - a_z b_x​ax​bx​​az​bz​​​=ax​bz​−az​bx​(乘以负号后为 j^\hat{j}j^​ 方向分量);

∣axaybxby∣=axby−aybx\begin{vmatrix} a_x & a_y \\ b_x & b_y \end{vmatrix} = a_x b_y - a_y b_x​ax​bx​​ay​by​​​=ax​by​−ay​bx​(k^\hat{k}k^ 方向分量)。

最终结果和之前一致,矩阵形式是叉积的“紧凑表达”,展开后就是具体分量:
a⃗×b⃗=(aybz−azby)i^+(azbx−axbz)j^+(axby−aybx)k^ \vec{a} \times \vec{b} = (a_y b_z - a_z b_y)\hat{i} + (a_z b_x - a_x b_z)\hat{j} + (a_x b_y - a_y b_x)\hat{k}a×b=(ay​bz​−az​by​)i^+(az​bx​−ax​bz​)j^​+(ax​by​−ay​bx​)k^


线性代数 - 叉积的分量形式与矩阵形式》 是转载文章,点击查看原文


相关推荐


docker启动失败
AI小胖2025/11/15

** ** 问题很明确了:Failed at step LIMITS spawning /usr/bin/dockerd: Operation not permitted 和 status=205/LIMITS。这表明 systemd 在设置资源限制时遇到了权限问题。 解决方案: 1. 移除或修复有问题的资源限制配置 # 移除我们之前创建的 override 配置 rm -f /etc/systemd/system/docker.service.d/override.conf # 重新加载


实时大数据计算中,Spark的滑动窗口和允许消息迟到机制
sword_csdn2025/11/13

目录 1.开发环境2.几句话先概括3.例子说明3.1.参数配置3.2.窗口是如何产生的3.3.Trigger触发机制3.4.迟到的消息数据 最近做了个实时大数据分析的项目,发现很多东西都忘记了,属实没有好好整理笔记之过,趁眼下闲暇,做个回忆和记录。 1.开发环境 这次环境采用Java17+,Scala2.13,Spark的版本为4.0.0,且基于Kafka创建读取流。其它环境可参考以下maven pom。 <?xml version="1.0" encoding="UTF-8"


centos运维常用命令
KV_T2025/11/12

CentOS 服务器运维中,以下是按场景分类的常用命令,涵盖系统监控、用户管理、服务管理、文件操作等核心场景,适合日常运维参考: 一、系统状态监控 查看系统负载 uptime # 显示系统运行时间、用户数、1/5/15分钟负载 w # 更详细的负载信息,包括登录用户和进程 CPU 监控 top # 实时查看CPU、内存占用(按q退出) htop # 交互式CPU/内存监控(需安装:yum install htop) lscpu


C++中实现多线程编程
Alex艾力的IT数字空间2025/11/10

一、基于POSIX线程库(pthreads) 适用场景:Linux/Unix系统、需要底层线程控制或兼容旧代码。 核心步骤: 包含头文件:#include <pthread.h> 定义线程函数:返回类型为void*,参数为void*指针。 创建线程:使用pthread_create函数。 等待线程结束:使用pthread_join回收资源。 示例代码: #include <iostream> #include <pthread.h> void* thread


微信小程序开发案例 | 个人相册小程序(上)
志昂张呀2025/11/8

阶段案例-个人相册小程序 01、准备工作 1 导入代码包 为了节约时间,这里我们直接把完成的小程序空白模板代码包templateDemo复制一份并重命名为demo07_myAlbum, 导入开发工具等待改造。 2 启动服务器 这里我们使用本地电脑安装phpStudy v8.1套件来模拟服务器效果,本次阶段案例不需要使用MySQL数据库,因此直接启动Apache或者Nginx来模拟Web服务器即可。 以Nginx为例,启动效果如图7-8所示。 ■ 图7-8  ph


Python 的内置函数 getattr
IMPYLH2025/11/6

Python 内建函数列表 > Python 的内置函数 getattr def getattr(obj, name:str): ''' 获取属性的值 :param obj: 一个对象 :param name: 属性的名字 ''' Python 的内置函数 getattr 是一个非常有用的反射工具,主要用于动态获取对象的属性或方法。其基本语法为:getattr(object, name[, default]),其中 object 是目标对象,nam


Flash游戏破解参考
FD_20132025/11/1

编 者按:工作、学习之余,玩一会Flash小游戏,放松一下紧绷的神经,是不少朋友的最爱。不过,大部分Flash小游戏并不提供SWF文件的下载,想玩游 戏就必需打开网页,也给我们带来了不小的麻烦。当然,小小的问题难不倒我们,通过各种途径,我们依然可以获取各种被加密的SWF文件,从而无需联网,便能 在本地运行Flash小游戏。 对症下药,玩转Flash游戏下载 Flash游戏下载,关键便在于获取SWF文件的真实URL地址。由于不同类型的Flash游戏,采用的加密、运行方式各不相同,因此必需采


南京大学LLM开发基础(四)MoE, LoRA, 数的精度 + MLP层实验
nju_spy2025/10/30

https://njudeepengine.github.io/llm-course-lecture/2025/lecture8.html#1 目录 1. Mixture-of-experts (MoE) 1.1 优势 1.2 结构 1.3 训练 2. Low-rank adaptation (LoRA) 3. 数的精度 -- 混合精度 + 量化操作 Task1:DenseMLPWithLoRA 一、任务背景 二、任务要求 Task2:Sparse MLP 1.


【C++list】底层结构、迭代器核心原理与常用接口实现全解析
m0_748233642025/10/27

一、官方源码的探究 在实现list的底层前,我们先看下官方的核心成员变量,link_type node,其中link_type是list_node*,也就是说是节点的指针 在这里插入图片描述 下面我们看下其的初始化,在空初始化中,链表为空并不是把节点的指针给成空,而是给了个节点,让其的前驱指针和后继指针均指向自己,在C语言阶段的数据结构中我们便知道这个节点是哨兵位头节点 注意: 这里创捷新的节点不是new的,而是使用get_node出来的,这里是由于内存池的原因,后续再介绍


从复杂到高效:QtitanNavigation助力金融系统界面优化升级
Aevget2025/10/24

QtitanNavigation 组件模拟Microsoft Dynamics CRM-2016 / Office 365导航界面和一组控件,来改善Qt.C ++应用程序的用户体验。QtitanNavigation结合用户界面构建“Ribbon UI”和“Side Bar”的各种示例,可以更好地在您的应用程序中导航,使用户更直观地访问应用程序的某些部分。因此,它允许同时显示更多的信息,并让您高效地查看所有实体(工作区域,网格或其他项目),滚动次数更少,点击次数更少。与我们的其他解决方案一样,Qt

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0