【数学计算】点乘/点积/内积/数量积/叉乘/外积/叉积/向量积

2023-10-30

序言
  • 区分一下这几个概念
1. 点乘
  • 点乘 = 点积 = 内积 = 数量积
  • dot product = inner product = scalar product
  • a ⃗ = ( x 1 , y 1 , z 1 ) \vec{a} = (x_{1}, y_{1}, z_{1}) a =(x1,y1,z1) b ⃗ = ( x 2 , y 2 , z 2 ) \vec{b} = (x_{2}, y_{2}, z_{2}) b =(x2,y2,z2)
  • 从代数角度看,点积是对两个向量对应位置上的值相乘再相加的操作,其结果即为点积

a ⃗ ∙ b ⃗ = x 1 x 2 + y 1 y 2 + z 1 z 2 \vec{a}\bullet \vec{b} = x_{1}x_{2}+y_{1}y_{2}+z_{1}z_{2} a b =x1x2+y1y2+z1z2

  • 点乘的几何意义:向量b在向量a方向上的投影与向量a的模的乘积,用来表征或计算两个向量间的夹角,表征两个向量在方向上的相似度,结果越大越相似

a ⃗ ∙ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ cos ⁡ θ \vec{a}\bullet \vec{b} = \left | \vec{a} \right | \left | \vec{b} \right | \cos \theta a b =a b cosθ

  • 基于点乘结果可以判断这两个向量是否是同一方向,是否正交垂直,具体对应关系:

       点乘 > 0:向量夹角在0~90°之间
       点乘 = 0:正交,相互垂直
       点乘 < 0:夹角在90~180°之间
    
  • 公式推导

    1. 向量c = a - b
    2. c^2 = a^2 + b^2 - 2abcos(theta)
    3. (a - b)(a - b) = a^2 + b^22a▪b = a^2 + b^2 - 2abcos(theta)
    
2. 叉乘
  • 叉乘 = 叉积 = 外积 = 向量积

  • cross product = outer product

  • a ⃗ = ( x 1 , y 1 , z 1 ) \vec{a} = (x_{1}, y_{1}, z_{1}) a =(x1,y1,z1) b ⃗ = ( x 2 , y 2 , z 2 ) \vec{b} = (x_{2}, y_{2}, z_{2}) b =(x2,y2,z2)

  • 从代数角度计算:

    a ⃗ × b ⃗ = ( y 1 z 2 − y 2 z 1 , − ( x 1 z 2 − x 2 z 1 ) , x 1 y 2 − x 2 y 1 ) \vec{a}\times \vec{b} = (y_{1}z_{2}-y_{2}z_{1},-(x_{1}z_{2}-x_{2}z_{1}), x_{1}y_{2}-x_{2}y_{1}) a ×b =(y1z2y2z1,(x1z2x2z1),x1y2x2y1)

  • 从几何角度计算

    • 其中 i ⃗ \vec{i} i j ⃗ \vec{j} j k ⃗ \vec{k} k 分别是x轴、y轴、z轴方向的单位向量
    • z 1 z_{1} z1 z 2 z_{2} z2等于0的时候,即得到二维向量叉乘的结果

a ⃗ × b ⃗ = ∣ i ⃗ j ⃗ k ⃗ x 1 y 1 z 1 x 2 y 2 z 2 ∣ = ( y 1 z 2 − y 2 z 1 ) i ⃗ − ( x 1 z 2 − x 2 z 1 ) j ⃗ + ( x 1 y 2 − x 2 y 1 ) k ⃗ \vec{a}\times \vec{b} = \begin{vmatrix} \vec{i} & \vec{j} & \vec{k}\\ x_{1} & y_{1} & z_{1}\\ x_{2} & y_{2} & z_{2}\end{vmatrix} = (y_{1}z_{2}-y_{2}z_{1})\vec{i}-(x_{1}z_{2}-x_{2}z_{1})\vec{j}+(x_{1}y_{2}-x_{2}y_{1})\vec{k} a ×b = i x1x2j y1y2k z1z2 =(y1z2y2z1)i (x1z2x2z1)j +(x1y2x2y1)k

  • 叉乘的几何意义

    • 二维向量叉乘:向量a和向量b的叉乘表示向量a和b构成的平行四边形的面积
    • 二维向量叉乘:如果a或b其中一个为单位向量,则axb叉乘结果表示以单位向量为底的平行四边形的高,可以有正负
    • 三维向量叉乘:向量a和向量b的叉乘结果是一个向量,该向量垂直于向量a和b组成的平面,即平面的法向量,方向遵守右手定则
  • 叉积有一个非常重要的性质,可通过叉积的符号来判断两向量的顺逆时针关系

    P x Q > 0, 则向量P在向量Q的顺时针方向;
    P x Q < 0, 则向量P在向量Q的逆时针方向;
    P x Q = 0,表示P与Q共线,可能同向也可能反向
    
