引言
前序學習進程中,已經對向量的基礎定義有所了解,已經知曉了向量的值和方向向量的定義,學習鏈接如下:
向量的值和方向
在此基礎上,本文進一步學習向量點積。
向量點積
向量點積運算規則,我們在中學階段就相當熟悉,對于二維的初始向量:u=(x1,x2)、v=(y1,y2),滿足:uv=x1y1+x2y2
但實際上向量可能不止是二維的,比如u=(x1,x2,x3)和v=(y1,y2,y3),所以對于向量點積有更為通用的計算式:
u?v=∑i=1n(xiyi)u\cdot v=\sum_{i=1}^{n}(x_{i}y_{i}) u?v=i=1∑n?(xi?yi?)
基于此,我們可以使用numpy模塊完成點積運算:
# 引入模塊
import numpy as np
# 輸入向量
x=[3,4]
# 計算向量的值
y=np.linalg.norm(x)
# 輸出向量的值
print('y=',y)# 定義方向向量計算函數
def direction(x):return x/np.linalg.norm(x)# 提取方向向量計算值
w=direction(x)
# 輸出方向向量計算效果
print('w=',w)# 定義點積函數
def dot_product(x,y):# 定義初始值p=0for i in range(len(x)):# 點積計算p=p+x[i]*y[i]# 返回點積計算值return p
# 向量輸入
x=[3,5,8]
y=[5,6,10]
# 獲取點積值
z=dot_product(x,y)
# 輸出點積值
print(z)
代碼運行效果為:
計算過程可以理解為:35+56+8*10=125
總結
對向量點積進行了學習。