Chương trình nhân ma trận trong python

Đưa ra hai ma trận đầu vào của người dùng. Nhiệm vụ của chúng ta là hiển thị phép cộng hai ma trận. Trong những vấn đề này, chúng tôi sử dụng Danh sách lồng nhau toàn diện

thuật toán

Step1: input two matrix.
Step 2: nested for loops to iterate through each row and each column.
Step 3: take one resultant matrix which is initially contains all 0. Then we multiply each row elements of first matrix with each elements of second matrix, then add all multiplied value. That is the value of resultant matrix.

Mã ví dụ

# Program to multiply two matrices
A=[]
n=int[input["Enter N for N x N matrix: "]]         
print["Enter the element ::>"]
for i in range[n]: 
   row=[]                                      #temporary list to store the row
   for j in range[n]: 
      row.append[int[input[]]]           #add the input to row list
      A.append[row]                      #add the row to the list
print[A]
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#Display the 2D array
print["Display Array In Matrix Form"]
for i in range[n]:
   for j in range[n]:
      print[A[i][j], end=" "]
   print[]                                        #new line
B=[]
n=int[input["Enter N for N x N matrix : "]]           #3 here
#use list for storing 2D array
#get the user input and store it in list [here IN : 1 to 9]
print["Enter the element ::>"]
for i in range [n]: 
   row=[]                                      #temporary list to store the row
   for j in range[n]: 
      row.append[int[input[]]]           #add the input to row list
      B.append[row]                       #add the row to the list
print[B]
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#Display the 2D array
print["Display Array In Matrix Form"]
for i in range[n]:
   for j in range[n]:
      print[B[i][j], end=" "]
   print[]                                           
result = [[0,0,0], [0,0,0], [0,0,0]] 
for i in range[len[A]]: 
   for j in range[len[B[0]]]: 
      for k in range[len[B]]: 
         result[i][j] += A[i][k] * B[k][j] 
print["The Resultant Matrix Is ::>"]
for r in result: 
   print[r] 

đầu ra

Enter N for N x N matrix: 3
Enter the element ::>
2
1
4
2
1
2
3
4
3
[[2, 1, 4], [2, 1, 2], [3, 4, 3]]
Display Array In Matrix Form
2 1 4 
2 1 2 
3 4 3 
Enter N for N x N matrix : 3
Enter the element ::>
1
2
3
4
5
6
7
8
9
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Display Array In Matrix Form
1 2 3 
4 5 6 
7 8 9 
The Resultant Matrix Is ::>
[34, 41, 48]
[20, 25, 30]
[40, 50, 60]

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ủ Đề