3. 点乘 vs 叉乘,对比与应用
  • 点乘的结果是标量(常用于物理)/数量(常用于数学),可以用来计算夹角投影
  • 叉乘的结果是矢量(常用于物理)/向量(常用于数学),法向量的模大小为 ∣ a ∣ ∣ b ∣ sin ⁡ θ \left | a \right | \left | b \right | \sin \theta absinθ,方向遵守右手定则
  • 在二维空间中,叉乘结果等于向量a和b构成的平行四边形的面积,平行四边形的面积:以 ∣ b ∣ sin ⁡ θ \left | b \right | \sin \theta bsinθ为高,以 ∣ a ∣ \left | a \right | a为底。当a是单位向量时,计算b的终点到a所在直线的距离,也就是平行四边形的高
  • 通过向量的叉乘生成垂直于向量a/b的法向量,从而构建XYZ坐标系
  • 叉乘的结果再点乘可以用来判断向量/线段是否相交,即"跨立实验",见文章判断两条线段是否相交

 


《参考文章》

点乘叉乘及其几何意义
点乘叉乘的概念与几何意义
向量的顺逆时针关系

created by shuaixio, 2022.12.27

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【数学计算】点乘/点积/内积/数量积/叉乘/外积/叉积/向量积 的相关文章

  • 【Leetcode】44. 二叉树的前序遍历

    题目描述 题解 递归法 执行用时 0 ms 在所有 Java 提交中击败了100 00 的用户 内存消耗 36 7 MB 在所有 Java 提交中击败了38 60 的用户 Definition for a binary tree node
  • 华为机试:最长方连续方波信号

    题目来源 最长方连续方波信号 题目描述 输入一串方波信号 求取最长的完全连续交替方波信号 并将其输出 如果有相同长度的交替方波信号 输出任一即可 方波信号高位用1标识 低位用0标识 如图 说明 1 一个完整的信号一定以0开始然后以0结尾 即
  • LeetCode-336.回文对、字典树、字符串翻转

    给定一组唯一的单词 找出所有不同 的索引对 i j 使得列表中的两个单词 words i words j 可拼接成回文串 示例 1 输入 abcd dcba lls s sssll 输出 0 1 1 0 3 2 2 4 解释 可拼接成的回文
  • 顺序查找算法C语言实现

    顺序查找算法 实现思想 静态查找表用顺序存储结构表示时 顺序查找的查找过程为 从表中的最后一个数据元素开始 逐个同记录的关键字做比较 如果匹配成功 则查找成功 反之 如果直到表中第一个关键字查找完也没有成功匹配 则查找失败 应用场景 顺序查
  • 【剑指offer】数据结构——树

    目录 数据结构 树 直接解 剑指offer 07 重建二叉树 剑指offer 08 二叉树的下一个结点 剑指offer 26 树的子结构 剑指offer 27 二叉树的镜像 剑指offer 28 对称的二叉树 剑指offer 32 1 从上
  • 【Leetcode】257. 二叉树的所有路径

    题目描述 题解 能用String解决的最好不要走StringBuilder 递归时注意空结点 null 回退和叶子结点判定回退 执行用时 9 ms 在所有 Java 提交中击败了30 66 的用户 内存消耗 39 1 MB 在所有 Java
  • leetcode 27 [remove val]

    leetcode 27 remove val 改进前 class Solution public int removeElement vector
  • 判断无向图G是否连通。若连通返回1,否则返回0

    判断无向图G是否连通 若连通返回1 否则返回0 CODE 判断无向图G是否连通 若连通返回1 否则返回0 define N 1 gt gt 8 代替无穷大 默认 邻接矩阵 define size 6 include
  • 由计数排序衍生出来的桶排序

    计数排序说白了 就是拿一个列表来记录list里的数对应count的下标出现的次数 最后利用count的统计打印出来即可 下面来看看桶排序 针对较多的数据排序 将数据分为n个桶 列表遍历 冒泡排序逆用 确保每个桶里有序 直到最后将内个桶的数据
  • LeetCode-135.分发糖果、贪心算法

    老师想给孩子们分发糖果 有 N 个孩子站成了一条直线 老师会根据每个孩子的表现 预先给他们评分 你需要按照以下要求 帮助老师给这些孩子分发糖果 每个孩子至少分配到 1 个糖果 相邻的孩子中 评分高的孩子必须获得更多的糖果 那么这样下来 老师
  • 单链表的增删改查操作详解之C语言版

    单链表在应用中经常用到增加新结点 删除结点 修改结点 查找结点等操作 本文针对上述基本操作做了简单汇总 并给出了详细的算法 一 在单链表中增加结点 在链表中增加新结点是经常要用到的操作 增加新结点大致可以分为在链表末尾增加 在链表头增加 在
  • 算法——有向图的最短路径算法

    建议学习最短路径算法时 观看这个视频 https www bilibili com video BV1q4411M7r9 from search seid 9662298119837732890 Dijkstra算法 思路 1 从一个单源节
  • 兔子问题---细说斐波那契数列

    对于兔子问题的鼎鼎大名 相信很少有人没听过吧 为了完整性还是再说一下题目吧 题目描述 已知一对兔子每一个月可以生一对小兔子 而一对兔子出生后 第三个月开始生小兔子假如一年内没有发生死亡 则一对兔子开始 第N个月后会有多少对 这道题所描述的就
  • 为什么说快速排序是性能最好的排序算法?

    刚刚学习了排序这一章 看到了书中最后的一个总结表 心想从表上来看 堆排序不该是最好的排序算法么 不管最好 最坏还是平均情况 时间复杂度都是O nlogn 而且还不像快排和归并排序那样占空间 为什么说快速排序是最好的算法呢 其实经过实验 会发
  • 【数据结构】Map 映射

    数据结构源码 接口 public interface Map
  • 0-1背包

    文章作者 Yx Ac 文章来源 勇幸 Thinking http www ahathinking com 转载请注明 谢谢合作 四月份还没写 不能这么荒废了呀 赶紧水一篇吧 哈哈 前些日子回顾了DP的一些基础 就做一下整理吧 从0 1背包开
  • 二叉查找树(BST)的基本概念及常用操作

    二叉查找树 二叉查找树 Binary Search Tree 也称二叉搜索树 有序二叉树 ordered binary tree 排序二叉树 orted binary tree 是指一棵空树或者具有下列性质的二叉树 若任意节点的左子树不空
  • 图解 Dijkstra、Floyd、BellMan-Ford 最短路径算法

    文章目录 导言 一 迪杰斯特拉算法 Dijkstra 1 概述 2 算法描述 3 图片解释 4 Dijkstra算法实现 5 Dijkstra Heap算法实现 二 弗洛伊德算法 Floyd Warshall 1 概述 2 算法描述 3 算
  • 设计一个能够获取栈中最小值的栈。

    设计一个栈 要求 支持 push pop top 操作 并能在常数时间内检索到栈中最小元素 示例 public Stack
  • 【Leetcode】151. 翻转字符串里的单词

    题目描述 给你一个字符串 s 逐个翻转字符串中的所有 单词 单词 是由非空格字符组成的字符串 s 中使用至少一个空格将字符串中的 单词 分隔开 请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串 说明 输入字符串 s 可以在前面 后面

