using
System;
class
GFG
{
static
double
determinantOfMatrix(
double
[,]mat)
{
double
ans;
ans = mat[0,0] * (mat[1,1] * mat[2,2] - mat[2,1] * mat[1,2])
- mat[0,1] * (mat[1,0] * mat[2,2] - mat[1,2] * mat[2,0])
+ mat[0,2] * (mat[1,0] * mat[2,1] - mat[1,1] * mat[2,0]);
return
ans;
}
static
void
findSolution(
double
[,]coeff)
{
double
[,]d = {
{ coeff[0,0], coeff[0,1], coeff[0,2] },
{ coeff[1,0], coeff[1,1], coeff[1,2] },
{ coeff[2,0], coeff[2,1], coeff[2,2] },
};
double
[,]d1 = {
{ coeff[0,3], coeff[0,1], coeff[0,2] },
{ coeff[1,3], coeff[1,1], coeff[1,2] },
{ coeff[2,3], coeff[2,1], coeff[2,2] },
};
double
[,]d2 = {
{ coeff[0,0], coeff[0,3], coeff[0,2] },
{ coeff[1,0], coeff[1,3], coeff[1,2] },
{ coeff[2,0], coeff[2,3], coeff[2,2] },
};
double
[,]d3 = {
{ coeff[0,0], coeff[0,1], coeff[0,3] },
{ coeff[1,0], coeff[1,1], coeff[1,3] },
{ coeff[2,0], coeff[2,1], coeff[2,3] },
};
double
D = determinantOfMatrix(d);
double
D1 = determinantOfMatrix(d1);
double
D2 = determinantOfMatrix(d2);
double
D3 = determinantOfMatrix(d3);
Console.Write(
"D is : {0:F6} \n"
, D);
Console.Write(
"D1 is : {0:F6} \n"
, D1);
Console.Write(
"D2 is : {0:F6} \n"
, D2);
Console.Write(
"D3 is : {0:F6} \n"
, D3);
if
(D != 0)
{
double
x = D1 / D;
double
y = D2 / D;
double
z = D3 / D;
Console.Write(
"Value of x is : {0:F6}\n"
, x);
Console.Write(
"Value of y is : {0:F6}\n"
, y);
Console.Write(
"Value of z is : {0:F6}\n"
, z);
}
else
{
if
(D1 == 0 && D2 == 0 && D3 == 0)
Console.Write(
"Infinite solutions\n"
);
else
if
(D1 != 0 || D2 != 0 || D3 != 0)
Console.Write(
"No solutions\n"
);
}
}
public
static
void
Main()
{
double
[,]coeff = {{ 2, -1, 3, 9 },
{ 1, 1, 1, 6 },
{ 1, -1, 1, 2 }};
findSolution(coeff);
}
}