ProgramPerkalian Matriks Bahasa C - Hallo sobat kopi coding, pada postingan kali ini kita akan mempelajari bagaimana cara membuat program menghitung perkalian matriks di bahasa pemograman C. Program Perkalian Matriks Bahasa C. Matriks merupakan kumpulan-kumpulan bilangan yang disusun secara baris (vertikal) dan kolom (horizontal) bisa disebut juga array dua dimensi (multi-dimensional). Perkalian matriks memiliki syarat yaitu jumlah kolom matriks pertama sama dengan jumlah baris matriks kedua.
BMdE3z4. In this tutorial, you will learn to write a program to find the inverse of a matrix in C. Let us first start by understanding how to find the inverse of a matrix and the requirements to find adjoint of a matrix is obtained by taking the transpose of the cofactor matrix of a given square matrix. it is also called the Adjugate matrix. For matrix A, it is denoted by adj is calculated in the following way for the square prototype that are being createdvoid cofactorfloat [][25], float;float determinantfloat [][25], float;void transposefloat [][25], float [][25], float;int main{ float a[25][25], n, d; int i, j; printf"Enter the order of the Matrix "; scanf"%f", &n; printf"Enter the elements of a matrix \n"; for i = 0;i < n; i++ { for j = 0;j < n; j++ { scanf"%f", &a[i][j]; } } d = determinanta, n; if d == 0 printf"Since the determinant is zerp 0, therefor inverse is not possible."; else cofactora, n;}// function for the calculation of determinantfloat determinantfloat a[25][25], float k{ float s = 1, det = 0, b[25][25]; int i, j, m, n, c; if k == 1 { return a[0][0]; } else { det = 0; for c = 0; c < k; c++ { m = 0; n = 0; for i = 0;i < k; i++ { for j = 0 ;j < k; j++ { b[i][j] = 0; if i != 0 && j != c { b[m][n] = a[i][j]; if n < k - 2 n++; else { n = 0; m++; } } } } det = det + s * a[0][c] * determinantb, k - 1; s = -1 * s; } } return det;}// function for cofactor calculationvoid cofactorfloat num[25][25], float f{ float b[25][25], fac[25][25]; int p, q, m, n, i, j; for q = 0;q < f; q++ { for p = 0;p < f; p++ { m = 0; n = 0; for i = 0;i < f; i++ { for j = 0;j < f; j++ { if i != q && j != p { b[m][n] = num[i][j]; if n < f - 2 n++; else { n = 0; m++; } } } } fac[q][p] = pow-1, q + p * determinantb, f - 1; } } transposenum, fac, f;}///function to find the transpose of a matrixvoid transposefloat num[25][25], float fac[25][25], float r{ int i, j; float b[25][25], inverse[25][25], d; for i = 0;i < r; i++ { for j = 0;j < r; j++ { b[i][j] = fac[j][i]; } } d = determinantnum, r; for i = 0;i < r; i++ { for j = 0;j < r; j++ { inverse[i][j] = b[i][j] / d; } } printf"\nThe inverse of matrix \n"; for i = 0;i < r; i++ { for j = 0;j < r; j++ { printf"\t%f", inverse[i][j]; } printf"\n"; }}
11 August 2019 C Programming, Program Program Perkalian Matriks Bahasa C – Hallo sobat kopi coding, pada postingan kali ini kita akan mempelajari bagaimana cara membuat program menghitung perkalian matriks di bahasa pemograman Perkalian Matriks Bahasa CMatriks merupakan kumpulan-kumpulan bilangan yang disusun secara baris vertikal dan kolom horizontal bisa disebut juga array dua dimensi multi-dimensional. Perkalian matriks memiliki syarat yaitu jumlah kolom matriks pertama sama dengan jumlah baris matriks langsung saja kita lihat source code dan penjelasan program perkalian matriks di bahasa pemograman C..Program Perkalian Matriks Bahasa CSource Code include int main { int matriks1[10][10], matriks2[10][10], hasil[10][10]; int i, j, k, m, n, p, q, jumlah = 0; printf"Masukkan jumlah baris matriks pertama "; scanf"%d",&m; printf"Masukkan jumlah kolom matriks pertama "; scanf"%d",&n; printf"Masukkan jumlah baris matriks kedua "; scanf"%d",&p; printf"Masukkan jumlah kolom matriks kedua "; scanf"%d",&q; ifn != p{ printf"Matriks tidak dapat dikalikan satu sama lain.\n"; } else { printf"Masukkan elemen matriks pertama \n"; fori = 0; i < m; i++{ forj = 0; j < n; j++{ scanf"%d", &matriks1[i][j]; } } printf"Masukkan elemen matriks kedua \n"; fori = 0; i < p; i++{ forj = 0; j < q; j++{ scanf"%d", &matriks2[i][j]; } } fori = 0; i < m; i++{ forj = 0; j < q; j++{ fork = 0; k < p; k++{ jumlah = jumlah + matriks1[i][k] * matriks2[k][j]; } hasil[i][j] = jumlah; jumlah = 0; } } printf"Hasil perkalian matriks \n"; fori = 0; i < m; i++{ forj = 0; j < q; j++{ printf"%d\t", hasil[i][j]; } printf"\n"; } } return 0; }Simpan source code dengan nama tetapi sesuaikan aja dengan nama file yang dinginkan dan jangan lupa harus berektensi .cPenjelasan Berikut adalah penjelasan source code programnya Baris 4 mendeklarasikan variable matriks1[10][10], matriks2[10][10], dan hasil[10][10], yang merupakan array dua dimensi yang memiliki maksimal panjang atau ukurun array baris dan kolom sebanyak 10Baris 5 mendeklarasikan variable i, j, k, m, n, p, q, jumlah, dimana variable i digunakan untuk perulangan baris, variable j untuk perulangan kolom, variable k untuk perulangan operasi perkalian, variable m untuk jumlah baris matriks1, variable n untuk jumlah kolom matriks1, variable p untuk jumlah baris matriks2, variable q untuk jumlah kolom matriks2, dan variable jumlah untuk nilai hasil operasi 6 – 9 menginputkan nilai ke dalam variable m dan 11 – 14 menginputkan nilai ke dalam variable p dan 16 – 17 pengecekan kondisi jika variable n jumlah kolom matriks1 tidak sama dengan variable p jumlah baris matriks 2 maka akan menampilkan pesan tidak dapat melakukan perkalian 20 – 25 melakukakan perulangan m baris dan n kolom untuk menginputkan elemen matriks di variable 27 – 32 melakukakan perulangan p baris dan q kolom untuk menginputkan elemen matriks di variable 34 – 42 melakukan perulangan i sebanyak jumlah m, lalu didalamnya melakukan perulangan j sebanyak jumlah q, kemudian didalamnya melakukan perulangan k sebanyak p dimana varible jumlah diisikan nilai hasil operasi perkalian. setelah perulangan k maka variable hasil[i][j] diisikan dengan nilai variable jumlah dan variable jumlah di set ulang menjadi 44 – 50 melakukakan perulangan sebanyak jumlah m baris dan n kolom untuk menampilkan nilai hasil operasi perkalian & Run Berikut adalah cara meng-compile source code bahasa C secara manual$ gcc -o perkalianmatriks ./perkalianmatriksBerikut gambar hasil compile dan run programnyaHasil program perkalian matriks bahasa CContoh Inputan Masukkan jumlah baris matriks pertama 3 Masukkan jumlah kolom matriks pertama 3 Masukkan jumlah baris matriks kedua 3 Masukkan jumlah kolom matriks kedua 3 Masukkan elemen matriks pertama 1 2 0 0 1 1 2 0 1 Masukkan elemen matriks kedua 1 1 2 2 1 1 1 2 1Contoh output Hasil perkalian matriks 5 3 4 3 3 2 3 4 5Kesimpulan Dari hasil percobaan program, source code perkalian matriks tersebut berhasil dapat dijalankan tanpa ada error dan menampilkan hasil perkalian matriks1 dan matriks2 dengan ordo 3 x tutorial cara membuat program perkalian matiks di bahasa pemograman C, semoga Coding 🙂 About The Author aribambangMedia belajar Bahasa Pemograman Indonesia yang gratis dan lengkap dengan konten yang mudah dipahami. "Everybody in this country should learn to program a computer, because it teaches you how to think" - Steve Jobs
I've tried to write a program that should be able to calculate the inverse of a matrix Here's what I have so far include include include include include double getDeterminantconst stdvector> vect { if != vect[0].size { throw stdruntime_error"Matrix is not quadratic"; } int dimension = ifdimension == 0 { return 1; } ifdimension == 1 { return vect[0][0]; } //Formula for 2x2-matrix ifdimension == 2 { return vect[0][0] * vect[1][1] - vect[0][1] * vect[1][0]; } double result = 0; int sign = 1; forint i = 0; i > subVectdimension - 1, stdvector dimension - 1; forint m = 1; m > getTransposeconst stdvector> matrix1 { //Transpose-matrix height = widthmatrix, width = heightmatrix stdvector> solutionmatrix1[0].size, stdvector //Filling solution-matrix forsize_t i = 0; i > getCofactorconst stdvector> vect { if != vect[0].size { throw stdruntime_error"Matrix is not quadratic"; } stdvector> solution stdvector stdvector> subVect - 1, stdvector - 1; forstdsize_t i = 0; i > getInverseconst stdvector> vect { ifgetDeterminantvect == 0 { throw stdruntime_error"Determinant is 0"; } double d = stdvector> solution stdvector forsize_t i = 0; i > vect { forstdsize_t i = 0; i > matrix3, stdvector 3; matrix = { {1,2,3}, {4,5,6}, {7,8,8} }; printMatrixgetInversematrix; return 0; } The functions for calculating the determinant, the transpose- and the cofactor-matrix work correctly as far as I can see, but the function for calculating the inverse-matrix doesn't. I searched the internet and found this, which uses the same function for calculating the inverse. Is this formula incorrect, or do you have any other idea, why it doesnt work? The matrix I am using is and the inverse of it should be