向量和矩阵的点乘和叉乘

article/2025/10/3 21:01:26

向量


定义:向量是由N个实数组成的一行N列或N行一列的的数组。

  • 点乘:又叫做点积、内积、数量积、标量积,向量a[a1,a2,...,an]和向量b[b1,b2b...,bn]点乘的结果是一个标量,记作a.b

几何解释:a.b = |a| |b| cos \theta,故而点乘可以计算出两个向量的夹角,且向量垂直,点乘结果为零。

  • 叉乘:又叫向量积、外积、叉积,叉乘,向量a[x1,y1,z1]和向量b[x2,y2,z2]叉乘的运算结果是一个向量,并且两个向量的叉积与这两个向量组成的坐标平面垂直,记作axb

计算方式:利用行列式方式,设i[1,0,0],j[0,1,0],k[0,0,1],则如下图:

几何解释:axb =  |a| |b| sin \Theta,故两个向量平行,则其叉乘等于零。

几何意义:叉积的长度|a×b|可以解释成这两个叉乘向量ab共起点时,所构成平行四边形的面积。

Numpy实现向量的点乘和叉乘

点乘需要用到numpy库的dot函数,得到一个标量。叉乘需要用到numpy库的cross函数。

In [1]: import numpu as np   
In [2]: a = np.array([1,2,3]) 
In [3]: b = np.array([2,2,3])   
In [4]: np.dot(a,b)  
Out[4]: 15
In [5]: np.cross(a,b)                                                                                                                                            
Out[5]: array([ 0,  3, -2])

矩阵直接使用*相乘的处理方式是向量对应位置相乘,维数不变,它与np.multiply函数效果一样,均是元素相乘。

In [6]: a*b               
Out[6]: array([2, 4, 9])
In [7]: np.multiply(a,b)                                                                
Out[7]: array([2, 4, 9])

矩阵


定义:是一个按照长方阵列排列的复数或实数集合。

  • 矩阵点乘:是矩阵各个对应元素相乘, 这个时候要求两个矩阵必须同样大小。
  • 矩阵叉乘:矩阵的乘法就是矩阵a的第m行乘以矩阵b的第n列,各个元素对应相乘然后求和作为第m行n列元素的值。

Numpy实现矩阵的点乘和叉乘

矩阵的点乘直接使用*号即可,也可以使用 numpy库的multiply函数,叉乘使用dot函数,这与向量相反

In [1]: a = np.array([[1,2],[3,4]])                 
In [2]: b = np.array([[5,6],[7,8]]) 
In [3]: a*b                                                                                
Out[3]: 
array([[ 5, 12],[21, 32]])
In [4]: np.dot(a,b)                                                
Out[4]: 
array([[19, 22],[43, 50]])
In [34]: np.multiply(a,b)                                                                                                                                         
Out[34]: 
array([[ 5, 12],[21, 32]])

总结Numpy库


numpy库的对象有数组和矩阵,两者看起来长得差不多,但在性质、运算上有很大不同。可通过array函数mat函数相互转化。

  • dot函数

对于秩为1的数组,执行对应位置相乘,然后再相加,等价于向量的点乘

对于秩不为1的二维数组,执行矩阵乘法运算,等价于矩阵的叉乘

  • multiply函数

数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致,效果上与运算符*对数组效果一样。

  • 运算符*号

对数组执行对应位置相乘,等价于multiply函数

对矩阵执行矩阵乘法运算,等价于dot函数


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

相关文章

向量叉乘与叉乘矩阵

本文以三维向量来说明向量的叉乘计算原理以及叉乘矩阵如何求取 1、向量叉乘的计算原理 a、b分别为三维向量: a叉乘b一般定义为: 或 可是这只是一个符号的定义啊,具体怎么得到代数值呢 关键方法就是引入单位坐标向量, 这里用i j k…

3维向量的点乘叉乘运算

3维向量的点乘叉乘运算 文章目录 3维向量的点乘叉乘运算三维向量的点乘三维向量的叉乘点到直线的距离点到平面的距离 三维向量的点乘 点乘得到的是对应元素乘积的和,是一个标量,没有方向 V1( x1, y1, z1)V2(x2, y2, z2) x1x2 y1y2 z1*z2 点乘可以用…

通俗理解三维向量的点乘与叉乘

通俗理解三维向量的点乘和叉乘 一般接触得比较多的是二维向量的点乘和叉乘,但是做到与三维几何相关的工作的时候,三维向量的知识是必不可少的。 注意:三维向量和三维矢量是同一个东西,都是来自英文单词的Vector的中文翻译&#…

