perkalian matriks dengan vektor

halo kawan-kawan,, gimana kabar nya ? selalu sehat ya,, kali ini saya ingin share tentang program perkalian matriks dengan vektor, nah , gimana ya ??, mari kita simakkk..

 Analisis : 
         Syarat dua matriks dapat dikalikan adalah ukuran kolom matriks pertama haruslah sama dengan ukuran baris matriks kedua. begitu juga jika perkalian matriks dan vektor. Cara kerja perkalian nya dapat diambarkan sebaga berikut. Misal matiks A berukuran 2 x 3 dan vektor B berukuran 3 x 1 dan akan menghasilkan matriks C berukuran 2 x 1.


 dari dua baris persamaan tersebut kita dapat menemukan suatu pola, yaitu untuk memperoleh elemen c[i,j] maka suku perkalian dari elemen a dengan baris i dan b dengan kolom j. Sedangkan kolom elemen a dan baris elemen b ternyata mempunyai perulangan tersendiri, yaitu k, dengan k= 1, 2, 3. Dapat dilihat bahwa k mengikuti perulangan p, sedangkan i mengikuti perulangan m dan j mengikuti perulangan n. Setiap persamaan memperlihatkan adanya kumulatif penjumlahan.

input :
mat[i][j]

output :
A[i][j]

Ilustrasi :




Algoritma :

procedure kali_matriks(input matriks1,matriks2 : matriks; baris, kolom, barkol : integer; output mat_kali : matriks)

Deklarasi i,j,k : integer




 Translasi :
C++

#include <iostream.h>
void baca_matriks (int mat[10][10], int baris, int kolom)
{ int i,j;
for (i=0; i<baris; i++)
for (j=0; j<kolom; j++)
{ cout << "Data [“ << i+1 << “,” << j+1 << “] : ”;
cin >> mat[i][j];
}
}
void kali_matriks(const int matriks1[10][10], const int matriks2[10][10],
int baris, int kolom, int barkol, int mat_kali[10][10])
{ int i,j,k;
for (i=0; i<baris; i++)
for (j=0; j<kolom; j++)
{ mat_kali[i][j] = 0;
for (k=0; k<barkol; k++)
mat_kali[i][j] = mat_kali[i][j] +
matriks1[i][k] * matriks2[k][j];
}
}
void cetak_matriks (const int A[10][10], int baris, int kolom)
{ int i,j;
for (i=0; i<baris; i++)
{ for (j=0; j<kolom; j++)
cout << A[i][j];
cout << endl;
}
}
void main() {
int m, n, p;
int matriks1[10][10], matriks2[10][10];
int hasil[10][10];
printf("Baris matriks ke-1 : ");
scanf("%d",&m);
printf("Banyak kolom : "); scanf("%d",&p);
printf("Kolom matriks ke-2 : ");
scanf("%d",&n);
printf("Data matriks ke-1\n");
baca_matriks(matriks1,m,p);
cetak_matriks(matriks1,m,p);
printf("Data matriks ke-2\n");
baca_matriks(matriks2,p,n);
cetak_matriks(matriks2,p,n);
kali_matriks(matriks1,matriks2,m,n,p,hasil);
printf("Hasil Perkalian : \n");
cetak_matriks(hasil,m,n);
}


flowchart :





















1 komentar


EmoticonEmoticon