Advertisement
ssr17

gauss jordan

Jul 21st, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int i, j, k, n;
  8.     float c, A[100][100], x[10], sum = 0.0;
  9.  
  10.     cout << "Enter the number of unknowns: ";
  11.     cin >> n;
  12.  
  13.     //input
  14.     cout << "Enter the Augmented Matrix: "<<endl;
  15.     for(i = 1; i <= n; i++)
  16.     {
  17.         for(j = 1; j <= n+1; j++)
  18.         {
  19.             cin >> A[i][j];
  20.         }
  21.     }
  22.  
  23.  
  24.     //forward elimination
  25.     for(i=1; i<=n; i++)
  26.     {
  27.         for(j=1; j<=n; j++)
  28.         {
  29.             if(j>i)
  30.             {
  31.                 c=A[j][i]/A[i][i]; //A[2][1]/A[1][1]
  32.                 for(k=1; k<=n+1; k++)
  33.                 {
  34.                     A[j][k]=A[j][k]-c*A[i][k]; // B[2][1] = A[2][1] - c * A[1][1]
  35.                 }
  36.             }
  37.         }
  38.     }
  39.  
  40.     //Normalization
  41.     for(i = 1; i<=n; i++)
  42.     {
  43.         float M = A[i][i];
  44.         for(j = i; j<=n+1; j++)
  45.         {
  46.             A[i][j]/= M;
  47.         }
  48.     }
  49.     cout << endl;
  50.  
  51.     //unnecessary print
  52.     for(i = 1; i <= n; i++)
  53.     {
  54.         for(j = 1; j <= n+1; j++)
  55.         {
  56.             cout << A[i][j] << "\t";
  57.         }
  58.         cout<<endl;
  59.     }
  60.     cout<<endl;
  61.  
  62.     //backward elimination
  63.     for(i=n; i>=1; i--)
  64.     {
  65.         for(j=n; j>=1; j--)
  66.         {
  67.             if(i>j)
  68.             {
  69.                 c=A[j][i]/A[i][i];
  70.                 for(k=1; k<=n+1; k++)
  71.                 {
  72.                     A[j][k]=A[j][k]-c*A[i][k];
  73.                 }
  74.             }
  75.         }
  76.     }
  77.     //unnecessary print
  78.     for(i = 1; i <= n; i++)
  79.     {
  80.         for(j = 1; j <= n+1; j++)
  81.         {
  82.             cout << A[i][j] << "\t";
  83.         }
  84.         cout<<endl;
  85.     }
  86.  
  87.  
  88.     //finding ans:
  89.    x[n]=A[n][n+1]/A[n][n];
  90.  
  91.    for(i=1; i<=n; i++)
  92.    {
  93.        x[i] = A[i][n+1]/A[i][i];
  94.    }
  95.  
  96.  
  97.  
  98.     //solution
  99.     cout << "The solution is : " << endl;
  100.     for(i=1; i<=n; i++)
  101.     {
  102.         cout << "x" << i << " = " << x[i]<< endl;
  103.     }
  104.  
  105.     return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement