码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【数学】 4、向量的内积、外积、模长


    文章目录

    • 一、向量点乘(内积)
      • 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) # 算向量间的余弦相似度
    
    • 1
    • 2
    • 3
    • 4
    • 5

    向量的内积也被称为点积,是两个向量相乘的一种方式。对于两个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))
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    二、向量叉乘(外积)

    叉乘(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表示平方根函数。所以,向量的模长实际上就是其各分量平方和的平方根。

  • 相关阅读:
    删除maven中出现.lastUpdate结尾的文件
    【计算机视觉 | 目标检测】目标检测常用数据集及其介绍(十六)
    截取url地址后面参数方法
    ToDoList项目
    3种好用的可视化图表工具分享,快进来看!
    猫头虎分享 2024 最新版 Navicat 17 下载与安装步骤及演示 (图文版)
    React - React v18 的 批处理
    看完这一篇,ShardingSphere-jdbc 实战再也不怕了
    J. Counting Trees (树,卡特兰数)
    重学设计模式之 装饰者模式
  • 原文地址:https://blog.csdn.net/jiaoyangwm/article/details/134278151
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号