You are on page 1of 6

1. #include<stdio.

h>
2. #include<math.h>
3. float determinant(float [25][25], float);
4. void cofactor(float [25][25], float);
5. void transpose(float [25][25], float [25][25], float);
6. int main()
7. {
8. float a[25][25], k, d;
9. int i, j;
10. printf("Enter the order of the Matrix : ");
11. scanf("%f", &k);
12. printf("Enter the elements of %.0fX%.0f Matrix : \n", k, k);
13. for (i = 0;i < k; i++)
14.

15.

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

16.

17.

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

18.

19.

20. d = determinant(a, k);


21. if (d == 0)
22.

printf("\nInverse of Entered Matrix is not possible\n");

23. else

24.

cofactor(a, k);

25. }
26.
27. /*For calculating Determinant of the Matrix */
28. float determinant(float a[25][25], float k)
29. {
30. float s = 1, det = 0, b[25][25];
31. int i, j, m, n, c;
32. if (k == 1)
33.

34.

return (a[0][0]);

35.

36. else
37.

38.

det = 0;

39.

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

40.

41.

m = 0;

42.

n = 0;

43.

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

44.
45.
46.

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

47.

b[i][j] = 0;

48.

if (i != 0 && j != c)

49.

50.

b[m][n] = a[i][j];

51.

if (n < (k - 2))

52.

n++;

53.

else

54.

55.

n = 0;

56.

m++;

57.

58.

59.

60.

61.

det = det + s * (a[0][c] * determinant(b, k - 1));

62.

s = -1 * s;

63.

64.

65.
66.

return (det);

67. }
68.
69. void cofactor(float num[25][25], float f)

70. {
71. float b[25][25], fac[25][25];
72. int p, q, m, n, i, j;
73. for (q = 0;q < f; q++)
74. {
75.

for (p = 0;p < f; p++)

76.

77.

m = 0;

78.

n = 0;

79.

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

80.

81.

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

82.

83.

if (i != q && j != p)

84.

85.

b[m][n] = num[i][j];

86.

if (n < (f - 2))

87.

n++;

88.

else

89.

90.

n = 0;

91.

m++;

92.

93.

94.

95.

96.

fac[q][p] = pow(-1, q + p) * determinant(b, f - 1);

97.

98. }
99. transpose(num, fac, f);
100.

101.

/*Finding transpose of matrix*/

102.

void transpose(float num[25][25], float fac[25][25], float

r)
103.

104.

int i, j;

105.

float b[25][25], inverse[25][25], d;

106.
107.

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

108.

109.

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

110.

111.

b[i][j] = fac[j][i];

112.

113.
114.

}
d = determinant(num, r);

115.

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

116.

117.

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

118.

119.

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

120.

121.

122.

printf("\n\n\nThe inverse of matrix is : \n");

123.
124.

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

125.

126.

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

127.

128.

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

129.

130.

printf("\n");

131.

132.

You might also like