【数学】 4、向量的内积、外积、模长

news2024/10/6 10:31:45

文章目录

  • 一、向量点乘(内积)
    • 1.1 几何意义
    • 1.2 点乘的代数定义,推导几何定义(用于求向量夹角)
      • 1.2.1 余弦定理
    • 1.3 程序计算
  • 二、向量叉乘(外积)
    • 2.1 几何意义
  • 三、通俗理解内积和外积
  • 四、向量的模长

向量点乘、叉乘的概念和意义

一、向量点乘(内积)

点乘(Dot Product)的结果是点积,又称数量积或标量积(Scalar Product)。


1.1 几何意义

1.2 点乘的代数定义,推导几何定义(用于求向量夹角)

1.2.1 余弦定理

余弦定理

1.3 程序计算

vector1 = [1.1, 2.2, 3.3]
vector2 = [4, 6, 7]
dot_product = np.dot(vector1, vector2) # 算向量内积
norm1, norm2 = np.linalg.norm(vector1), np.linalg.norm(vector2) # 算向量模长
similarity = dot_product / (norm1 * norm2) # 算向量间的余弦相似度

向量的内积也被称为点积,是两个向量相乘的一种方式。对于两个n维的向量,比如向量a=(a1, a2, …, an)和向量b=(b1, b2, …, bn),它们的内积可以通过以下公式计算:

a·b = a1b1 + a2b2 + … + an*bn

这个公式表示的是将两个向量对应位置的元素相乘,然后将所有的乘积相加。结果是一个标量,而不是一个向量。

这个计算在很多领域都有重要应用,比如在物理学中,力的内积可以用来计算功,而在计算机科学中,内积常常被用于计算向量的相似度。

package main
import (
    "fmt"
    "math"
)

func vectorMagnitude(vec []float64) float64 {
    sum := 0.0
    for _, v := range vec {
        sum += v * v
    }
    return math.Sqrt(sum)
}

func main() {
    vec := []float64{1, 2, 3}
    fmt.Println("Magnitude of the vector:", vectorMagnitude(vec))
}

二、向量叉乘(外积)

叉乘(Cross Product)又称向量积(Vector Product)

2.1 几何意义

三、通俗理解内积和外积

内积是把a向量投影到b向量上面,让两者同向或者反向,让a向量箭头指向b向量里面,所以叫内积,(非官方,本人感受,同直线情况广义指向内里),外积是把a向量投影到b向量的法线方向,所以你看,投影完箭头指向了b向量的外面,所以你看透彻理解多重要,字面意思就都理解了有木有,另外,内积两个向量谁投影谁都没关系,因为最后是一个数值,不影响结果,外积就不一样了,一定是1投影2,因为要用右手确定结果3向量的方向,有前后顺序之分,更像是1带2的扭矩方向的感觉

四、向量的模长

向量的模长,也被称作向量的大小或者绝对值,是用来描述向量的长度的数学概念。在二维平面上,一个向量可以被视作箭头或者线段,而向量的模长就是箭头或线段的长度。在高维空间中,虽然我们无法直观地看到向量,但是我们仍然可以通过计算来得到向量的模长。

对于一个n维向量v = (v1, v2, …, vn),其模长||v||可以通过以下公式计算:

∣ ∣ v ∣ ∣ = s q r t ( v 1 2 + v 2 2 + . . . + v n 2 ) ||v|| = sqrt(v1^2 + v2^2 + ... + vn^2) ∣∣v∣∣=sqrt(v12+v22+...+vn2)

这里的sqrt表示平方根函数。所以,向量的模长实际上就是其各分量平方和的平方根。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes集群编排——k8s调度

nodename vim nodename.yaml apiVersion: v1 kind: Pod metadata:name: nginxlabels:app: nginxspec:containers:- name: nginximage: nginxnodeName: k8s2 nodeName: k8s2 #找不到节点pod会出现pending,优先级最高 kubectl apply -f nodename.yamlkubectl get pod …

AI系统ChatGPT程序源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+已支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

VMware创建Linux虚拟机之(三)Hadoop安装与配置及搭建集群

Hello,world! 🐒本篇博客使用到的工具有:VMware16 ,Xftp7 若不熟悉操作命令,推荐使用带GUI页面的CentOS7虚拟机 我将使用带GUI页面的虚拟机演示 虚拟机(Virtual Machine) 指通过…

2023年【安全员-A证】最新解析及安全员-A证在线考试

题库来源:安全生产模拟考试一点通公众号小程序 安全员-A证最新解析是安全生产模拟考试一点通生成的,安全员-A证证模拟考试题库是根据安全员-A证最新版教材汇编出安全员-A证仿真模拟考试。2023年【安全员-A证】最新解析及安全员-A证在线考试 1、【多选题…

计算机毕业设计项目选题推荐(免费领源码)java+ssm+Mysq学科竞赛管理系统08604

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

