Phép nhân ma trận 2x2 trong python

Chúng ta sẽ viết một chương trình Python để lấy phép nhân hai ma trận đầu vào và in kết quả ra đầu ra. Chương trình Python này chỉ định cách nhân hai ma trận, có một số giá trị nhất định

Trước khi viết chương trình Python, trước tiên chúng ta hãy xem tổng quan về phép nhân hai ma trận

Phép nhân ma trận

Phép nhân ma trận là một phép toán nhị phân sử dụng một cặp ma trận để tạo ra một ma trận khác. Các phần tử trong ma trận được nhân theo cấp số cộng sơ cấp

Trong phép nhân hai ma trận, các phần tử hàng của ma trận thứ nhất được nhân với các phần tử cột của ma trận thứ hai

Ví dụ. Giả sử ta cho hai ma trận A và B sau

C sẽ là phép cộng của hai ma trận đã cho ở trên, i. e. , C = A+B, và do đó C phải là

Như chúng ta có thể thấy rằng ma trận kết quả C, còn được gọi là tích ma trận, có cùng số hàng với ma trận thứ nhất [ma trận A] và cùng số cột với ma trận thứ hai [ma trận B]. Chúng ta cũng biết loại phép nhân ma trận này là tích vô hướng của ma trận

Nhân hai ma trận

Bây giờ, chúng ta sẽ viết một chương trình Python để nhân hai ma trận trong đó chúng ta thực hiện phép nhân như chúng ta đã thực hiện trong ví dụ trên. Chúng ta có thể sử dụng nhiều phương thức khác nhau để viết một chương trình Python như thế này, nhưng trong hướng dẫn này, chúng ta sẽ chỉ sử dụng hai phương thức sau

  1. Sử dụng phương thức vòng lặp for lồng nhau
  2. Sử dụng phương pháp hiểu danh sách lồng nhau

Trong cả hai phương pháp, chúng tôi sẽ viết một chương trình ví dụ để hiểu cách thực hiện của chúng để nhân hai ma trận

Phương pháp 1. Sử dụng phương thức vòng lặp for lồng nhau

Trong phương pháp này, chúng ta sẽ sử dụng vòng lặp for lồng nhau trên hai ma trận và thực hiện phép nhân trên chúng và lưu trữ kết quả phép nhân trong ma trận thứ ba làm giá trị kết quả

Hãy hiểu cách thực hiện phương pháp này thông qua ví dụ sau

Ví dụ. Nhìn vào chương trình Python sau

đầu ra

The multiplication result of matrix A and B is: 
[37, 43, 59]
[34, 58, 62]
[58, 92, 103]

Phương pháp 2. Sử dụng phương pháp hiểu danh sách lồng nhau

Trong phương pháp này, chúng tôi sẽ sử dụng cách hiểu danh sách lồng nhau để lấy kết quả nhân của hai ma trận đầu vào. Trong khi sử dụng phương pháp hiểu danh sách trong chương trình, chúng tôi cũng sẽ sử dụng 'zip in Python' trên danh sách lồng nhau. Hãy cùng tìm hiểu cách thực hiện của phương thức này thông qua ví dụ sau

Phép nhân là một trong những phép toán cơ bản mà chúng ta thực hiện trên ma trận. Điều kiện duy nhất để nhân hai ma trận là số cột của ma trận thứ nhất phải bằng số hàng của ma trận thứ hai

Giả sử ma trận thứ nhất A là mxn và ma trận thứ hai B là nxk thì tích của hai ma trận này i. e. AB sẽ là một ma trận mxk

Ví dụ -

Xin lưu ý ở đây A là ma trận 2×3, B là ma trận 3×2 Vậy AB là ma trận 2X2

Nhân hai ma trận

Có nhiều cách để bạn có thể viết chương trình nhân hai ma trận trong Python. Chúng ta sẽ thảo luận về các phương pháp sau -

  • Sử dụng vòng lặp for lồng nhau
  • Sử dụng hiểu danh sách
  • Sử dụng mảng Numpy

Vì vậy, hãy xem -

Phép nhân ma trận sử dụng vòng lặp for lồng nhau

Trong phương pháp này, chúng tôi lặp qua các hàng và cột của ma trận bằng cách sử dụng các phần tử ma trận nhân vòng lặp lồng nhau và đặt chúng vào một ma trận thứ ba

# Python program to multiply two matrices using nested for loops

# 2x3 matrix
A = [[1,2,3],
    [4 ,5,6]]
# 3x2 matrix
B = [[10,11],
    [20,21],
    [30,31]]
# resultant matrix will be 2x2
resultant_matrix = [[0,0],
                   [0,0]]

# Iterate through rows of matrix A
for i in range[len[A]]:
   # Iterate through columns of matrix B
   for j in range[len[B[0]]]:
       # Iterate through rows of B
       for k in range[len[B]]:
           resultant_matrix[i][j] += A[i][k] * B[k][j]

for r in resultant_matrix:
   print[r]

Lưu chương trình này với. py và thực thi nó như được đưa ra bên dưới –

python3 /home/lalit/python_programs/matrix_multiplication.py

Bạn có thể thấy đầu ra của lệnh này trong hình ảnh đã cho –

Phép nhân ma trận sử dụng hiểu danh sách

Sử dụng khả năng hiểu danh sách, bạn có thể viết cùng một đoạn mã chỉ trong một vài dòng. Bạn có thể thấy cách sử dụng của nó trong phép nhân hai ma trận trong Python

# Python program to multiply two matrices using list comprehension

# The given matrix is a 3x3 matrix
A = [[-1,0,9],
    [8,3,6],
    [7,5,2]]

# The given matrix is 3x4 matrix
B = [[3,0,1,2],
    [1,0,3,7],
    [1,4,1,1]]

# result will be a 3x4 matrix
resultant_matrix = [[sum[a*b for a,b in zip[A_row,B_col]] for B_col in zip[*B]] for A_row in A]

for r in resultant_matrix:
   print[r]

Khi bạn thực thi mã này, nó sẽ hiển thị tích của ma trận A và B. Hình ảnh sau đây cho thấy đầu ra của chương trình này –

Nhân ma trận bằng NumPy

Chương trình sau đây cho thấy phép nhân của hai ma trận bằng cách sử dụng Numpy trong Python

# Python program to multiply two matrices using Numpy array

import numpy as np

#  3x2 matrix
A = [[2, 6],
    [9, -1],
    [0, 8]]

# 2x3 matrix
B = [[1, 4, 3],
    [0, 8, 5]]

# result will be 3x3

result= [[0,0,0],
         [0,0,0],
         [0,0,0]]

result = np.dot[A,B]

for r in result:
	print[r]

Khi thực thi đoạn mã trên, nó sẽ hiển thị đầu ra đã cho trong thiết bị đầu cuối của bạn –

Vì vậy, ở đây chúng ta đã thảo luận về các cách khác nhau để nhân hai ma trận. Bây giờ đối với bất kỳ truy vấn nào bạn có thể viết cho chúng tôi trong phần bình luận bên dưới

Chủ Đề