Algorithma Perkalian Pangkat Matrix dengan C++
Seorang pengguna aplikasi Matrix Inverse penulis, meminta bantuan untuk menyelesaikan problem matematikanya, yaitu mengenai perpangkatan matrix.
Pengguna itu bertanya, bagaimana algorithma perkalian pangkat matrix.
Misalnya jika mempunyai matrix A dengan nilai sebagai berikut:
Bagaimana jika dipangkatkan tiga, menjadi A3.
Karena pengguna meminta menggunakan bahasa C++, berikut ini penulis tuliskan kode C++, implementasi algorithma perpangkatan matrix tersebut:
#include <iostream>
using namespace std;
int main()
{
int row1, col1, n;
int **c,**d;
int a[2][2]={
{3,2},
{4,-2}
};
n = 3;
col1 = 2;
row1=col1;
c = new int*[row1];
d = new int*[row1];
for(int i = 0; i < row1; i++)
{
c[i] = new int[col1];
d[i] = new int[col1];
for(int j = 0; j < col1; j++)
{
c[i][j] = a[i][j];
d[i][j] = 0;
}
}
for(int b = 0; b < n-1; b++)
{
// Multiplication
for(int i = 0; i < row1; i++)
{
for(int j = 0; j < col1; j++)
{
int hsl=0;
for(int k = 0; k < col1; k++)
{
hsl+=c[i][k] * a[k][j];
}
d[i][j]=hsl;
}
}
// Multiplication
for(int i = 0; i < row1; i++)
{
for(int j = 0; j < col1; j++)
{
c[i][j]=d[i][j];
}
}
}
// Output matrix in StringGrid2 (SG2)
for(int i = 0; i < row1; i++)
{
for(int j = 0; j < col1; j++)
{
cout<<c[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
Semoga bermanfaat.


Komentar
Posting Komentar