Advertisement
daniv1

Untitled

Dec 24th, 2017
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. bool Gauss( double A [10][10], double B[10], int N, double X[10])
  2. {
  3.     int i, j;
  4.     for ( i = 1; i <= N-1; i++)
  5.     {
  6.         int k=i;
  7.         R=abs(A[i][i]);
  8.         for ( j= i+1; j <= N; j++)
  9.         {
  10.             if (abs(A[j][i]>R))
  11.             {
  12.                 k = j;
  13.                 R = (abs(A[j][i]));
  14.             }
  15.         }
  16.             if (R< 1e-7)
  17.             {
  18.                 MessageBox::Show("  розв`язку немає ");
  19.                 return false;
  20.             }
  21.             if (k != i)
  22.             {
  23.                 R= B[k];
  24.                 B[k]= B[i];
  25.                 B[i]= R;
  26.                 for (j=1; j<= N; j++)
  27.                 {
  28.                     R= A[k][j];
  29.                     A[k][j]= A[i][j];
  30.                     A[i][j]= R;
  31.                 }
  32.             }
  33.             R= A[i][i];
  34.             B[i]= B[i]/R;
  35.             for (j=1; j<= N; j++)
  36.                 A[i][j]= A[i][j]/R;
  37.             for (k=i+1; k<= N+1; k++)
  38.             {
  39.                 R=A[k][i];
  40.                 B[k]= B[k] - R*B[i];
  41.                 A[k][i] = 0;
  42.                 for (j= i+1; j<= N; j++)
  43.                     A[k][j]= A[k][j] - R*A[i][j];
  44.             }
  45.         }
  46.     if  (abs(A[N][N]) <= 1e-7)
  47.     {
  48.         MessageBox::Show(" Рівняння не сумісне ");
  49.         return false;
  50.     }
  51.     for (int i = 0; i < N; i++)
  52.         for (int j = 0; j < N; j++)
  53.         {
  54.             C_Matr->Rows[i]->Cells[j] -> Value = Convert::ToString(A[i + 1][j + 1]);
  55.         }
  56.         MessageBox::Show("Завершили прямий хід");
  57.  
  58.     // Зворотній хід
  59.     X[N]= B[N]/A[N][N];
  60.     for (int i = N - 1; i >= 1; i--)
  61.     {
  62.         R = B[i];
  63.         for (int j = i + 1; j <= N; j++) R -= A[i][j] * X[j];
  64.         X[i] = R;
  65.     }
  66.     return true;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement