numpy的dot函数计算两个向量 α \boldsymbol{\alpha} α和 β \boldsymbol{\beta} β的内积:
dot(a,b) \text{dot(a,b)} dot(a,b)
两个参数a和b表示参与计算的两个表示为数组的向量 α \boldsymbol{\alpha} α和 β \boldsymbol{\beta} β,函数返回值
α ∘ β \boldsymbol{\alpha}\circ\boldsymbol{\beta}α∘β。numpy.linalg的函数
norm(a) \text{norm(a)} norm(a)
计算表示成数组参数a的向量 α \boldsymbol{\alpha} α的模 ∣ α ∣ |\boldsymbol{\alpha}| ∣α∣
。利用dot和norm函数,可以计算两个同维向量的夹角 θ = arccos α β ∣ α ∣ ∣ β ∣
\theta=\arccos{\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}}
θ=arccos∣α∣∣β∣αβ。
例1 用Python计算ℝ 4 ^4 4中向量 α = ( 2 1 3 2 ) , β = ( 1 2 − 2 1 )
\boldsymbol{\alpha}=\begin{pmatrix}2\\1\\3\\2\end{pmatrix},\boldsymbol{\beta}=\begin{pmatrix}1\\2\\-2\\1\end{pmatrix}
α=⎝⎜⎜⎛2132⎠⎟⎟⎞,β=⎝⎜⎜⎛12−21⎠⎟⎟⎞之间的夹角 θ \theta θ。
import numpy as np #导入numpy a=np.array([2,1,3,2]) #向量a b=np.array([1,2,-2,1])
#向量b cost=np.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b)) #cos(t) print('%.4f'
%np.arccos(cost))
程序的第2、3行设置向量数据a和b。第4行计算 cos θ = α β ∣ α ∣ ∣ β ∣
\cos{\theta}=\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}
cosθ=∣α∣∣β∣αβ。第5行调用numpy的arccos函数计算 θ = arccos α β ∣ α ∣ ∣ β ∣
\theta=\arccos{\frac{\boldsymbol{\alpha}\boldsymbol{\beta}}{|\boldsymbol{\alpha}||\boldsymbol{\beta}|}}
θ=arccos∣α∣∣β∣αβ。运行程序,输出
1.5708
为 π 2 \frac{\pi}{2} 2π的精确到万分位的近似值。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!