线性代数-向量数乘、点乘意义

article/2025/7/20 6:05:29

Vector

  • 什么是向量
  • 基向量
  • 向量数乘
  • 向量的加法
  • 向量点乘

什么是向量

向量是指具有大小和方向的量。它可以形象化地表示为带箭头的线段
箭头所指:代表向量的方向
线段长度:代表向量的大小

向量是线性代数中最基础、最根源的组成部分,向量加法和向量乘法贯穿线性代数始终,起着很重要的作用

基向量

也可以说是单位向量,其他向量都可以由基向量进行缩放、合成得到
比如在一维坐标系,基向量是 i ⃗ \vec{i} i
u ⃗ \vec{u} u 就可以表示为3 i ⃗ \vec{i} i , v ⃗ \vec{v} v 表示为-2 i ⃗ \vec{i} i
在这里插入图片描述
在二维向量中,比如 p ⃗ \vec{p} p (3,2) =>3*( i ⃗ \vec{i} i ,0)+(-2)*(0, j ⃗ \vec{j} j )
在这里插入图片描述

向量数乘

k*(x,y,z) = (kx,ky,kz)
其实就是对向量个轴上的分量进行等比缩放
在这里插入图片描述

向量的加法

向量合成
可以从力学角度看,F1和F2的合力
在X轴上的合力FX = 1 + 3 = 4
在Y轴上的合力FY = 2 + (-1) = 1
最后在将FX和FY进行合成得到F = (4,1)
在这里插入图片描述

向量点乘

这里慢慢变得有意思了……
先来一个二维向量
在这里插入图片描述
在基向量 i ⃗ \vec{i} i j ⃗ \vec{j} j 构成的二维坐标系下,向量 p ⃗ \vec{p} p 可以表示为: p ⃗ \vec{p} p = 3*( i ⃗ \vec{i} i ,0) + 2*(0, j ⃗ \vec{j} j )
但是如果在其他基向量构成的坐标系中, p ⃗ \vec{p} p 应该如何表示?

先来看看 p ⃗ \vec{p} p i ⃗ \vec{i} i 所在轴上的表示,前面说过,任何向量都可以看做基向量缩放再合成的结果,所以我们只需要变换基向量即可
(0, j ⃗ \vec{j} j )在水平轴上的表示为(0,0)
( i ⃗ \vec{i} i ,0)在水平轴上的表示为( i ⃗ \vec{i} i ,0)
在水平轴上 p 2 ⃗ \vec{p2} p2 表示为: 3*( i ⃗ \vec{i} i ,0) + 2*(0,0) = (3 i ⃗ \vec{i} i ,0),由于这里只有一个轴,后面的分量其实是没意义的,所以可以写成3 i ⃗ \vec{i} i
在这里插入图片描述
接下来试着将 p ⃗ \vec{p} p 表示在L轴上, u ⃗ \vec{u} u 是在L轴上的单位向量
在这里插入图片描述
在这里插入图片描述
将( i ⃗ \vec{i} i ,0),(0, j ⃗ \vec{j} j ) 转换到L轴后变成了 i 2 ⃗ \vec{i2} i2 j 2 ⃗ \vec{j2} j2 ,那么 p 2 ⃗ \vec{p2} p2 = 3* i 2 ⃗ \vec{i2} i2 + 2* j 2 ⃗ \vec{j2} j2

