design a program that solves matrices by the gauss-jordan method use the object-oriented language c ++
// C++ program that solves matrices by the gauss-jordan
method
// Elimination_Method
#include <bits/stdc++.h>
using namespace std;
#define M 10
// Function to print_the_matrix
void PrintMatrix(float a[][M], int n)
{
for (int i = 0; i < n; i++) {
for (int j = 0; j <= n;
j++)
cout << a[i][j] << "
";
cout << endl;
}
}
// function to reduce_matrix to reduced
// row_echelon form.
int PerformOperation(float a[][M], int n)
{
int i, j, k = 0, c, flag = 0, m = 0;
float pro = 0;
// Performing elementary_operations
for (i = 0; i < n; i++)
{
if (a[i][i] == 0)
{
c = 1;
while ((i + c)
< n && a[i + c][i] == 0)
c++;
if ((i + c) ==
n) {
flag = 1;
break;
}
for (j = i, k =
0; k <= n; k++)
swap(a[j][k], a[j+c][k]);
}
for (j = 0; j < n; j++)
{
// Excluding all
i == j
if (i != j)
{
// Converting Matrix to reduced row
// echelon form(diagonal matrix)
float pro = a[j][i] / a[i][i];
for (k = 0; k <= n; k++)
a[j][k] = a[j][k] - (a[i][k])
* pro;
}
}
}
return flag;
}
// Function to print the desired_result
// if unique_solutions exists, otherwise
// prints no_solution or infinite_solutions
// depending upon the input_given.
void PrintResult(float a[][M], int n, int flag)
{
cout << "Result is : ";
if (flag == 2)
cout << "Infinite Solutions Exists" <<
endl;
else if (flag == 3)
cout << "No Solution Exists" <<
endl;
//solution by dividing constants by
// their respective_diagonal_elements
else {
for (int i = 0; i < n;
i++)
cout <<
a[i][n] / a[i][i] << " ";
}
}
// To check whether infinite_solutions
// exists or no_solution exists
int CheckConsistency(float a[][M], int n, int flag)
{
int i, j;
float sum;
// flag == 2 for infinite_solution
// flag == 3 for No_solution
flag = 3;
for (i = 0; i < n; i++)
{
sum = 0;
for (j = 0; j < n;
j++)
sum = sum +
a[i][j];
if (sum == a[i][j])
flag =
2;
}
return flag;
}
// Driver code
int main()
{
float a[M][M] = {{ 0, 2, 1, 4 },
{ 1, 1, 2, 6 },
{ 2, 1, 1, 7 }};
// Order of Matrix(n)
int n = 3, flag = 0;
// Performing Matrix-transformation
flag = PerformOperation(a, n);
if (flag == 1)
flag = CheckConsistency(a, n,
flag);
// Printing Final-Matrix
cout << "Final Augumented_Matrix is : " <<
endl;
PrintMatrix(a, n);
cout << endl;
// Printing Solutions(if exist)
PrintResult(a, n, flag);
return 0;
}
Get Answers For Free
Most questions answered within 1 hours.