Cara menggunakan transpose matrix python

Pada tulisan berikut, akan diberikan contoh algoritma dan program untuk mengolah matriks dan vektor tanpa menggunakan library atau fungsi yang sudah tersedia.

Transpose Matriks

Misalkan matriks $A=\begin{bmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n} \\a_{2,1}&a_{2,2}&\cdots&a_{2,n} \\\vdots&\ddots&\ddots&\vdots \\a_{m,1}&a_{m,2}&\cdots&a_{m,n}\end{bmatrix}$

Transpose dari matriks $A$ adalah $A^T=\begin{bmatrix}a_{1,1}&a_{2,1}&\cdots&a_{m,1} \\a_{1,2}&a_{2,2}&\cdots&a_{m,2} \\\vdots&\ddots&\ddots&\vdots \\a_{1,n}&b_{2,n}&\cdots&a_{n,m}\end{bmatrix}$,
atau $B=\begin{bmatrix}b_{1,1}&b_{1,2}&\cdots&b_{1,m} \\b_{2,1}&b_{2,2}&\cdots&b_{2,m} \\\vdots&\ddots&\ddots&\vdots \\b_{n,1}&b_{n,2}&\cdots&b_{n,m}\end{bmatrix}$ , untuk setiap $i\in\{1,2,...,m\}$ dan $j\in\{1,2,...,n\}$ berlaku $b_{j,i}=a_{i,j}$

Algoritma Membuat Matriks Transpose

  • Deskripsi : Membuat Matriks Transpose
  • Masukkan : masukkan ukuran matriks (m,n), atau masukkan matriksnya
  • Keluaran : transpose dari matriks yang diberikan
  • Langkah-langkah :
    1. masukkan ukuran matriks (m,n)
    2. masukkan elemen-elemen matriks A, atau buat secara random
    3. buat matriks B dengan ukuran (n,m), berikan elemen matriksnya 0, hanya untuk sementara
    4. Untuk setiap i pada {1,2,3,...,m}
      • untuk setiap j pada {1,2,3,...,n} *b[j][i]=a[i][j]
    5. Keluarkan hasil
      • print("Transpose dari matriks A adalah",B)

index perlu disesuaikan apabila program menggunakan python, karena index python mulai dari 0

In [ ]:

import numpy as np
import random
print("Program mencari nilai mutlak terbesar dari elemen matriks beserta indexnya")
print("Masukkan ukuran baris matriks A, m=") ; m=int(input())
print("Masukkan ukuran kolom matriks A, n=") ; n=int(input())
random.seed(10)
A = np.array([[random.randrange(-100, 100, 1) for j in range(n)] for i in range(m)])
print("Matriks A=") ; print(A)
B = np.array([[0 for i in range(m)] for j in range(n)])

for i in range(m):
  for j in range(n):
    B[j][i]=A[i][j]
print("Transpose dari matriks A =") ; print(B)

Program mencari nilai mutlak terbesar dari elemen matriks beserta indexnya
Masukkan ukuran baris matriks A, m=
4
Masukkan ukuran kolom matriks A, n=
6
Matriks A=
[[ 46 -92   9  23  47 -97]
 [-48  18  25 -29  67 -59]
 [-92  33  25 -17 -81 -37]
 [ 90  -8 -89   7 -65  54]]
Transpose dari matriks A =
[[ 46 -48 -92  90]
 [-92  18  33  -8]
 [  9  25  25 -89]
 [ 23 -29 -17   7]
 [ 47  67 -81 -65]
 [-97 -59 -37  54]]

Perkalian Matriks/Vektor

Misalkan matriks $A=\begin{bmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n} \\a_{2,1}&a_{2,2}&\cdots&a_{2,n} \\\vdots&\ddots&\ddots&\vdots \\a_{m,1}&a_{m,2}&\cdots&a_{m,n}\end{bmatrix}$

Misalkan matriks $B=\begin{bmatrix}b_{1,1}&a_{1,2}&\cdots&a_{1,r} \\a_{2,1}&a_{2,2}&\cdots&a_{2,r} \\\vdots&\ddots&\ddots&\vdots \\a_{n,1}&a_{n,2}&\cdots&a_{n,r}\end{bmatrix}$

Perkalian matriks $\displaystyle A_{m\times n}\times B_{n\times r}=\begin{bmatrix}\sum_{j=1}^n a_{1,j}b_{j,1}&\sum_{j=1}^n a_{1,j}b_{j,2}&\cdots&\sum_{j=1}^n a_{1,j}b_{j,r} \\\sum_{j=1}^n a_{2,j}b_{j,1}&\sum_{j=1}^n a_{2,j}b_{j,2}&\cdots&\sum_{j=1}^n a_{2,j}b_{j,r} \\\vdots&\ddots&\ddots&\vdots \\\sum_{j=1}^n a_{m,j}b_{j,1}&\sum_{j=1}^n a_{m,j}b_{j,2}&\cdots&\sum_{j=1}^n a_{m,j}b_{j,r}\end{bmatrix}$

