การคำนวน Numpy dot product หรือ การคูณเมทริก (Matrix Multiplication)


การคูณเมทริก

  • แถว ของตัวตั้ง = หลักของตัวคูณ
  • ผลที่ได้ทำให้ Dimension เปลี่ยนไป

ตัวอย่างการหาผลคูณ Matrix

การคูณเวกเตอร์


การคุณเวกเตอร์ทำได้ 2 ประเภท

  • dot (.) ผลที่ได้เป็น scalar product

  • cross (x) ผลที่ได้เป็น Vector Poduct

Dot product

นิยาม1:

| 1,3,5 | และ |4,-2,-1| แทน ด้วย 1x + 3y +5z และ 4x -2y -1z

นิยาม2:

ตัวอย่างเป็นการหาค่าของ a.b (a dot b) ของ vector a และ vector b

# Array a = [1,3,-5]
a = np.array([1,3,-5])

# Array b = [4,-2,-1]
b = np.array([4,-2,-1])


# ผลคูณของ a * b = a0b0 + a1+b1 + ... + a(n)*b(n)
dot = a.dot(b)

หรือคำนวนโดยวิธีการด้านล่าง ก็ให้ผลเท่ากัน

# ตัวอย่าง
a = [1,3,-5]
b = [4,-2,-1]

np.dot(a,b)

# ตัวอย่าง
a=np.array([3,-5,+6])
b=np.array([0,2,0])

a.dot(b)

Cross product

เป็นการคูณ เวกเตอร์ชนิดหนึ่่งโดยผลที่ได้จะเป็นเวกเตอร์เช่นเดียวกัน

# ตัวอย่าง vector หนึ่งหน่วย
x = np.array([0,0,1])
y = np.array([0,1,0])

np.cross(x,y)
np.cross(y,x)

สูตรการ cross

# ตัวอย่าง cross 3d
x = [1, 2, 3]
y = [4, 5, 6]
np.cross(x, y)

การบวกลบเวกเตอร์ (Vector addition and subtraction)


การนำเวกเตอร์ มาบวก หรือ ลบ นั้นสามารถแสดงได้ด้วย รูปภาพโดยนำเอา หาง tail ของ y มาต่อกับหัว head ของ x

 x = np.array([3,2])
 y = np.array([5,1])
 z = x + y
 z

z = x - y
z

การหา inverse matrix

นิยม ของ Inverse ของ matric คือ matrix ที่เมือนำมาคูณกับ matric ตั้งต้นแล้ว จะได้เป็น เมทริก เอกลักษณ์ (identity matrix) โดยการหา Inverse จะใช้ ฟังก์ชั่น numpy.linalg.inv()

x = np.array([[1,2],[3,4]]) 
y = np.linalg.inv(x) 
x 
y 
np.dot(x,y)

การหาค่า determinant ของ matric

ค่า deteminant สามารถหาได้จาก numpy.linalg.det(a)

 a = np.array([[4, 2, 0], [9, 3, 7], [1, 2, 1]], float)
 a
 np.linalg.det(a)

results matching ""

    No results matching ""