栅栏密码加密/解密【传统型】在线工具

栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。 遇到这种的栅栏加密的密文,解密的…

栅栏密码加密/解密【W型】在线工具

栅栏密码加密/解密【W型】在线工具 栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。 本工具所…

栅栏密码解密

题目: 一只小羊翻过了2个栅栏 KYsd3js2E{a2jda} 通过栅栏密码在线解密即可得出flag 解密结果: flagKEY{sad23jjdsa2}

猪圈密码 摩斯密码 QWE加密 栅栏加密 当铺密码

1.猪圈密码 猪圈密码:对应下图就是HORSE 2.摩斯密码 在线摩斯密码翻译器:http://www.mathsking.net/morse.htm 3.QWE加密 键盘按ABC的顺序排列得到对应的字母,QA,WB.... 4.栅栏加密 加密过程: 如果我们想要加密一句话,…

python3解密栅栏密码的正确方法

python3解密栅栏密码的正确方法 今天在做ctf时想找一个栅栏密码的解密脚本,在网上搜过了下,发现竟然没找到一个正确的脚本(也可能是自己的搜索水平太差),倒不是说大家的脚本都有问题,只是在解决特殊情况时…

维吉尼亚密码加密/解密在线工具

维吉尼亚密码加密/解密在线工具,工具链接:http://www.atoolbox.net/Tool.php?Id856 维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行及26列的字母表。另外…

Crypto之栅栏密码

栅栏密码是一种简单的移动字符位置的加密方法,规则简单,容易破解。栅栏密码的加密方式:把文本按照一定的字数分成多个组,取每组第一个字连起来得到密文1,再取每组第二个字连起来得到密文2……最后把密文1、密文2……连…

CTF-Show密码学【Base64、栅栏密码、16进制】

题目内容 密文:53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F4749345A6A526B4F48303D 提交格式:KEY{XXXXXXXXXXXXXX}工具下载:https://www.lanzoui.com/i9fn2aj萌新_密码13 分析和解决过程 初步分析…

CTF密码学·置换密码,栅栏密码,曲路密码

CTF密码学置换密码,栅栏密码,曲路密码 1.置换密码列置换周期置换 2.栅栏密码3.曲路密码 1.置换密码 置换密码(Permutation Cipher)又叫换位密码(Transposi-tionCipher),它根据一定的规则重新排列明文,以便…

从加(解)密角度讲栅栏密码

目录 普通型栅栏加密原理解密原理 W型栅栏加密原理实例 解密原理 这今天在做新生赛的一道“只有倒着翻过十八层的篱笆才能抵达北欧神话的终点”,研究了很长时间的栅栏原理,flag没出来,而且自己对于普通和W型的加密解密整的有的蒙… 原先一篇文…

栅栏密码及其变形W型栅栏密码

栅栏密码 题目描述 名称:铁栅栏 提示:我拿到一幅画,上面画着一个农妇在栅栏里面喂5只小鸡 密文:Sv9eaj3O}B{zy1vailw5YFhQ 加密原理 把将要传递的信息中的字母交替排成上下两行。再将下面一行字母排在上面一行的后边&#x…

详解W形状的栅栏密码

最近做密码学题目的时候碰到了一个特别的栅栏密码:加密后为:ccehgyaefnpeoobe{lcirg}epriec_ora_g,由题目得知密钥为5,在网上用普通的解码器只会得到一个令人黑人问号的字符串,在网上找题解的时候才知道这叫W形栅栏密码…

栏栅解密

围在栏栅中的爱(栏栅密码) 我们需要了解什么是栏栅密码,经过我的百度了解到 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则…

【网络安全】python实现栅栏密码加解密

1.栅栏密码介绍 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。 —百度百科 例如: 将明文字符串&quo…

W型加密栅栏密码解密

题目描述:被小鱼一连将了两军,你心里更加不服气了。两个人一起继续往前走, 一路上杂耍卖艺的很多,但是你俩毫无兴趣,直直的就冲着下一个谜题的地方去了。 到了一看,这个谜面看起来就已经有点像答案了样子了…

python实现栅栏密码加解密

1.栅栏密码介绍 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。 —百度百科 例如: 将明文字符串&quo…

CTF之做题总结(二)

Crypto(密码学)做题记录 1、Railfence(栅栏密码) 我们先来看一下题目描述: 题目附件的内容是: ccehgyaefnpeoobe{lcirg}epriec_ora_g 从题目Railfence(栅栏密码)和题目描述中我们…