Algoritma Perkalian Matriks

  • Deskripsi : Perkalian 2 buah Matriks
  • Masukkan :
    • masukkan ukuran matriks A (m,n), atau masukkan matriksnya
    • masukkan ukuran matriks B (p,q), atau masukkan matriksnya
  • Keluaran : hasil kali matriks A*B, (jika bisa dikalikan)
  • Langkah-langkah :
    1. masukkan ukuran matriks A (m,n)
    2. masukkan elemen-elemen matriks A, atau buat secara random
    3. masukkan ukuran matriks B (p,q)
    4. masukkan elemen-elemen matriks B, atau buat secara random
    5. jika n=p
      • Buat matriks penyimpanan C berukuran (m,r)
      • untuk setiap i pada {1,2,...,m}
        • untuk setiap j pada {1,2,...,r}
          • sum=0 #variabel tempat penyimpanan jumlah
          • untuk setiap k pada {1,2,...,j}
            • sum=sum+A[i][k]*B[k][j]
      • keluarkan hasilnya
    6. jika tidak/else (otomatis n tidak sama dengan p)
      • beri keterangan bahwa matriks A dan B tidak bisa dikalikan

index perlu disesuaikan apabila program menggunakan python, karena index python mulai dari 0

In [ ]:

import numpy as np
import random
random.seed(10)
print("Program mengalikan matriks A dan B")
print("Masukkan ukuran baris matriks A, m=") ; m=int(input())
print("Masukkan ukuran kolom matriks A, n=") ; n=int(input())
A = np.array([[random.randrange(-100, 100, 1) for j in range(n)] for i in range(m)])
print("Matriks A=") ; print(A)
print("Masukkan ukuran baris matriks B, p=") ; p=int(input())
print("Masukkan ukuran kolom matriks B, q=") ; q=int(input())
B = np.array([[random.randrange(-100, 100, 1) for j in range(q)] for i in range(p)])
print("Matriks B=") ; print(B)

if n==p:
  C=np.array([[0 for j in range(q)] for i in range(m)])
  for i in range(m):
    for j in range(q):
      sum=0
      for k in range(n):
        sum=sum+A[i][k]*B[k][j]
      C[i][j]=sum
  print("Hasil kali, A*B=C=")
  print(C)
else:
  print("A tidak bisa dikalikan dengan B, karena ukuran kolom A tidak sama dengan ukuran baris B")

Program mengalikan matriks A dan B
Masukkan ukuran baris matriks A, m=
2
Masukkan ukuran kolom matriks A, n=
3
Matriks A=
[[ 46 -92   9]
 [ 23  47 -97]]
Masukkan ukuran baris matriks B, p=
3
Masukkan ukuran kolom matriks B, q=
4
Matriks B=
[[-48  18  25 -29]
 [ 67 -59 -92  33]
 [ 25 -17 -81 -37]]
Hasil kali, A*B=C=
[[-8147  6103  8885 -4703]
 [ -380  -710  4108  4473]]

Elemen Terbesar Matriks

Misalkan matriks $A=\begin{bmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n} \\a_{2,1}&a_{2,2}&\cdots&a_{2,n} \\\vdots&\ddots&\ddots&\vdots \\a_{m,1}&a_{m,2}&\cdots&a_{m,n}\end{bmatrix}$

Carilah nilai mutlak terbesar dari elemen matriks tersebut!

Algoritma mencari nilai mutlak terbesar dari elemen matriks beserta indexnya

  • Deskripsi : Algoritma mencari nilai mutlak terbesar dari elemen matriks
  • Masukkan : masukkan ukuran matriks (m,n), atau masukkan matriksnya
  • Keluaran : nilai mutlak terbesar dari elemen matriks
  • Langkah-langkah :
    1. masukkan ukuran matriks (m,n)
    2. masukkan elemen-elemen matriks, atau buat secara random
    3. baris=1
    4. kolom=1
    5. Misalkan max=a[baris][kolom]
    6. Untuk setiap i pada {1,2,3,...,m}
      • untuk setiap j pada {1,2,3,...,n}
      • jika abs(a[i][j])>max
        • max=abs(a[i][j])
        • baris=i
        • kolom=j
    7. Keluarkan hasil
      • print("Nilai mutlak terbesar dari elemen matriks A adalah A[",baris,",kolom,"]=",max)

index perlu disesuaikan apabila program menggunakan python, karena index python mulai dari 0

In [1]:

def cari_max(inputmatriks):
  baris=0
  kolom=0
  max=inputmatriks[baris][kolom]
  for i in range(m):
    for j in range(n):
      if abs(inputmatriks[i][j])>max:
        baris=i
        kolom=j
        max=abs(inputmatriks[baris][kolom])
  return max,baris,kolom

In [2]:

import numpy as np
import random
print("Program mencari nilai mutlak terbesar dari elemen matriks beserta indexnya")
print("Masukkan ukuran baris matriks A, m=") ; m=int(input())
print("Masukkan ukuran kolom matriks A, n=") ; n=int(input())
random.seed(10)
A = np.array([[random.randrange(-100, 100, 1) for j in range(n)] for i in range(m)])
print("Matriks A=") ; print(A)

x=cari_max(A)