学编程始于C语言,但只学C远远不够的!

前言 写了20多年的代码,之前做过阿里的高级架构师,在技术这条路上跌跌撞撞了很多,我今天分享一些我个人的自学方法给各位。为什么我会说:不推荐任何人用C语言作为编程启蒙第一课? 这里有很多同学要站出来说了&#x…

rabbitMQ rascal/amqplib报错 Error: Unexpected close 排查

以下是一些可能导致此 RabbitMQ 客户端或任何其他 RabbitMQ 客户端中的套接字读取或写入失败的常见场景 1.错过(客户端)心跳 第一个常见原因是RabbitMQ 检测到心跳丢失。发生这种情况时,RabbitMQ 将添加一个有关它的日志条目,然…

centos 7部署Mysql8.0主从

Mysql官网中关于部署主从的网址 环境准备: 搭建虚拟机和安装Mysql之前的文章中已经涉及,在此不再赘述。 主从IPMysql账号密码主192.168.213.4root/Root1234!从192.168.213.5root/Root1234! 1、主数据库设置 配置my.cnf 一般存放于/etc/。 主从配…

AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀

文章目录 一、ChatGPT简介二、ChatGPT在产品经理工作中的应用1. 快速获取用户反馈2. 智能分析竞品3. 智能推荐产品4.分析市场趋势5.优化产品功能 三、总结与展望《AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀》亮点内容简介目录作者简介获取方式 随着人工智能…

viple进阶1:打印星号

(1)题目:打印星号 请观察下图,使用viple编程实现 (2)设计与实现 第1种方法:行打印 利用行打印活动打印完数据后会自动换行特性 首先打印第一行,一颗星可以是字符类型&#xff0c…

python 之 字符串的相关知识

文章目录 字符串的创建基本操作字符串方法格式化字符串字符串不可变性编码和解码字符串方法详细介绍字符串方法列表1. len()2. 大小写转换方法3. 删除空白字符的方法4. 查找子字符串的方法5. 替换子字符串的方法6. 分割和连接字符串的方法7. 校验字符串内容的方法 格式化详细介…

C++——搜索二叉树

作者:几冬雪来 时间:2023年11月7日 内容:C的搜索二叉树讲解 目录 前言: 什么是搜索二叉树: 搜索二叉树的增删查改: 搜索二叉树的定义初始化: 搜索二叉树增操作: 搜索二叉树找…

蓝桥杯算法竞赛系列第十章·nSum问题的代码框架

你好,我是安然无虞。 文章目录 一、两数之和变形题 二、三数之和三、四数之和 首先,何为nSum问题呢? nSum问题其实就是给你一个数组nums和一个目标和target,让我们从nums数组中选择n个数,使得这些数字之和等于target。…

Flink集群的搭建

1、Flink独立集群模式 1、首先Flink的独立集群模式是不依赖于Hadoop集群。 2、上传压缩包,配置环境: 1、解压: tar -zxvf flink-1.15.2-bin-scala_2.12.tgz2、配置环境变量:vim /etc/profileexport FLINK_HOME/usr/local/soft/fl…

C++深度优先搜索(DFS)算法的应用:树中可以形成回文的路径数

本文涉及知识点 深度优先搜索(DFS) 状态压缩 题目 给你一棵 树(即,一个连通、无向且无环的图),根 节点为 0 ,由编号从 0 到 n - 1 的 n 个节点组成。这棵树用一个长度为 n 、下标从 0 开始的数组 parent 表示&#…

3.2-Docker Image概述

常用docker命令: 查看docker image有哪些 docker image ls Image的获取方式

亚马逊云科技产品测评』活动征文|通过使用Amazon Neptune来预测电影类型初体验

文章目录 福利来袭Amazon Neptune什么是图数据库为什么要使用图数据库什么是Amazon NeptuneNeptune 的特点 快速入门环境搭建notebook 图神经网络快速构建加载数据配置端点Gremlin 查询清理 删除环境S3 存储桶删除 授权声明:本篇文章授权活动官方亚马逊云科技文章转…

jstat虚拟机统计信息监控工具

jstat虚拟机统计信息监控工具 1、jstat(JVM Statistics Monitorning Tool) 用于监控虚拟机各种运行状态信息的命令行工具。 它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,它是运行期定位虚拟机 性能问题…

Lenovo联想IdeaPad 15 ALC7(82R4)2022款笔记本原装出厂Windows11预装系统镜像

下载链接:https://pan.baidu.com/s/1Pr2G42Sz1LKzgF8OcEBkPQ?pwd5ms2 提取码:5ms2 系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:…

centos7.9 postgresql 16.0 源码安装部署

postgresql 16.0 源码安装部署 环境准备 系统主机名IP地址centos7.9postgres192.168.200.56 软件准备 postgresql-16.0.tar.gz https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz依赖安装 yum -y install systemd-devel readline readline-devel zlib-devel…