07 点积

news2024/11/29 16:41:53

点积

  • 基本运算
  • 几何解释
  • 投影运算和基本运算的联系
    • 多维空间到一维空间的投影
  • 点积的作用

这是关于3Blue1Brown "线性代数的本质"的学习笔记。

基本运算

两个维数相同的向量 [ 2 , 7 , 1 ] T , [ 8 , 2 , 8 ] T [2, 7, 1]^{T},[8, 2, 8]^{T} [2,7,1]T,[8,2,8]T,求它们的点积,就是将对应坐标配对,求出每一对坐标的乘积,并将结果相加。
在这里插入图片描述

图1 点积的运算

几何解释

在这里插入图片描述
在这里插入图片描述

图2 点积的几何解释

几何解释:求两个向量 v ⃗ \vec{v} v w ⃗ \vec{w} w 的点积,就是将向量 w ⃗ \vec{w} w 朝着过原点和向量 v ⃗ \vec{v} v 终点的直线上投影,将投影的长度与向量 v ⃗ \vec{v} v 的长度相乘;或者反过来,将向量 v ⃗ \vec{v} v 朝着过原点和向量 w ⃗ \vec{w} w 终点的直线上投影,将投影的长度与向量 w ⃗ \vec{w} w 的长度相乘。

如果 w ⃗ \vec{w} w 投影方向和 v ⃗ \vec{v} v 的方向相反,点积为负值。

v ⃗ \vec{v} v w ⃗ \vec{w} w 相互垂直,点积为零。

投影运算和基本运算的联系

多维空间到一维空间的投影

将2维向量投影到一维空间(数轴)上,需要做合适的线性变换,即找出合适的变换矩阵;而我们知道,线性变换矩阵的列是基向量变换后的位置,所以,问题就转换为求二维空间基向量 i ⃗ \vec{i} i j ⃗ \vec{j} j 在一维空间上的位置。

对于从二维空间变换到一维空间来说,变换矩阵就是1×2的矩阵。

为了找到这个矩阵的各列值,我们假设一维空间数轴0点和二维平面原点重合,数轴是二维平面上的这样一条线,如图3所示。
在这里插入图片描述

图3 数轴是二维平面上、零点和原点重合的一条线

如图3,现在假设二维平面上一个单位向量 u ⃗ \vec{u} u 碰巧落在这条数轴上。

现在,我们的目的是找到二维平面的基向量 i ⃗ \vec{i} i j ⃗ \vec{j} j 在一维空间,即数轴上的位置。因为基向量变换后的位置就是线性变换矩阵的两个列。

在这里插入图片描述

图4 二维平面的基向量 i ⃗ \vec{i} i j ⃗ \vec{j} j 在数轴上的位置

也就是说,现在要求 i ⃗ \vec{i} i j ⃗ \vec{j} j u ⃗ \vec{u} u 所在直线的投影。我们可以做如图5所示的对称轴来进行。

在这里插入图片描述

图5 利用对称性求 i ⃗ \vec{i} i 变换后在数轴上的位置

由于 i ⃗ \vec{i} i u ⃗ \vec{u} u 都是单位向量,则将 i ⃗ \vec{i} i u ⃗ \vec{u} u 所在直线的投影,与将 u ⃗ \vec{u} u i ⃗ \vec{i} i 所在直线的投影,是完全对称的。

如果要知道 i ⃗ \vec{i} i u ⃗ \vec{u} u 所在直线的投影后落在哪个数上,答案就是 u ⃗ \vec{u} u x ⃗ \vec{x} x 轴投影得到的数。

u ⃗ \vec{u} u x ⃗ \vec{x} x 轴投影得到的数就是 u ⃗ \vec{u} u 的横坐标。

因此,根据对称性,将 i ⃗ \vec{i} i u ⃗ \vec{u} u 所在直线(即斜着的数轴)上投影所得到的数就是 u ⃗ \vec{u} u 的横坐标。

