点积和叉积

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

1、向量的点积

数量积又称标量积(Scalar product)、点积(Dot product),在欧几里得空间(Euclidean space)中称为内积(Inner product),对应元素相乘相加,结果是一个标量(即一个数)。
在这里插入图片描述

在这里插入图片描述

示例:
在这里插入图片描述
在numpy中 使用np.dot或numpy.inner()实现向量的点积

import numpy as np 
a = np.array([1,2,3])
b = np.array([4,5,6])

## 数量积  使用np.dot或np.inner
print(np.dot(a,b))

大家对点积比较熟悉,物理中功的定义就是力和位移的点积,功是个标量:

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

对于两个向量:

在这里插入图片描述

在这里插入图片描述
,点积
在这里插入图片描述

其中最后一个等号为爱因斯坦求和记号(Einstein summation notation),用于简化sigma表达。

2、向量的叉积

叉积,也称向量积,又称矢量积(Vector product)、叉积(Cross product)、外积(Outer product),结果是一个向量。

叉积是两个向量在三维欧氏空间中的二元操作,但叉积仅限于三维空间,对于其他维度的空间,则要使用外积,因此,不严谨的,可将叉积视为外积在三维空间中的特殊情况(有点瑕疵)。

在这里插入图片描述

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

示例:
在这里插入图片描述
numpy中 使用np.cross实现向量的叉积


import numpy as np 

a = np.array([1,2,3])
b = np.array([4,5,6])

## 叉积  使用np.cross
print(np.cross(a,b))

对于两个向量在这里插入图片描述
其中:
在这里插入图片描述分别表示两个向量的模长,
在这里插入图片描述 表示两个向量在其构建的平面中的夹角,

在这里插入图片描述是单位向量,垂直于这两个向量所张成的平面,方向可用下图的右手定则确定。

显然,叉积不满足交换律,而满足反交换律:

在这里插入图片描述

,即向量交换后,结果向量方向相反,不信伸出您的右手,比划下:

在这里插入图片描述
当两个向量平行时,两者夹角为0度,sine等于0,叉积也为0,几何上,共线的两个向量无法张成一个平行四边形;线性代数的角度,这两个向量线性相关了,无法张成(span)平面。显然,任何向量自叉乘为0:
在这里插入图片描述

当两个向量垂直时,它们夹角为90度,sine为1,叉乘达到最大值 :在这里插入图片描述
在这里插入图片描述

3、矩阵的点积

对于A 矩阵(m × s 阶),B 矩阵(s × n阶)(A的列数与B的行数相等),
在这里插入图片描述
两者的点积,即矩阵相乘的结果C = A B 是m × n 阶矩阵,

在这里插入图片描述
示例:
在这里插入图片描述

numpy实现


import numpy as np 

A1 = np.array([[1,2],[3,4]])
B1 = np.array([[5,6],[7,8]])
A2 = np.array([[1,2,3],[1,2,3]])
B2 = np.array([1,2,3])

## 数量积  使用np.dot
print(np.dot(A1,B1))
print(np.dot(A2,B2))

此外,numpyt提供了numpy.inner()函数,从字面意思理解是内积,其针对向量numpy.inner()与numpy.dot()输出一致,但针对矩阵有所不同。

print(np.inner(A1,B1))

在这里插入图片描述

print(np.inner(A2,B2))

在这里插入图片描述

4、矩阵的叉积

针对矩阵并不存在叉积的概念,numpy中针对矩阵的叉积运算是按照向量的叉积进行运算。

示例:
在这里插入图片描述

numpy实现

import numpy as np 

A1 = np.array([[1,2],[3,4]])
B1 = np.array([[5,6],[7,8]])
A2 = np.array([[1,2,3],[1,2,3]])
B2 = np.array([1,2,3])

## 叉积  使用np.cross
print(np.cross(A1,B1))
print(np.cross(A2,B2))

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Adunn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值