print("Nilai mutlak terbesar dari elemen matriks A adalah |A[",x[1]+1,",",x[2]+1,"]|=",x[0])

Program mencari nilai mutlak terbesar dari elemen matriks beserta indexnya
Masukkan ukuran baris matriks A, m=
3
Masukkan ukuran kolom matriks A, n=
5
Matriks A=
[[ 46 -92   9  23  47]
 [-97 -48  18  25 -29]
 [ 67 -59 -92  33  25]]
Nilai mutlak terbesar dari elemen matriks A adalah |A[ 2 , 1 ]|= 97

Mengubah Matriks Menjadi Vektor

Misalkan matriks $A=\begin{bmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n} \\a_{2,1}&a_{2,2}&\cdots&a_{2,n} \\\vdots&\ddots&\ddots&\vdots \\a_{m,1}&a_{m,2}&\cdots&a_{m,n}\end{bmatrix}$

Misalkan $A^j$ merupakan vektor-vektor kolom dari $A$, dengan $j\in\{1,2,...,n\}$

Vektor hasil transformasinya adalah $u=\begin{bmatrix}A^1\\A^2\\\vdots\\A^n\end{bmatrix}$ atau $u=\begin{bmatrix}a_{1,1}\\a_{1,2}\\\vdots\\a_{1,n} \\a_{2,1}\\a_{2,2}\\\vdots\\a_{2,n} \\\vdots \\a_{m,1}\\a_{m,2}\\\vdots\\a_{m,n}\end{bmatrix}$

In [ ]:

import numpy as np
import random
random.seed(10)
print("Program Transformasi Matriks menjadi Vektor")
print("Masukkan ukuran baris matriks A, m=") ; m=int(input())
print("Masukkan ukuran kolom matriks A, n=") ; n=int(input())
A = np.array([[random.randrange(-100, 100, 1) for j in range(n)] for i in range(m)])
print("Matriks A=") ; print(A)

u=np.array([0 for i in range(m*n)])
for j in range(n):
  for i in range(m):
    u[j*i+i]=A[i][j]

print("Vektor u=",u)
print("Keterangan : tampilan vektor pada python selalu ditulis menyamping")
print("Jika ingin dituliskan ke bawah, maka buat vektor u sebagai matriks berukuran (m*n,1)")
u=np.array([[0] for i in range(m*n)])
for j in range(n):
  for i in range(m):
    u[j*i+i,0]=A[i][j]
print("Vektor u=") ; print(u)

Program Transformasi Matriks menjadi Vektor
Masukkan ukuran baris matriks A, m=
2
Masukkan ukuran kolom matriks A, n=
3
Matriks A=
[[ 46 -92   9]
 [ 23  47 -97]]
Vektor u= [  9  23  47 -97   0   0]
Keterangan, tampilan vektor pada python selalu ditulis menyamping
Jika ingin dituliskan ke bawah, maka buat vektor u sebagai matriks berukuran (m*n,1)
Vektor u=
[[  9]
 [ 23]
 [ 47]
 [-97]
 [  0]
 [  0]]

Membuat Submatriks $\frac{1}{4}$ Matriks Semula

Misalkan matriks $A=\begin{bmatrix}a_{1,1}&a_{1,2}&a_{1,3}&a_{1,4}&\cdots&a_{1,n-1}&a_{1,n} \\a_{2,1}&a_{2,2}&a_{2,3}&a_{2,4}&\cdots&a_{2,n-1}&a_{2,n} \\\vdots&\vdots&\vdots&\vdots&\ddots&\vdots&\vdots \\a_{m-1,1}&a_{m-1,2}&a_{m-1,3}&a_{m-1,4}&\cdots&a_{m-1,n-1}&a_{m-1,n} \\a_{m,1}&a_{m,2}&a_{m,3}&a_{m,4}&\cdots&a_{m,n-1}&a_{m,n}\end{bmatrix}$, dengan $m,n$ adalah bilangan genap

Sajikan matriks A, sebagai berikut $A=\begin{bmatrix}\begin{bmatrix}a_{1,1}&a_{1,2}\\a_{2,1}&a_{2,2}\end{bmatrix}&\begin{bmatrix}a_{1,3}&a_{1,4}\\a_{2,3}&a_{2,4}\end{bmatrix}&\cdots&\begin{bmatrix}a_{1,n-1}&a_{1,n}\\a_{2,n-1}&a_{2,n}\end{bmatrix} \\\vdots&\vdots&\ddots&\vdots& \\\begin{bmatrix}a_{m-1,1}&a_{m-1,2}\\a_{m,1}&a_{m,2}\end{bmatrix}&\begin{bmatrix}a_{m-1,3}&a_{m-1,4}\\a_{m,3}&a_{m,4}\end{bmatrix}&\cdots&\begin{bmatrix}a_{m-1,n-1}&a_{m-1,n}\\a_{m,n-1}&a_{m,n}\end{bmatrix} \end{bmatrix}$

Terdapat beberapa cara membuat submatriks yang ukurannya $\frac{1}{4}$ ukuran matriks A. Misalkan dibuat matriks $B$, dengan ketentuan elemen-elemen matriks $B$ sebagai berikut :