i 2 ⃗ \vec{i2} i2 j 2 ⃗ \vec{j2} j2 怎么表示呢?它们跟基向量 u ⃗ \vec{u} u 有什么关系?
在这里插入图片描述
根据对偶性,可以看出 i ⃗ \vec{i} i u ⃗ \vec{u} u 上的投影长度和 u ⃗ \vec{u} u i ⃗ \vec{i} i 上的投影长度相等,那么上面的 i 2 ⃗ \vec{i2} i2 = u x u_x ux u ⃗ \vec{u} u ,同理 j 2 ⃗ \vec{j2} j2 = u y u_y uy u ⃗ \vec{u} u
这里的 u ⃗ \vec{u} u 是单位向量,那对于非单位向量呢,比如 k u ⃗ \vec{ku} ku = k ⋅ u ⃗ k\cdot\vec{u} ku ,它在 i ⃗ \vec{i} i j ⃗ \vec{j} j 上的投影是怎样的?
在这里插入图片描述
k u ⃗ \vec{ku} ku u ⃗ \vec{u} u 缩放了 k k k倍,对偶性被打破了
i ⃗ \vec{i} i k u ⃗ \vec{ku} ku 上的投影长度并没有改变, i ⃗ ⋅ k u ⃗ \vec{i}\cdot\vec{ku} i ku = k ( i ⃗ ⋅ u ⃗ ) k(\vec{i}\cdot\vec{u}) k(i u )
图中可以看出 k u ⃗ \vec{ku} ku i ⃗ \vec{i} i 上的投影长度被缩放了 k k k k u ⃗ ⋅ i ⃗ \vec{ku}\cdot\vec{i} ku i = k ( u ⃗ ⋅ i ⃗ ) k(\vec{u}\cdot\vec{i}) k(u i )
可见,对于非单位向量,彼此的投影仍然保持一致

所以无论 u ⃗ \vec{u} u 是不是单位向量, i ⃗ \vec{i} i j ⃗ \vec{j} j u ⃗ \vec{u} u 上的投影长度都为 u x 、 u y u_x、u_y uxuy
所以:
p 2 ⃗ \vec{p2} p2 = p x ⋅ i 2 ⃗ p_x\cdot\vec{i2} pxi2 + p y ⋅ j 2 ⃗ p_y\cdot\vec{j2} pyj2
= p x u x p_xu_x pxux u ⃗ \vec{u} u + p y u y p_yu_y pyuy u ⃗ \vec{u} u
= ( p x u x + p y u y p_xu_x+p_yu_y pxux+pyuy)* u ⃗ \vec{u} u
= p x u x + p y u y p_xu_x+p_yu_y pxux+pyuy (一个轴上的向量可直接用数值表示,数值绝对值表示向量长度,正负表示方向)
到此,我们得到了一个非常重要的结论:
向量 p ⃗ \vec{p} p 在向量 u ⃗ \vec{u} u 上的表示为 p x p_x px u x u_x ux + p y p_y py u y u_y uy
根据对偶性,向量 u ⃗ \vec{u} u 在向量 p ⃗ \vec{p} p 上的表示也为 p x p_x px u x u_x ux + p y p_y py u y u_y uy
咦,这不是向量点乘公式吗?并且满足交换律!
继续看,是不是觉得这个公式有点眼熟……
矩阵乘法:
[ a b ] [\begin{matrix} a\\ b \end{matrix}] [ab] ⋅ \cdot [ c d ] \begin{matrix} [c&d] \end{matrix} [cd] = a c + b d ac+bd ac+bd
如果将 p ⃗ \vec{p} p 写成列式 [ p x p y ] [\begin{matrix} p_x \\ p_y \end{matrix}] [pxpy], u ⃗ \vec{u} u 写成行式 [ u x u y ] \begin{matrix} [u_x&u_y] \end{matrix} [uxuy] p ⃗ ⋅ u ⃗ \vec{p}\cdot\vec{u} p u 就可以看做是矩阵乘法
p ⃗ ⋅ u ⃗ \vec{p}\cdot\vec{u} p u = [ p x p y ] [\begin{matrix} p_x \\ p_y \end{matrix}] [pxpy] ⋅ \cdot [ u x u y ] \begin{matrix} [u_x&u_y] \end{matrix} [uxuy] = p x p_x px u x u_x ux + p y p_y py u y u_y uy
看到这里,我们是否可以理解为:向量的点乘,其实就是将一个向量变换到另一个向量所在的坐标空间中

如下图:二维空间中的点,经过单位向量 u ⃗ \vec{u} u 变换后,在 u ⃗ \vec{u} u 所在轴上都能得到与之对应的值,这个过程我们可以看做是二维空间到一维空间的投射
在这里插入图片描述

