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