Perkalian dua buah MATRIX
Array 2 Dimensi disebut juga MATRIX ( Matriks )
Perkalian Matrix Kalikan Matrix A dengan Matrix B, 2 4 3 5 A #include <stdio.h> void main() { int A[2][3] = { 2, 4, 3, 3, 2, 5 }; int B[3][5] = { 2, 2, 5, 7, 4, 2, 4, 6, 3, 2, 3, 3, 2, 5, 4 }; int C[2][5]; - } 3 2 5 7 4 6 B C Kalikan Matrix A dengan Matrix B, dan simpan hasil perkaliannya di Matrix C
C = A x B A x B = C Perkalian Matrix Kalikan Matrix A dengan Matrix B 2 4 3 5 A Kalikan Matrix A dengan Matrix B 3 2 5 7 4 6 dan simpan hasil perkaliannya di Matrix C B C Biasa ditulis : C = A x B A x B = C atau :
x = Perkalian Matrix b = baris k = kolom B A C C[bc][kc] A[ba][ka] 3 2 5 7 4 6 2 4 3 5 23 29 40 31 28 37 36 52 x = C[bc][kc] A[ba][ka] B[bb][kb] b = baris k = kolom ba = baris matriks A ka = kolom matriks A bb = baris matriks B kb = kolom matriks B bc = baris matriks C kc = kolom matriks C
x = bb = ka Perkalian Matrix ukuran matriks A & B harus sama B A C 3 2 5 7 4 6 ukuran matriks A & B 2 4 3 5 23 29 40 31 28 37 36 52 x = C[bc][kc] A[ba][ka] B[bb][kb] Syarat Utama : bb = ka Jumlah baris Matriks B harus sama dengan jumlah kolom Matriks A harus sama
x = Perkalian Matrix ukuran matriks C bc = ba kc = kb B A C C[bc][kc] 3 2 5 7 4 6 2 4 3 5 23 29 40 31 28 37 36 52 ukuran matriks C x = C[bc][kc] A[ba][ka] B[bb][kb] bc = ba Jumlah baris Matriks C harus dibuat sama dengan jumlah baris Matriks A kc = kb Jumlah kolom Matriks C harus dibuat sama dengan jumlah kolom Matriks B
x = Perkalian Matrix ukuran matriks B A C C[bc][kc] A[ba][ka] 3 2 5 7 4 6 2 4 3 5 23 29 40 31 28 37 36 52 ukuran matriks x = C[bc][kc] A[ba][ka] B[bb][kb] sama sama sama
x = A[2][3], B[3][5], C[2][5] Perkalian Matrix B A C C[bc][kc] 7 4 6 2 4 3 5 23 29 40 31 28 37 36 52 x = C[bc][kc] A[ba][ka] B[bb][kb] sama A[2][3], B[3][5], C[2][5] sama sama
C[0][0] x = Perkalian Matrix Instruksi : B C A 3 2 5 7 4 2 4 3 2 4 6 3 2 x = 3 2 5 3 3 2 5 4 Instruksi : Total hasil perkalian semua elemen-elemen baris 0 Matriks A dengan kolom 0 Matriks B C[0][0] Kolom 0 Baris 0
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 Total semua untuk i = 0, 1, 2
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 Total semua untuk i = 0, 1, 2 C[0][0] = A[0][ 0 ] * B[ 0 ][0] + A[0][ 1 ] * B[ 1 ][0] + A[0][ 2 ] * B[ 2 ][0]
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] = C[0][0]
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] = C[0][0] 2 * 3 6
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] = C[0][0] 2 * 3 + 4 * 2 6 + 8
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] = C[0][0] 2 * 3 + 4 * 2 + 3 * 3 = 6 + 8 + 9 =
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 23 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] = C[0][0] 2 * 3 + 4 * 2 + 3 * 3 = 6 + 8 + 9 = 23
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] = C[0][0] 2 * 3 + 4 * 2 + 3 * 3 = 6 + 8 + 9 = 23
C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : Perkalian Matrix C[0][0] C 3 2 5 7 4 23 2 4 3 2 4 6 3 2 3 2 5 3 3 2 5 4 baris 0 kolom 0 baris 0 kolom 0 i=2 C[0][0] = ∑ A[0][ i ] * B[ i ][0] Instruksi : i=0 A[0][0] * B[0][0] + A[0][1] * B[1][0] + A[0][2] * B[2][0] = C[0][0] 2 * 3 + 4 * 2 + 3 * 3 = 6 + 8 + 9 = 23
Perkalian Matrix C[1][3] Instruksi : C[1][3] = C 23 29 40 31 28 28 29 0 1 2 3 4 3 2 5 7 4 1 2 23 29 40 31 28 2 4 3 1 1 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 Instruksi : C[1][3] =
Perkalian Matrix C[1][3] C[1][3] = ∑ Instruksi : C i=2 i=0 23 29 40 31 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 i=2 C[1][3] = ∑ Instruksi : i=0
Perkalian Matrix C[1][3] C[1][3] = ∑ A[1][ i ] Instruksi : C i=2 i=0 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 baris 1 i=2 C[1][3] = ∑ A[1][ i ] Instruksi : i=0
C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : Perkalian Matrix C 3 2 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 baris 1 kolom 3 i=2 C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : i=0
C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : Perkalian Matrix C 3 2 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 baris 1 kolom 3 i=2 C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : i=0 A[1][0] * B[0][3] + A[1][1] * B[1][3] + A[1][2] * B[2][3] = C[1][3]
C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : Perkalian Matrix C 3 2 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 baris 1 kolom 3 i=2 C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : i=0 A[1][0] * B[0][3] + A[1][1] * B[1][3] + A[1][2] * B[2][3] = C[1][3] 3 * 7 21
C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : Perkalian Matrix C 3 2 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 baris 1 kolom 3 i=2 C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : i=0 A[1][0] * B[0][3] + A[1][1] * B[1][3] + A[1][2] * B[2][3] = C[1][3] 3 * 7 + 2 * 3 21 + 6
C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : Perkalian Matrix C 3 2 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 baris 1 kolom 3 i=2 C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : i=0 A[1][0] * B[0][3] + A[1][1] * B[1][3] + A[1][2] * B[2][3] = C[1][3] 3 * 7 + 2 * 3 + 5 * 5 = 21 + 6 + 25 =
C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : Perkalian Matrix C 3 2 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 3 3 2 5 4 C[1][3] baris 1 kolom 3 baris 1 kolom 3 i=2 C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : i=0 A[1][0] * B[0][3] + A[1][1] * B[1][3] + A[1][2] * B[2][3] = C[1][3] 3 * 7 + 2 * 3 + 5 * 5 = 21 + 6 + 25 = 52
C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : Perkalian Matrix C 3 2 5 7 4 23 29 40 31 28 2 4 3 2 4 6 3 2 3 2 5 28 29 37 52 3 3 2 5 4 baris 1 kolom 3 baris 1 kolom 3 i=2 C[1][3] = ∑ A[1][ i ] * B[ i ][3] Instruksi : i=0 A[1][0] * B[0][3] + A[1][1] * B[1][3] + A[1][2] * B[2][3] = C[1][3] 3 * 7 + 2 * 3 + 5 * 5 = 21 + 6 + 25 = 52
= C00 = A00*B00 + A01*B10 + A02* B20 A X B C C00 maksudnya : C[0][0] 4 3 5 kolom C = kolom B A sama sama sama C00 = A00*B00 + A01*B10 + A02* B20 X baris C = baris A 3 2 5 7 4 6 C00 = A00*B00 + A01*B10 + A02*B20 B C01 = A00*B01 + A01*B11 + A02*B21 C02 = A00*B02 + A01*B12 + A02*B22 C03 = A00*B03 + A01*B13 + A02*B23 C04 = A00*B04 + A01*B14 + A02*B24 C10 = A10*B00 + A11*B10 + A12*B20 C11 = A10*B01 + A11*B11 + A12*B21 C12 = A10*B02 + A11*B12 + A12*B22 C13 = A10*B03 + A11*B13 + A12*B23 C14 = A10*B04 + A11*B14 + A12*B23 = 23 29 40 31 28 37 36 52 C C00 maksudnya : C[0][0]
= C00 = A00*B00 + A01*B10 + A02* B20 A X B C Perkalian seluruhnya : kolom C = kolom B 2 4 3 5 A sama sama sama C00 = A00*B00 + A01*B10 + A02* B20 X baris C = baris A 3 2 5 7 4 6 Perkalian seluruhnya : B 2x3 + 4x2 + 3x3 = 6 + 8 + 9 = 23 2x2 + 4x4 + 3x3 = 4 + 16 + 9 = 29 2x5 + 4x6 + 3x2 = 10 + 24 + 6 = 40 2x7 + 4x3 + 3x5 = 14 + 12 + 15 = 31 2x4 + 4x2 + 3x4 = 8 + 8 + 12 = 28 3x3 + 2x2 + 5x3 = 9 + 4 + 15 = 28 3x2 + 2x4 + 5x3 = 6 + 8 + 15 = 29 3x5 + 2x6 + 5x2 = 15 + 12 + 10 = 37 3x7 + 2x3 + 5x5 = 21 + 6 + 25 = 52 3x4 + 2x2 + 5x4 = 12 + 4 + 20 = 36 = 23 29 40 31 28 37 36 52 C
x = C14 = A10 * B04 + A11 * B14 + A12 * B24 B A C Untuk : C14 Ko Ko K1 3 2 5 7 4 6 2 4 3 5 23 29 40 31 28 37 36 52 x = Untuk : C14 Terlihat hubungan indeks array A, B, dan C adalah sebagai berikut : K dipakai untuk : KOLOM. pada array A dan BARIS pada array B dan untuk suatu nilai I & J, nilai K bergerak dari 0 s.d 2 Ko Ko K1 K1 K2 K2 C14 = A10 * B04 + A11 * B14 + A12 * B24 J dipakai untuk : KOLOM. pada array C dan B Untuk suatu nilai I, nilai J bergerak dari 0 s.d. 4 J J J J I I I I I dipakai untuk : BARIS pada array C dan A I bergerak dari 0 s.d. 1
Ko Ko K1 K1 K2 K2 K dipakai untuk : KOLOM. pada array A dan BARIS pada array B dan untuk suatu nilai I & J, nilai K bergerak dari 0 s.d 2 C14 = A10 * B04 + A11 * B14 + A12 * B24 J dipakai untuk : KOLOM. pada array C dan B Untuk suatu nilai I, nilai J bergerak dari 0 s.d. 4 J J J J I I I I I dipakai untuk : BARIS pada array C dan A I bergerak dari 0 s.d. 1 SECARA UMUM 10 PERSAMAAN DIATAS, DAPAT DITULIS SEBAGAI BERIKUT : Untuk suatu nilai I & J, nilai K bergerak dari 0 sampai 2 C[I,J] = ∑ (A [I,K] * B [K,J] ) Sewaktu I masih = 0, J bergerak dari 0 sampai 4 Sewaktu I = 1, J bergerak lagi dari 0 sampai 4 Nilai I bergerak dari 0 sampai 1
x = C[I,J] = ∑ (A [I,K] * B [K,J] ) I J K for(I = 0; I <= 1; I++ ) 3 2 5 7 4 6 2 4 3 5 23 29 40 31 28 37 36 52 x = I J K 1 1 2 3 4 0,1 C[I,J] = ∑ (A [I,K] * B [K,J] ) for(I = 0; I <= 1; I++ ) {for(J = 0; J <= 4; J++ ) {for(K = 0; K <= 1; K++ ) {C[I,J] = C[I,J] + A[I,K] * B[K,J]; }
I J K atau for(I = 0; I <= 1; I++ ) {for(J = 0; J <= 4; J++ ) {for(K = 0; K <= 1; K++ ) {C[I,J] = C[I,J] + A[I,K] * B[K,J]; } I J K 1 1 2 3 4 0,1 atau I = 0; while( I <= 1 ) { J = 0; while( J <= 4) { K = 0; while( K <= 1 ) { C[I,J] = C[I,J] + A[I,K] * B[K,J] K++; } J++; I++;
x = C[I,J] = ∑ (A [I,K] * B [K,J] ) I J K for(I = 0; I <= 2; I++ ) 0,1,2 1 2 3 4 x = C[I,J] = ∑ (A [I,K] * B [K,J] ) 0,1,2 1 1 2 3 4 for(I = 0; I <= 2; I++ ) {for(J = 0; J <= 4; J++ ) {for(K = 0; K <= 2; K++ ) {C[I,J] = C[I,J] + A[I,K] * B[K,J]; } 0,1,2 2 1 2 3 4
x = C[I,J] = ∑ (A [I,K] * B [K,J] ) I J K for(I = 0; I <= 3; I++ ) 1 2 3 4 0,1,2 x = 1 2 3 4 0,1,2 1 C[I,J] = ∑ (A [I,K] * B [K,J] ) for(I = 0; I <= 3; I++ ) {for(J = 0; J <= 4; J++ ) {for(K = 0; K <= 2; K++ ) {C[I,J] = C[I,J] + A[I,K] * B[K,J]; } 1 2 3 4 0,1,2 2 1 2 3 4 0,1,2 3