同理,可以得到将 j ⃗ \vec{j} j 在数轴上投影就是 u ⃗ \vec{u} u 的纵坐标。因此,可以求得 i ⃗ \vec{i} i j ⃗ \vec{j} j 变换后的位置,即转换矩阵的各列,如图6所示。
在这里插入图片描述

图6 二维平面的基向量 i ⃗ \vec{i} i j ⃗ \vec{j} j 变换后在数轴上的位置

所以,描述投影变换的1×2矩阵的两列,就分别是 u ⃗ \vec{u} u 的两个坐标。

这个二维平面内任意向量向这个数轴进行投影变换的结果,就是投影矩阵与这个向量相乘。这和这个向量与 u ⃗ \vec{u} u 的点积在计算上完全相同。在这里插入图片描述

图7 投影运算与点积基本运算的关系

投影运算就是用线性变换矩阵与向量相乘,这和点积基本运算是等价的。

点积的作用

点积是理解投影的有利几何工具,可以很方便地检验两个向量的指向是否相同(指向相同,点积结果大于0)。

更深入地,两个向量点乘,就是将一个向量转化为线性变换。
在这里插入图片描述

图8 两个向量点乘,就是将一个向量转化为线性变换

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

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

相关文章

Spring Boot 整合RabbitMQ

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

【m98】abseil-cpp的cmake构建

m79的代码有些头文件没有,比如#include "absl/numeric/bits.h"使用m98版本里的代码,支持cmake构建cmake版本 WIN32 DEBUG configure Selecting Windows SDK version 10.0.22000.0 to target Windows 10.0.22621. The CXX compiler identification is MSVC 19.37.32…

第七章 Python常用函内置函数

系列文章目录 第一章 Python 基础知识 第二章 python 字符串处理 第三章 python 数据类型 第四章 python 运算符与流程控制 第五章 python 文件操作 第六章 python 函数 第七章 python 常用内建函数 第八章 python 类(面向对象编程) 第九章 python 异常处理 第十章 python 自定…

解决Visual Studio 2010 运行时屏幕一闪而过,无结果显示的问题

安装配置:Visual Studio 2010 软件安装教程(附下载链接)——计算机二级专用编程软件https://blog.csdn.net/W_Fe5/article/details/134218817?spm1001.2014.3001.5502 1、 我们在运行时会出现窗口一闪而过,这时候我们右键Test_1…

C++初阶-类和对象(中)2

类和对象(中)2 一、赋值运算符重载运算符重载赋值运算符重载前置和后置重载 二、日期类的实现三、const成员四、取地址及const取地址操作符重载 一、赋值运算符重载 运算符重载 C为了增强代码的可读性引入了运算符重载,运算符重载是具有特殊…

​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​

软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】 课本里章节里所有蓝色字体的思维导图

c语言练习100(贪吃蛇的实现)

贪吃蛇的实现 先实现主界面,后续将会不断完善。(逐渐添加更多的功能) test.c #define _CRT_SECURE_NO_WARNINGS #include"snake.h" void Test() {Snake snake { 0 };//创建贪吃蛇//1.游戏开始 - 初始化游戏GameStart(&sn…

类锁和实例对象锁你分清了吗?

系列文章目录 文章目录 系列文章目录前言一、什么是锁竞争?二、什么是类锁?什么是实例对象锁?三、给类对象加锁不是锁住了整个类四、总结 前言 java选手们应该都对锁不陌生,加锁了就是为保证操作语句的原子性,如果你是…

二AcW826. 单链表

#include<iostream>using namespace std;const int N100010;//head头结点下标//e[i]值//ne[i]下一个位置的地址//idx当前已经用到了哪个点int head, e[N],ne[N],idx;void init(){head-1;idx0; }void add_to_head(int x)//插到head{e[idx]x;ne[idx]head;//以前head指针是指…

多媒体应用设计师 2023年(含答案回忆版)

以下是小红书上的回忆版 软考考完疯狂回忆&#xff0c;多媒体应用设计师选择题 1.pattern 2.effective 3.merge 4.applications 5.graphic 6.udp 7.rtp 8.rtsp 9.10cm 10.永久 11…97 12.工作技术管理标准 13.管理型元数据 14.premiere 15.wave 16.500km/h 17.3M 18.44000 19.…

