Masalah dalam Perkalian Matriks (dengan Ordo di input dari pengguna) dengan Sebuah Vektor.
Didalam perkalian Matriks dengan Vektor ini sebenarnya sama saja dengan mengalikan Dua Buah Matriks. Jumlah kolom dari Matriks harus sama dengan jumlah Baris didalam Vektor agar dapat dilakukan perkalian.
Analisis
1. Input nya adalah Matriks dengan Ordo 2x3 akan dikali dengan Vektor 3x1.
2. Lakukan proses perkalian dengan mengalikan baris dalam Matriks dengan Angka di kolom vektor. Misal = (a11*b11)+(a12*b12)+(a13*b13) dan (a21*b11)+(a22*b12)+(a23*b13)
3. Maka akan menghasilkan matriks baru dengan ukuran 2x1. Sebut saja matriks C, inilah yang akan di outputkan nanti.
Algoritma
Procedure kali( input/output matriks[ ][ ],vektor[ ],hasil[ ]:: integer)::integer
Deklarasi
i,k :: integer
Deskripsi
for(i=0;i<a;i++)
for(k=0;k<b;k++)
hasil[i]=hasil[i]+(matriks[i][k])*(vektor[k]);
endfor endfor
for(int i=0;i<a;i++)
read(hasil[i]);
endfor
Pengujian dengan data
Hasil dari perkalian diatas:
Jadi :
C11 = (a11*b11)+(a12*b12)+(a13*b13) dan
C21 = (a21*b11)+(a22*b12)+(a23*b13)
C11 = (
C11 = (3x3) + (2x1) + (1x0) dan
C21= (1x3) + (2x1) + (1x0)
Hasil Akhirnya :
11
5
c++
#include <iostream>
#include <iomanip>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int a,b;
cout<<"Masukkan Baris : ";
cin>>a;
cout<<"Masukkan Kolom : ";
cin>>b;
int matriks[a][b],vektor[b],hasil[10];
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
cout<<"Masukkan Data Matriks ke-["<<i+1<<"]["<<j+1<<"] : ";
cin>>matriks[i][j];
}
}
for(int i=0;i<b;i++){
cout<<"Masukkan Data Vektor ke-["<<i+1<<"] : ";
cin>>vektor[i];
}
cout<<"MATRIK A "<<endl;
for(int i=0;i<a;i++){
cout<<setw(5);
for(int j=0;j<b;j++){
cout<<matriks[i][j]<<setw(5);
}cout<<endl;
}
cout<<endl;
for(int i=0;i<b;i++){
cout<<setw(2)<<vektor[i]<<endl;
}
for(int i=0;i<2;i++){
hasil[i]=0;
}
cout<<"\nHasil Kali nya = "<<endl;
for(int i=0;i<a;i++){
for(int k=0;k<b;k++)
hasil[i]=hasil[i]+(matriks[i][k])*(vektor[k]);
}
for(int i=0;i<a;i++){
cout<<hasil[i]<<endl;
}
return 0;
}
Tidak ada komentar:
Posting Komentar