Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Gauss Elimination
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- int n,i,j,k;
- cout.precision(4); //set precision
- cout.setf(ios::fixed);
- cout<<"\nEnter the no. of equations\n";
- cin>>n; //input the no. of equations
- float a[n][n+1],x[n]; //declare an array to store the elements of augmented-matrix
- cout<<"\nEnter the elements of the augmented-matrix row-wise:\n";
- for (i=0;i<n;i++)
- for (j=0;j<=n;j++)
- cin>>a[i][j]; //input the elements of array
- for (i=0;i<n;i++) //Pivotisation
- for (k=i+1;k<n;k++)
- if (abs(a[i][i])<abs(a[k][i]))
- for (j=0;j<=n;j++)
- {
- swap(a[i][j], a[k][j]);
- }
- cout<<"\nThe matrix after Pivotisation is:\n";
- for (i=0;i<n;i++) //print the new matrix
- {
- for (j=0;j<=n;j++)
- cout<<a[i][j]<<setw(16);
- cout<<"\n";
- }
- for (i=0;i<n-1;i++) //loop to perform the gauss elimination
- for (k=i+1;k<n;k++)
- {
- double t=a[k][i]/a[i][i];
- for (j=0;j<=n;j++)
- a[k][j]=a[k][j]-t*a[i][j]; //make the elements below the pivot elements equal to zero or elimnate the variables
- }
- cout<<"\n\nThe matrix after gauss-elimination is as follows:\n";
- for (i=0;i<n;i++) //print the new matrix
- {
- for (j=0;j<=n;j++)
- cout<<a[i][j]<<setw(16);
- cout<<"\n";
- }
- for (i=n-1;i>=0;i--) //back-substitution
- { //x is an array whose values correspond to the values of x,y,z..
- x[i]=a[i][n]; //make the variable to be calculated equal to the rhs of the last equation
- for (j=i+1;j<n;j++)
- if (j!=i) //then subtract all the lhs values except the coefficient of the variable whose value is being calculated
- x[i]=x[i]-a[i][j]*x[j];
- x[i]=x[i]/a[i][i]; //now finally divide the rhs by the coefficient of the variable to be calculated
- }
- cout<<"\nThe values of the variables are as follows:\n";
- for (i=0;i<n;i++)
- cout<<x[i]<<endl; // Print the values of x, y,z,....
- return 0;
- }
Add Comment
Please, Sign In to add comment