a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s ( φ ) \vec{a} \cdot \vec{b}= |\vec{a}||\vec{b}|cos(\varphi) a b =a b cos(φ)
这个公式又是怎么得到的?
在这里插入图片描述
先复习下余弦定理:
∣ a ⃗ ∣ 2 |{\vec{a}}|^2 a 2 = ∣ c ⃗ ∣ 2 |{\vec{c}}|^2 c 2 + ∣ b ⃗ ∣ 2 |{\vec{b}}|^2 b 2
= ( ∣ c ⃗ ∣ s i n ( A ) ) 2 (|{\vec{c}}|sin(A))^2 (c sin(A))2 + ( ( ∣ b ⃗ ∣ − ∣ c ⃗ ∣ c o s ( A ) ) 2 ) ((|{\vec{b}}| - |{\vec{c}}|cos(A)) ^2) ((b c cos(A))2)
= ∣ c ⃗ ∣ 2 |{\vec{c}}|^2 c 2 s i n ( A ) 2 sin(A)^2 sin(A)2 + ∣ b ⃗ ∣ 2 |{\vec{b}}|^2 b 2 + ∣ c ⃗ ∣ 2 |{\vec{c}}|^2 c 2 c o s ( A ) 2 cos(A)^2 cos(A)2 - 2 ∣ c ⃗ ∣ ∣ b ⃗ ∣ c o s ( A ) 2|{\vec{c}}||{\vec{b}}|cos(A) 2c b cos(A)
= ∣ c ⃗ ∣ 2 |{\vec{c}}|^2 c 2( s i n ( A ) 2 sin(A)^2 sin(A)2 + c o s ( A ) 2 cos(A)^2 cos(A)2) + ∣ b ⃗ ∣ 2 |{\vec{b}}|^2 b 2 - 2 ∣ c ⃗ ∣ ∣ b ⃗ ∣ c o s ( A ) 2|{\vec{c}}||{\vec{b}}|cos(A) 2c b cos(A)
= ∣ c ⃗ ∣ 2 |{\vec{c}}|^2 c 2 + ∣ b ⃗ ∣ 2 |{\vec{b}}|^2 b 2 - 2 ∣ c ⃗ ∣ ∣ b ⃗ ∣ c o s ( A ) 2|{\vec{c}}||{\vec{b}}|cos(A) 2c b cos(A)

按照上面的推导:
2 ∣ c ⃗ ∣ ∣ b ⃗ ∣ c o s ( A ) 2|{\vec{c}}||{\vec{b}}|cos(A) 2c b cos(A) = ∣ c ⃗ ∣ 2 |{\vec{c}}|^2 c 2 + ∣ b ⃗ ∣ 2 |{\vec{b}}|^2 b 2 - ∣ a ⃗ ∣ 2 |{\vec{a}}|^2 a 2
= B x 2 B_x^2 Bx2 + B y 2 B_y^2 By2 + C x 2 C_x^2 Cx2 + C y 2 C_y^2 Cy2 - ( C x − B x ) 2 (C_x-B_x)^2 (CxBx)2 - ( C y − B y ) 2 (C_y-B_y)^2 (CyBy)2
= B x 2 B_x^2 Bx2 + B y 2 B_y^2 By2 + C x 2 C_x^2 Cx2 + C y 2 C_y^2 Cy2 - C x 2 C_x^2 Cx2 - B x 2 B_x^2 Bx2 + 2 C x B x 2C_xB_x 2CxBx - C y 2 C_y^2 Cy2 - B y 2 B_y^2 By2 + 2 C y B y 2C_yB_y 2CyBy
= 2( C x B x C_xB_x CxBx+ C y B y C_yB_y CyBy)
得到: ∣ c ⃗ ∣ ∣ b ⃗ ∣ C o s ( A ) |{\vec{c}}||{\vec{b}}|Cos(A) c b Cos(A) = C x B x C_xB_x CxBx+ C y B y C_yB_y CyBy

所以: a ⃗ ⋅ b ⃗ \vec{a} \cdot \vec{b} a b = a x b x + a y b y a_xb_x+a_yb_y axbx+ayby = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s ( φ ) |\vec{a}||\vec{b}|cos(\varphi) a b cos(φ) φ \varphi φ a ⃗ b ⃗ \vec{a}\vec{b} a b 夹角
根据点乘的结果来判断两个向量的方向关系:
大于 0:0 =< φ \varphi φ < p i / 2 pi/2 pi/2
等于 0: φ \varphi φ = p i / 2 pi/2 pi/2,两向量垂直
小于 0: p i / 2 pi/2 pi/2 < φ \varphi φ =< p i pi pi

