Vector คือ mathematical object ที่สามารถนำมาแสดงให้เห็นภาพได้ด้วยลูกศร ดังภาพ
ในการคำนวณ vector จะถูกเขียนแทนด้วยตำแหน่งของปลายลูกศร เช่น (x,y) , (4,5), (0,1) ,...
หรือ
, [O คือ origin หรือตำแหน่ง (0,0)]
สิ่งที่ต้องคำนึงถึงในการคำนวณเกี่ยวกับ vector มีสองค่าคือ ขนาด (magnitude) และทิศทาง (direction) ของ vector
Magnitude ของ vector
คือขนาดหรือความยาวของ vector บางครั้งอาจใช้คำว่า norm ก็ได้ ใช้สัญญลักษณ์ และใช้วิธีการคำนวณตามแบบของ Pythagoras [1]
ในกรณีที่ vector มีมิติที่มากขึ้น จะใช้ Euclidean norm หรือ Euclidean distance [2]
การใช้ Python คำนวณหาค่า magnitude ของ vector
Direction of vector
direction of vector คือ vector ที่เกิดจากการหาร vector เดิมด้วยขนาดของตัวเอง นั่นคือ
ถ้า แล้ว direction ของ คือ
ภาษา Python ในการหา direction of vector
Dot product
คือ operation ระหว่าง vector 2 vector ที่ได้ผลลัพธ์ออกมาเป็นตัวเลข (scalar) บางครั้งเรียกว่า scalar product
ในทาง geometry นิยาม dot product ของ 2 vector ไว้คือ
เมื่อ คือมุมระหว่าง vector ทั้งสอง
ในกรณีที่ไม่ทราบมุมระหว่าง vector ก็สามารถหาค่า dot product ได้จาก
เอกสารอ้างอิง
[1] https://smarter-machine.blogspot.com/2018/03/trigonometry-trigonometry-identities.html
[2] https://en.wikipedia.org/wiki/Euclidean_distance
ในการคำนวณ vector จะถูกเขียนแทนด้วยตำแหน่งของปลายลูกศร เช่น (x,y) , (4,5), (0,1) ,...
สิ่งที่ต้องคำนึงถึงในการคำนวณเกี่ยวกับ vector มีสองค่าคือ ขนาด (magnitude) และทิศทาง (direction) ของ vector
Magnitude ของ vector
คือขนาดหรือความยาวของ vector บางครั้งอาจใช้คำว่า norm ก็ได้ ใช้สัญญลักษณ์
ในกรณีที่ vector มีมิติที่มากขึ้น
การใช้ Python คำนวณหาค่า magnitude ของ vector
import numpy as np
def magnitude(vector):
return np.linalg.norm(vector)
x = [4,5] # 2 dimension vector
norm_x = magnitude(x)
print(norm_x)
y = [4,5,6,7,8] # 5 dimension vector
norm_y = magnitude(y)
print(norm_y)
Direction of vector
direction of vector คือ vector ที่เกิดจากการหาร vector เดิมด้วยขนาดของตัวเอง นั่นคือ
ถ้า
ภาษา Python ในการหา direction of vector
import numpy as np
def direction(vector):
return vector / magnitude(vector)
x = [4,5] # 2 dimension vector
dir_x = direction(x)
print(dir_x)
y = [4,5,6,7,8] # 5 dimension vector
dir_y = direction(y)
print(dir_y)
Dot product
คือ operation ระหว่าง vector 2 vector ที่ได้ผลลัพธ์ออกมาเป็นตัวเลข (scalar) บางครั้งเรียกว่า scalar product
ในทาง geometry นิยาม dot product ของ 2 vector ไว้คือ
เมื่อ
def geo_dot(vect1,vect2,theta):
mag_vect1 = magnitude(vect1)
mag_vect2 = magnitude(vect2)
geo_dot = mag_vect1 * mag_vect2 * np.cos(np.radians(theta))
return geo_dot
x = [3,5]
y = [8,2]
theta = 45 # degrees
print(geo_dot(x,y,theta)) # 34.00000000000001
def alg_dot(vect1,vect2):
sum = 0
for i in range(len(vect1)) :
sum += vect1[i] * vect2[i]
return sum
x = [3,5]
y = [8,2]
print(alg_dot(x,y)) # 34
เทียบผลลัพธ์กับ numpy.dot()
x = [3,5]
y = [8,2]
print(alg_dot(x,y)) # 34
print(np.dot(x,y)) # 34
เอกสารอ้างอิง
[1] https://smarter-machine.blogspot.com/2018/03/trigonometry-trigonometry-identities.html
[2] https://en.wikipedia.org/wiki/Euclidean_distance
ความคิดเห็น
แสดงความคิดเห็น