随机推荐

  • Python中selenium实现文件上传所有方法整理总结

    pyAutoGUI官方文档 https pyautogui readthedocs io en latest 文件上传是所有UI自动化测试都要面对的一个头疼问题 今天博主在这里给大家分享下自己处理文件上传的经验 希望能够帮助到广大被文件上传
  • ​stp文件转ply

    什么是一 stp 文件 STP 文件是用于在 CAD 和 CAM 应用程序之间交换产品数据的 3D CAD 文件 它包含有关 3D 对象的信息 并以类似于STEP文件格式的方式保存 STP 文件根据STEP应用程序协议 ISO 10303
  • Qt设置label的文字自动换行、高度随内容调整、上下可滚动

    Qt初学者 想要用label控件实现一个用于显示文字信息的文本框 要求文字自动换行 label高度随内容调整 上下可滚动 为了实现滚动 使用ScrollArea控件 将要显示文字的label放到这个ScrollArea里 然后设置Scrol
  • 控制台报错:failed to load resource: net:err_cert_date_invalid的解决办法

    原因 浏览器端屏蔽了不安全的连接 解决办法 1 打开检查页面里 Network 网络 2 双击name 名称 下红色报错的地方 会出现以下界面 3 点击高级 下面会出现提示 点击继续前往 不安全 4 回到之前的页面刷新 问题就解决了
  • Exception of type 'System.OutOfMemoryException' was thrown.

    OutOfMemoryException Exception of type System OutOfMemoryException was thrown 在装有4G物理内存的32位OS机器上内存不足 原因是 The common lang
  • array type has an incomplete element type

    一 错误详情 array type has an incomplete element type 二 错误分析 1 错误代码 int readInfo int B int n int findMax int B int n int m 2
  • 英伟达Tesla T4 显卡编解码能力测试

    显卡基本参数 Timestamp Fri Aug 27 10 04 12 2021 Driver Version 460 32 03 CUDA Version 11 2 Attached GPUs 8 FB Memory Total 151
  • 计算机网络【IP数据包首部的各个字段详解】

    文章目录 一 网络层简述 二 网络层首部 版本 首部长度 区分服务 总长度 三 网络层首部 标识 标志 片偏移 四 网络层首部 生存时间 协议 首部检验和 五 可选字段 填充字段 源IP 目标IP 六 总结 一 网络层简述 一个IP数据包的
  • Windows计划任务(手动执行脚本正常,定时执行不生效)

    ps 本公司是一家游戏公司 目前有一台win服务器上面搭建MySQL数据库 现在需要做MySQL数据库的备份然后上传到Linux服务器上 bat 脚本写好以后手动双击测试多遍正常上传备份文件 可每当计划任务去执行的时候往往出错 不执行上传L
  • 系统开发设计基础(二)

    删除
  • 信号的傅里叶分析之傅里叶级数

    1 为什么要进行傅里叶分析 信号分析方法主流方法有 1 时域分析 以冲激信号为基本信号 任意输入信号可分解为一系列冲激信号 2 频域分析 以正弦信号和虚指数信号为基本信号 将任意输入信号分解为一系列不同频率的正弦信号或者虚指数信号之和 独立
  • c语言入门-程序运行的过程

    目录 程序运行的过程 1 编译 预编译 编译 汇编 2 链接 1 段表的合并 2 符号表的合并和重定位 3 运行 预处理 define 宏实现计算 define和typedef define的替换规则 和 将参数插入代码中 带有副作用的宏
  • Qt信号槽connect用法整理

    本文整理了一些当前项目中使用的Qt5 6版本信号 槽connect新旧写法的比较 需要注意的问题 一 connect string based和functor based写法比较 1 1 概述 自Qt 5 0以来 Qt提供了两种C 信号槽c
  • Python读取csv文件

    导入pandas包并设置别名为pd import pandas as pd 读取csv格式文件并把格式设置为DataFrame格式 值1是路径可以用绝对路径 cd盘内读取 也可以用相对路径 此项目内读取 这里用的是相对路径 作用 把乱码格式
  • SpringBoot整合eureka简记

    Eureka是一个服务治理组件 它主要包括服务注册和服务发现 主要用来搭建服务注册中心 Eureka 是一个基于 REST 的服务 用来定位服务 进行中间层服务器的负载均衡和故障转移 Eureka是Netflix 公司开发的 Spring
  • 模拟电路设计(14)---三点式振荡器

    常用三点式振荡器 晶体三极管其增益适中 工作频带宽 体积小巧 实际电路设计中常用来构成简洁可靠的三点式LC振荡器 是各种振荡器的主流电路 其交流等效电路组态见下图 三点式振荡器交流等效电路 上图所示三点式LC振荡器的交流等效电路 与实际原理
  • 半桥LLC谐振变换器及同步整流MATLAB仿真(一)

    在开关电源中 LLC谐振变换器是最常见的DC DC变换器之一 LLC谐振电路早在上世纪80年代就已经提出 到如今仍有广泛的应用 可见其优越性 其优点表现在 1 LLC的开关器件能实现软开关 开关损耗小 2 效率高 功率密度大 LLC按结构的
  • Project窗口

    窗口概述 在此视图中 可访问和管理属于项目的资源 以下 Project窗口也称为Project浏览器 Project浏览器的左侧面板将项目的文件夹结构显示为层级列表 通过单击从列表中选择文件夹时 文件夹内容将显示在右侧面板中 可单击小三角形
  • 第4章 基于RFID的仓储管理系统的实现

    4 1 需求分析 目前 在国内外应用比较广泛的仓储管理系统都采用了条形码或RFID 与条形码识别系统相比 无线射频识别技术具有很多优势 因此研究最多的还是射频识别技术在仓储中的应用 RFID技术的应用可以改善目前仓库管理的现状的不足 根据对
  • 【数学计算】点乘/点积/内积/数量积/叉乘/外积/叉积/向量积

    序言 区分一下这几个概念 1 点乘 点乘 点积 内积 数量积 dot product inner product scalar product a x