0% found this document useful (0 votes)
50 views7 pages

Inverse Matrix

This C program calculates the inverse of a matrix. It begins by prompting the user to enter the size of the square matrix and its elements. It then calculates the determinant. If the determinant is 0, the inverse is not possible. Otherwise, it calculates the cofactors and transpose of the matrix. Finally, it prints out the inverse matrix by dividing the transposed cofactors by the determinant.

Uploaded by

Nic Enrique
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views7 pages

Inverse Matrix

This C program calculates the inverse of a matrix. It begins by prompting the user to enter the size of the square matrix and its elements. It then calculates the determinant. If the determinant is 0, the inverse is not possible. Otherwise, it calculates the cofactors and transpose of the matrix. Finally, it prints out the inverse matrix by dividing the transposed cofactors by the determinant.

Uploaded by

Nic Enrique
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

*INVERSE MATRIX*

#include<stdio.h>

#include<math.h>

float determinant(float [][25], float);

void cofactor(float [][25], float);

void transpose(float [][25], float [][25], float);

int main()

float a[25][25], k, d;

int i, j;

printf("PUNZALAN, CHRISTIAN JADE P. \n");

printf("BSCE / 162-0016 \n\n");

printf("INVERSE MATRIX\n\n");

printf("ENTER THE SIZE OF THE MATRIX: ");

scanf("%f", &k);

printf("ENTER THE ELEMENTS OF %.0FX%.0F MATRIX: \n", k, k);

for (i = 0;i < k; i++)

{
for (j = 0;j < k; j++)

scanf("%f", &a[i][j]);

d = determinant(a, k);

if (d == 0)

printf("\nINVERSE OF ENTERED MATRIX IS NOT POSSIBLE!\n");

else

cofactor(a, k);

/*For calculating Determinant of the Matrix */

float determinant(float 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] * determinant(b, k - 1));

s = -1 * s;

return (det);

void cofactor(float 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) * determinant(b, f - 1);

transpose(num, fac, f);

/*Finding transpose of matrix*/

void transpose(float 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 = determinant(num, r);

for (i = 0;i < r; i++)

{ for (j = 0;j < r; j++)

{ inverse[i][j] = b[i][j] / d; }

printf("\n\n\nTHE INVERSE OF MATRIX IS: \n");

for (i = 0;i < r; i++)

for (j = 0;j < r; j++)

printf("\t%f", inverse[i][j]);

printf("\n");

You might also like