Kalikan 2 matriks dengan python

Diberikan dua matriks input pengguna. Tugas kita adalah menampilkan penambahan dua matriks. Dalam masalah ini kami menggunakan Daftar bersarang komprehensif

Algoritma

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.

Kode Contoh

# 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) 
_

Keluaran

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]

Dalam tutorial ini, Anda akan belajar mengalikan dua matriks dengan Python. Matriks adalah struktur data dua dimensi di mana angka disusun menjadi baris dan kolom. Python tidak memiliki tipe bawaan untuk matriks tetapi kita dapat memperlakukan daftar bersarang atau daftar dari daftar sebagai matriks. Daftar adalah sekumpulan elemen terurut yang diapit tanda kurung siku [ ]. Setiap elemen dalam daftar kemudian akan diperlakukan sebagai deretan matriks

Misalnya, A= [ [1, 2], [3, 4]] adalah matriks 2x2. Baris pertama dapat dipilih sebagai A[0] dan elemen di baris pertama, kolom pertama dapat dipilih sebagai A[0][0]

Perkalian dua matriks hanya dapat dilakukan jika jumlah kolom matriks pertama sama dengan jumlah baris matriks kedua.

Jika m dan n adalah baris dan kolom dari matriks A, p dan q adalah baris dan kolom dari matriks B, maka perkalian akan dimungkinkan jika, n=p dan matriks yang dihasilkan adalah,

Kalikan 2 matriks dengan python

Memasukkan

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

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

Keluaran. [ [5, 13], [11, 29] ]

Untuk mengalikan dua matriks dengan Python, kita bisa mengikuti pendekatan berikut

  1. Menggunakan loop bersarang
  2. Menggunakan pemahaman daftar bersarang
  3. Menggunakan modul numpy

Pendekatan 1. loop bersarang

Untuk pendekatan ini, kita akan menggunakan perulangan bersarang yang merupakan perulangan di dalam perulangan, untuk mengalikan matriks dan menyimpannya dalam matriks resultan. Kami akan menggunakan tiga loop, loop pertama untuk iterasi melalui baris matriks A dan loop kedua untuk iterasi melalui kolom matriks A dan loop ketiga akan mengulangi baris matriks B

Algoritma

Ikuti algoritme untuk memahami pendekatan dengan lebih baik

Langkah 1- Tentukan fungsi yang akan mengalikan dua matriks

Langkah 2- Dalam fungsinya, nyatakan daftar yang akan menyimpan daftar hasil

Langkah 3- Ulangi baris dan kolom matriks A dan baris matriks B

Langkah 4 - Kalikan elemen dalam dua matriks dan simpan dalam daftar hasil

Langkah 5- Cetak daftar yang dihasilkan

Langkah 6- Deklarasikan dan tetapkan nilai untuk dua matriks

Langkah 7- Panggil fungsi, hasilnya akan dicetak

Program Piton 1

Lihatlah program untuk memahami penerapan pendekatan yang disebutkan di atas. Program ini akan bekerja untuk matriks 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)


Hasil
[26, 29, 40]
[48, 88, 89]
[105, 144, 173]

Pendekatan 2. pemahaman daftar bersarang

Pemahaman daftar adalah sintaks yang lebih singkat untuk membuat daftar baru berdasarkan nilai dari daftar yang sudah ada. Kami akan menyimpan produk dari dua matriks dan menyimpannya di daftar baru. Kami akan menggunakan pemahaman daftar bersarang untuk mengulangi setiap elemen dalam matriks. Pemahaman daftar memungkinkan kita untuk menulis kode ringkas dengan Python

Algoritma

Ikuti algoritme untuk memahami pendekatan dengan lebih baik

Langkah 1- Tentukan fungsi yang akan menambahkan dua matriks

Langkah 2- Dalam fungsi, nyatakan daftar yang akan menyimpan hasilnya

Langkah 3- Melalui pemahaman daftar gandakan elemen yang sesuai dan simpan dalam daftar hasil

Langkah 4- Cetak daftar yang dihasilkan

Langkah 5- Deklarasikan dan tetapkan nilai untuk dua matriks

Langkah 6- Panggil fungsi, hasilnya akan dicetak

Program Python2

Lihatlah program untuk memahami penerapan pendekatan yang disebutkan di atas. Program ini akan bekerja untuk matriks 3x3

def Multiply(X,Y):

    result=[ [0,0,0],[0,0,0],[0,0,0] ]
    #list comprehension
    result= [[sum(a*b for a,b in zip(X_row,Y_col)) for Y_col in zip(*Y)] for X_row in X]

    for k in result:
              print(k)
              
    return 0

A = [ [6, 7, 2],[3, 5, 4], [1, 2, 3] ]
  
B = [[1, 5],[2, 5],[6, 3]]

print("Result: ")
Multiply(A,B)
_


Hasil
[32, 71]
[37, 52]
[23, 24]

Pendekatan 3. menggunakan modul NumPy

Modul Numpy adalah paket python untuk komputasi dan pemrosesan elemen daftar multidimensi dan satu dimensi. Fungsi dot() dalam modul ini menghitung perkalian titik dari matriks

Algoritma

Ikuti algoritme untuk memahami pendekatan dengan lebih baik

Langkah 1- Impor modul NumPy

Langkah 2- Deklarasikan dan tetapkan nilai untuk dua matriks

Langkah 3- Deklarasikan daftar hasil

Langkah 4- Gunakan fungsi dot() untuk menemukan produk dari matriks

Langkah 6- Simpan produk di hasil

Langkah 7- Cetak daftar yang dihasilkan

Program Phyton3

Lihatlah program untuk memahami penerapan pendekatan yang disebutkan di atas

import numpy as np

A = [[12, 7, 3], [4, 5, 6], [7, 8, 9]] 

B = [[5, 8, 1, 2], [6, 7, 3, 0], [4, 5, 9, 1]]

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

result= np.dot(A,B)

for p in result:
    print(p)

Kesimpulan

Dalam tutorial ini, kita telah mempelajari tiga cara mengalikan dua matriks dengan Python. Kami telah belajar cara menggunakan loop bersarang, pemahaman daftar, dan modul NumPy dengan Python

Bagaimana Anda mengalikan dua matriks dengan elemen di Python?

multiply() function digunakan ketika kita ingin menghitung perkalian dua array. Ini mengembalikan produk arr1 dan arr2, berdasarkan elemen.

Bagaimana Anda mengalikan dua matriks di NumPy?

Ada tiga cara utama untuk melakukan perkalian matriks NumPy. .
titik (larik a, larik b). mengembalikan produk skalar atau titik dari dua larik
matmul(larik a, larik b). mengembalikan produk matriks dari dua array
kalikan(larik a, larik b). mengembalikan perkalian matriks elemen-bijaksana dari dua array

Bagaimana cara mengalikan dua matriks?

Untuk melakukan perkalian dua matriks, kita harus memastikan jumlah kolom pada matriks pertama sama dengan jumlah baris pada matriks kedua. Therefore, the resulting matrix product will have a number of rows of the 1st matrix and a number of columns of the 2nd matrix.