news 2026/6/14 1:51:50

别再傻傻分不清了!点积、叉积、内积、外积,一张图帮你搞定所有区别与联系

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
别再傻傻分不清了!点积、叉积、内积、外积,一张图帮你搞定所有区别与联系

点积、叉积、内积、外积:视觉化指南与实战速查手册

刚接触线性代数或图形编程时,这四个"积"就像四胞胎兄弟——长得像却各有脾气。本文用视觉对比+代码片段+记忆口诀的组合拳,帮你建立清晰的认知框架。下次在Shader或NumPy中遇到它们时,不再犹豫该选哪个。

1. 核心概念视觉化速记

1.1 点积(Dot Product):投影测量仪

想象两个向量在阳光下产生的影子。点积就是测量一个向量在另一个向量方向上的投影长度,再乘以被投影向量的长度。这个特性使其成为计算光照强度、判断向量相似度的利器。

几何特性速记表:

特性说明典型应用场景
标量结果结果是个数字而非向量计算夹角余弦值
交换律a·b = b·a物理中的功的计算
与夹角相关a·b = |a||b|cosθ光照模型中的漫反射
# NumPy中的点积计算 import numpy as np a = np.array([1, 2]) b = np.array([3, 4]) dot_result = np.dot(a, b) # 输出:11 (1*3 + 2*4)

1.2 叉积(Cross Product):法向量生成器

三维空间中独有的运算,像魔术师的手杖——输入两个向量,输出一个垂直于它们所在平面的新向量。右手定则决定方向:食指指向第一个向量,中指指向第二个向量,拇指就是结果方向。

几何演示口诀:

  1. 方向判定:右手定则(XYZ轴方向记忆法)
  2. 大小计算:|a×b| = |a||b|sinθ
  3. 特性提醒:a×b = -b×a(反交换律)
// GLSL中的叉积应用(计算表面法线) vec3 lightDir = normalize(lightPos - fragPos); vec3 normal = cross(v1, v2); float diffuse = max(dot(normal, lightDir), 0.0);

2. 内积与外积的维度游戏

2.1 内积(Inner Product):广义的点积

点积其实是内积在欧几里得空间的特例。内积更抽象,但核心思想相同——衡量两个向量的"亲密程度"。在机器学习中,核函数就是内积的扩展形态。

典型内积空间对比:

  • 欧式空间:标准点积
  • 函数空间:∫f(x)g(x)dx
  • 矩阵空间:tr(AᵀB)

注意:在复向量空间中,内积要取第二个参数的共轭,即⟨a,b⟩=a·b̄

2.2 外积(Outer Product):矩阵制造机

与点积相反,外积是把两个向量"展开"成矩阵的操作。如果点积是压缩维度,外积就是扩展维度——这在构建变换矩阵时特别有用。

外积的两种面孔:

  1. 向量外积:m维向量 × n维向量 → m×n矩阵
    # Python实现外积 a = np.array([1, 2, 3]) b = np.array([4, 5]) outer = np.outer(a, b) # 3x2矩阵
  2. 张量外积:高阶张量的乘积运算,是深度学习中的基础操作

3. 四兄弟的实战区分技巧

3.1 维度快速判断法

通过输入输出的维度关系快速识别运算类型:

运算类型输入维度输出维度记忆口诀
点积同维向量标量"点对点,缩成数"
叉积两个3D向量3D向量"双手交叉出新向"
内积同空间元素标量"内在关系量一量"
外积m维×n维向量m×n矩阵"向外扩展建表格"

3.2 编程语言中的函数名差异

不同语言对这些运算的命名可能造成混淆:

# Python (NumPy)示例对比 np.dot(a, b) # 点积/内积 np.cross(a, b) # 叉积 np.outer(a, b) # 外积 np.inner(a, b) # 内积(与dot有时等价)

4. 几何应用案例精讲

4.1 游戏开发中的经典应用

碰撞检测:利用叉积判断多边形边界的顺时针/逆时针顺序

// 判断三角形顶点顺序(右手坐标系) vec3 edge1 = v1 - v0; vec3 edge2 = v2 - v0; vec3 normal = cross(edge1, edge2); // normal.z的正负决定顶点顺序

光照计算:点积计算光线与表面法线的夹角余弦

// Unity Shader中的漫反射计算 float NdotL = dot(normal, lightDir); float diffuse = max(NdotL, 0.0) * lightColor;

4.2 机器学习中的妙用

余弦相似度:归一化点积衡量文本/图像相似度

from sklearn.metrics.pairwise import cosine_similarity # 计算两个特征向量的相似度 similarity = cosine_similarity([features1], [features2])

注意力机制:Transformer中的QKᵀ计算本质是批量化点积

# 简化版自注意力计算 attention_scores = torch.matmul(query, key.transpose(-2, -1)) attention_scores /= math.sqrt(dim_k)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 1:42:16

15118标准分析_1:15118通讯过程

文章目录内容简介15118通讯过程初始发波内容简介 15118通讯过程 简单来说,15118的通讯主要分为6个阶段。 CP 5% 占空比PWM,用户触发高阶通讯(high-level communication,HLC)。ISO 15118 or DIN SPEC 70121Signal Level Attenuation Charac…

作者头像 李华
网站建设 2026/6/14 1:39:56

OpenCore Legacy Patcher完整指南:三步让旧Mac免费升级最新系统

OpenCore Legacy Patcher完整指南:三步让旧Mac免费升级最新系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为苹果官方放弃的老旧Mac无法…

作者头像 李华
网站建设 2026/6/14 1:32:54

PS4存档管理神器:Apollo Save Tool终极使用指南

PS4存档管理神器:Apollo Save Tool终极使用指南 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4 你是否曾因PS4游戏存档丢失而烦恼?或是想分享完美通关存档却苦于复杂的签名验证&am…

作者头像 李华
网站建设 2026/6/14 1:32:04

上海黄浦区新高一语文补习班选型指南:品读文本、强化表达测评

新高一语文的分水岭,始于“文本解读深度”与“书面表达精度”的双重升级。黄浦区格致、大同、向明等重点高中,语文教学从重字词识记转向重文本逻辑、重思辨品读、重精准表达,现代文阅读强调深层意蕴挖掘,文言文侧重文化内涵解读&a…

作者头像 李华