Làm thế nào để bạn viết một chương trình nhân ma trận trong python?

Trong hướng dẫn này, bạn sẽ học cách nhân hai ma trận trong Python. Ma trận là cấu trúc dữ liệu hai chiều trong đó các số được sắp xếp thành hàng và cột. Python không có kiểu dựng sẵn cho ma trận nhưng chúng ta có thể coi danh sách lồng nhau hoặc danh sách của danh sách dưới dạng ma trận. Danh sách là một tập hợp có thứ tự các phần tử được đặt trong dấu ngoặc vuông [ ]. Khi đó, mỗi phần tử trong danh sách sẽ được coi là một hàng của ma trận

Ví dụ: A= [ [1, 2], [3, 4]] là ma trận 2x2. Hàng đầu tiên có thể được chọn là A[0] và phần tử ở hàng đầu tiên, cột đầu tiên có thể được chọn là A[0][0]

Phép nhân hai ma trận chỉ thực hiện được nếu số cột của ma trận thứ nhất bằng số hàng của ma trận thứ hai

Nếu m và n là các hàng và cột của ma trận A, p và q là các hàng và cột của ma trận B thì phép nhân sẽ thực hiện được nếu, n=p và ma trận kết quả sẽ là,

Đầu vào

A=[ [1,2], [3,4] ]

B=[ [1,3], [2,5] ]

đầu ra. [ [5, 13], [11, 29] ]

Để nhân hai ma trận trong Python, chúng ta có thể làm theo các cách sau

  1. Sử dụng vòng lặp lồng nhau
  2. Sử dụng hiểu danh sách lồng nhau
  3. Sử dụng mô-đun numpy

Cách tiếp cận 1. vòng lồng nhau

Đối với cách tiếp cận này, chúng tôi sẽ sử dụng các vòng lặp lồng nhau đơn giản là một vòng lặp trong một vòng lặp, để nhân các ma trận và lưu trữ chúng trong một ma trận kết quả. Chúng ta sẽ sử dụng ba vòng lặp, vòng lặp đầu tiên sẽ lặp qua các hàng của ma trận A và vòng lặp thứ hai sẽ lặp qua các cột của ma trận A và vòng lặp thứ ba sẽ lặp qua các hàng của ma trận B

thuật toán

Thực hiện theo thuật toán để hiểu cách tiếp cận tốt hơn

Bước 1- Định nghĩa một hàm sẽ nhân hai ma trận

Bước 2- Trong hàm, khai báo một danh sách sẽ lưu danh sách kết quả

Bước 3- Lặp qua các hàng và cột của ma trận A và hàng của ma trận B

Bước 4- Nhân các phần tử của hai ma trận và lưu vào danh sách kết quả

Bước 5- In danh sách kết quả

Bước 6- Khai báo và đặt giá trị cho hai ma trận

Bước 7- Gọi hàm, kết quả sẽ được in ra

Chương trình Python 1

Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên. Chương trình này sẽ hoạt động cho ma trận 3x3

def Multiply[A,B]:
    result=[ [0,0,0],[0,0,0],[0,0,0] ]
    #for rows
    for i in range[len[A]]:
        #for columns
        for j in range[len[B[0]]]:
            #for rows of matrix B
            for k in range[len[B]]:
                result[i][j] += A[i][k] * B[k][j]

    for p in result:
        print[p]

    return 0

A = [ [1, 2, 3],[6, 7, 4], [8, 10, 11] ]
  
B = [[1, 5, 3],[2, 6, 5], [7, 4, 9] ]

print["Result: "]
Multiply[A,B]


Kết quả.
[26, 29, 40]
[48, 88, 89]
[105, 144, 173]

Chủ Đề