Vector คือ mathematical object ที่สามารถนำมาแสดงให้เห็นภาพได้ด้วยลูกศร ดังภาพ
ในการคำนวณ vector จะถูกเขียนแทนด้วยตำแหน่งของปลายลูกศร เช่น (x,y) , (4,5), (0,1) ,...
สิ่งที่ต้องคำนึงถึงในการคำนวณเกี่ยวกับ vector มีสองค่าคือ ขนาด (magnitude) และทิศทาง (direction) ของ vector
Magnitude ของ vector
คือขนาดหรือความยาวของ vector บางครั้งอาจใช้คำว่า norm ก็ได้ ใช้สัญญลักษณ์ \(\mid\mid OA\mid\mid \text{หรือ} \mid\mid x\mid\mid \) และใช้วิธีการคำนวณตามแบบของ Pythagoras [1]
ในกรณีที่ vector มีมิติที่มากขึ้น \( \overrightarrow{OA} = (x_1,x_2,x_3,...,x_n) \) จะใช้ Euclidean norm หรือ Euclidean distance [2]
การใช้ Python คำนวณหาค่า magnitude ของ vector
Direction of vector
direction of vector คือ vector ที่เกิดจากการหาร vector เดิมด้วยขนาดของตัวเอง นั่นคือ
ถ้า \( \overrightarrow{u} = (x_1,x_2) \) แล้ว direction ของ \( \overrightarrow{u} \) คือ
ภาษา Python ในการหา direction of vector
Dot product
คือ operation ระหว่าง vector 2 vector ที่ได้ผลลัพธ์ออกมาเป็นตัวเลข (scalar) บางครั้งเรียกว่า scalar product
ในทาง geometry นิยาม dot product ของ 2 vector ไว้คือ
เมื่อ \( \theta\) คือมุมระหว่าง 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) ,...
\( \vec{a} = (x,y) \) หรือ
\( \vec{OA} = (x,y) \), [O คือ origin หรือตำแหน่ง (0,0)]
\( \vec{OA} = (x,y) \), [O คือ origin หรือตำแหน่ง (0,0)]
สิ่งที่ต้องคำนึงถึงในการคำนวณเกี่ยวกับ vector มีสองค่าคือ ขนาด (magnitude) และทิศทาง (direction) ของ vector
Magnitude ของ vector
คือขนาดหรือความยาวของ vector บางครั้งอาจใช้คำว่า norm ก็ได้ ใช้สัญญลักษณ์ \(\mid\mid OA\mid\mid \text{หรือ} \mid\mid x\mid\mid \) และใช้วิธีการคำนวณตามแบบของ Pythagoras [1]
\( \mid\mid OA\mid\mid = \sqrt[2]{x^2 + y^2} \)
ในกรณีที่ vector มีมิติที่มากขึ้น \( \overrightarrow{OA} = (x_1,x_2,x_3,...,x_n) \) จะใช้ Euclidean norm หรือ Euclidean distance [2]
\(\mid\mid OA\mid\mid = \sqrt[2]{x_1^2 +x_2^2 +x_3^2 + ...+x_n^2 } \)
การใช้ 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 เดิมด้วยขนาดของตัวเอง นั่นคือ
ถ้า \( \overrightarrow{u} = (x_1,x_2) \) แล้ว direction ของ \( \overrightarrow{u} \) คือ
\( \overrightarrow{w} = (\frac{x_1}{\mid\mid u \mid\mid},\frac{x_2}{\mid\mid u \mid\mid})\)
ภาษา 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 ไว้คือ
\( \large \bf {\vec{x} \cdot \vec{y} = \mid\mid x \mid\mid \times \mid\mid y \mid\mid \times cos(\theta)} \)
เมื่อ \( \theta\) คือมุมระหว่าง 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
\( \bf \large \vec x \cdot \vec y = \sum_{i=1}^n (x_i\times y_i) \)
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
ความคิดเห็น
แสดงความคิดเห็น