从力学角度,是否还可以理解为力F在位移S上做的功?
W = ∣ F ⃗ ∣ ∣ S ⃗ ∣ c o s ( φ ) |\vec{F}||\vec{S}|cos(\varphi) F S cos(φ)
在这里插入图片描述

参考:https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw


http://chatgpt.dhexx.cn/article/FDOTZicr.shtml

相关文章

C语言——矩阵计算(转置、加法、减法、数乘、乘法)

使用该计算器可以帮助你快速完成矩阵的简单计算。 #include <stdio.h> void menu() {printf("****************************************************************\n");printf("****************************************************************\n"…

各种乘法的区别 “点积、外积、数乘...等

Ive seen several conventions, including ⋅⋅, ∘∘, ∗∗, ⊗⊗, and ⊙⊙. However, most of these have overloaded meanings (see http://en.wikipedia.org/wiki/List_of_mathematical_symbols). Thus, in my personal experience, the best choice Ive found is: ⊙(\o…

06 ,矩阵的运算:加法运算,数乘,矩阵乘向量,矩阵相乘

1 &#xff0c;矩阵计算 &#xff1a; 加法运算 前提 &#xff1a; 必须同型矩阵之间才可以进行加法运算运算 &#xff1a; 两个 m * n 矩阵相加总结 &#xff1a; 对应元相加 2 &#xff0c;矩阵计算 &#xff1a; 数乘 计算规则 &#xff1a; 3 &#xff0c;矩阵计算 &…

7.进入线性代数的奇妙世界:向量的乘法之数乘

向量的乘法有3种&#xff0c;一是数乘&#xff0c;二是点积&#xff0c;三是叉积。听起来名称有点陌生&#xff0c;别急&#xff0c;接下来一一道来&#xff0c;先讲数乘。 数乘&#xff0c;就是用数字乘以一个向量&#xff0c;或用向量乘以一个数字&#xff0c;两者之间结果相…

【图像特征提取】基于脉冲耦合神经网络(PCNN)实现图像特征提取含Matlab源码

1 简介 脉冲耦合神经网络&#xff08;PCNN——Pulse Coupled Neural Network&#xff09;,由于其非常接近人类大脑的生物神经网络的特性&#xff0c;现已广泛应用在图像处理中&#xff0c;是一种重要的信息处理工具&#xff0c;具有优良的自适应图像分割和自适应特征提取能力。…

CRCNN PCNN

目录 论文阅读前期准备前期知识储备学习目标 论文导读论文研究背景、成果及意义论文泛读论文结构摘要 论文精读CRCNN模型PCNN模型论文总结 论文阅读前期准备 前期知识储备 学习目标 论文导读 论文研究背景、成果及意义 回顾 Bootstrapping 远程监督 多示例学习 分类损失…

传统PCNN算法python实现

传统耦合神经网络&#xff08;pcnn&#xff09;算法的实现&#xff08;python&#xff09;&#xff1a; 参数的设定没有具体参考&#xff0c;这是一篇文献中的解释&#xff1a; # coding:utf-8 # from PIL import Image from pylab import * from scipy import signal as sg…

关系抽取远程监督PCNN:Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks

Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks 0 前言1 多示例学习2 数据集3 模型架构3.1 向量表示3.2 卷积、分段最大池化与分类3.3 样本选择与损失 5 结语6 参考资料 0 前言 远程监督&#xff08;distant supervision&#xff…

脉冲耦合神经网络(PCNN)的python实现

前言 看了很多人用matlab写的网络,竟然没有python代码。作为正在研究PCNN模型的一名学生,必须安排。 数学模型 打公式太麻烦,直接从截图啦,全连接模型,如下图1。 python代码 """ Created on Sun Jun 6 16:48:38 2021PCNN全连接 """ impor…

pytorch关系抽取框架OpenNRE源码解读与实践:PCNN ATT

pytorch关系抽取框架OpenNRE源码解读与实践&#xff1a;PCNN ATT 0 前言1 OpenNRE整体架构2 PCNNATT 模型架构2.1 PCNN Encoder2.2 Bag Attention 结语参考资料 0 前言 OpenNRE是清华大学推出的开源关系抽取框架&#xff0c;针对命名实体识别&#xff0c;句子级别的关系抽取&a…

【MATLAB图像融合】[14]PCNN脉冲耦合神经网络代码分享

本代码转自厦门大学屈小波教授15年的DEMO代码。 % Demo for PCNN in image processing % --------- % Author: Qu Xiao-Bo <qxb_xmu [at] yahoo.com.cn> Aug.28,2008 % Postal address: % Rom 509, Scientific Research Building # 2,Haiyun Campus, Xi…

PCNN探究实验

1.常规PCNN&#xff0c;采用kin的连接权矩阵&#xff0c;并固定参数beta 0.2 alph 0.22 Ve 50 周期为15 初次迭代&#xff0c;图像信息熵最大&#xff0c;但效果不是最好的&#xff0c;在周期临界位置的不同迭代次数有不同的分割效果&#xff0c;第11次迭代效果最好。 因此…

脉冲耦合神经网络(PCNN)的matlab实现

基本脉冲耦合神经网络的matlab实现 Gray 首先发现了猫的初生视觉皮层有神经激发相关振荡现象&#xff0c;并将其研究结果发在了 Nature 杂志上。与此同时&#xff0c; Eckhom 也根据猫的大猫皮层的同步脉冲发放现象&#xff0c;提出了脉冲发现的连接模式&#xff0c;将开拓性地…

【MATLAB图像融合】[18]双通道PCNN模型实现图像融合

引言 简单回顾一下以往的单通道PCNN模型&#xff0c;原理与实现步骤&#xff1a; 13、单通道PCNN原理 14、单通道PCNN融合代码实现 一、单通道PCNN 图1 单通道PCNN&#xff1a; 在单通道PCNN中&#xff0c;对于一个神经元的一次迭代过程正如图1描述&#xff1a; ①、F&#…

PCNN

Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks 1. 关键字 关系抽取&#xff0c;远程监督 2. 摘要 本文提出了PCNNs&#xff0c;用来解决远程监督关系抽取中的两个问题&#xff1a;一个是在对齐知识图谱时的错误标注问题&#xff0…

【NLP】基于神经网络PCNN(Piece-Wise-CNN)的关系抽取模型

背景 关系抽取是信息抽取的基本任务之一&#xff0c;对于知识库的构建以及文本的理解十分重要&#xff0c;在自然语言处理的一些任务&#xff0c;如问答&#xff0c;文本理解等得到了广泛的应用。 这里介绍的关系抽取主要指的是实体之间的关系抽取&#xff0c;实体是之前NER任…

PCNN 脉冲耦合神经网络整理

PCNN 脉冲耦合神经网络 脉冲耦合神经元模型 神经元的输入有哪些&#xff1f; 首先来看看这个神经元的图示的左边&#xff0c;有 Y Y Y和 F F F。 Y Y Y为这个神经元之前输出的数值&#xff0c;就是说这个模型需要进行多次的运算&#xff0c;每次的运算需要上一次运算的值来做…

关系抽取之分段卷积神经网络(PCNN)

文章目录 远程监督PCNN关系抽取PCNN方法论向量表达卷积层分段最大池化层Softmax层多实例学习 Reference Tensorflow2.2实现&#xff0c;见github仓库。 远程监督 关系抽取训练集标注成本高&#xff0c;一般使用远程监督方法&#xff08;半监督&#xff09;自动标注数据。远程监…

脉冲耦合神经网络(PCNN)阅读笔记

摘要 本文采用高级视觉模型来描述灵长类视觉系统中的信息传递和连接。信息链接方案&#xff0c;如状态相关模块化和时间同步&#xff0c;被视为视觉系统使用期望组合信息的方法&#xff0c;以填充缺失信息和删除不需要的信息。研究了使用基于生理学理论模型的链接方法结合当前…

PCNN的知识抽取

PCNN是一个结构简单的CNN网络, 它最初被用于在已知实体对位置时, 辨别实体对关系的网络. 上图是论文里带的PCNN结构图. PCNN的输入由两部分构成, 一部分是词本身的词向量word, 另一部分是词相对于实体词的位置信息position. PCNN优秀的地方就在于加入了位置信息, 具体如下: 1.…