11.1~11.2数电实验一些点+11.4~11.5报错复盘

方框写在前面是说这个数有多大&#xff0c;写在后面是说这类数有多少 前面的用于计数&#xff0c;每位无实际意义&#xff1b;后面每位都代表一个同类型的&#xff0c;即数组&#xff0c;每位有实际意义 使用四位格雷码作为深度为8的FIFO的读写指针 将格雷码转换成四位二进制…

Amlogic IR模块Linux驱动分析

目录 一、简介 1、了解IR协议 2、代码结构介绍 二、硬件原理及连接 2、芯片手册解读 三、驱动代码分析 1、设备树介绍 1&#xff09;reg 2&#xff09;protocol 3&#xff09;pinctrl 4&#xff09;map 2、linux驱动介绍 1&#xff09;makefile 2&#xff09;数据…

【C++--string模拟实现】

一、基本思路 新建一个项目&#xff0c;在项目中创建头文件string.h 源文件string.cpp 在头文件中&#xff0c;先定义一个新的命名空间&#xff08;为了防止与库中的string发生冲突&#xff09;&#xff0c;命名空间的名字可以按照自己意愿来命名。 接下来就可以在命名空间中…

高斯过程回归 | 高斯过程回归(GPR)区间预测

对于高斯过程,高斯指的是多元高斯分布,过程指的是随机过程。 我们都知道随机过程就是指函数的分布,那么多元高斯分布实际上应该是指无限元的高斯分布。 协方差函数也称为核函数,是高斯过程回归的重点。核函数的选取方式有很多,包括径向基函数(高斯核函数)、线性核函数、…

C++相关练习及详细讲解

目录 题1&#xff1a;输出数组中第k小的数在数组内找出查找数字在该数组第一次出现的索引 题1&#xff1a;输出数组中第k小的数 题目描述&#xff1a; 给定一个数组arr 输出数组中第k小的数 如果不存在 输出-1 输入格式&#xff1a; 第一行输入一个数字n 代表数组arr大小 第二…

S32K324 UDS Bootloader开发-下位机篇-Bootload软件(1)

文章目录 前言启动过程Bootloader开发链接文件编译文件跳转函数CAN收发相关发送接收初始化及使能CAN周期函数总结前言 上一篇文章介绍了S32K324 -UDS Bootlodaer开发中的需求,本文根据需求开发Bootloader软件。 本文参考NXP官网的S32K324 UBL,其中有一些Bug,也有一些和上位机…

C++ 实现红黑树

红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路 径会比其他路径长出俩倍&#xff0c;因…

SMART PLC开放式以太网通信(UDP通信)

西门子S7-200 SMART PLC不仅支持开放式以太网通信,还支持MODBU-RTU,以及ModbusTcp通信,详细内容请参考下面文章: MODBUS-RTU主站通信 【精选】PLC MODBUS通信优化、提高通信效率避免权限冲突(程序+算法描述)-CSDN博客文章浏览阅读2.5k次,点赞5次,收藏10次。MODBUS通讯…

Ubuntu 20.04源码安装git 2.35.1

《如何在 Ubuntu 20.04 上从源代码安装 Git [快速入门]》和《如何在 Ubuntu 20.04 上安装 Git》是我参考的博客。 https://git-scm.com/是git官网。 lsb_release -r看到操作系统版本是20.04。 uname -r看到内核版本是5.4.0-156-generic。 sudo apt update更新一下源。 完…

操作系统复习(3)处理机调度与死锁

一、概述 1.1了解调度的层次 调度是指&#xff0c;在一个队列中&#xff0c;按照某种方法&#xff08;算法&#xff09;&#xff0c;选择一个合适的个体的过程。进程调度的功能就是按一定策略、动态地把CPU分配给处于就绪队列中的某一进程&#xff0c;并使之执行。 作业调度&…