Advertisement
daniv1

Untitled

Dec 14th, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. bool gauss(double A[6][6], double B[6], int N, double X[6])
  2.         {
  3.             double C[6][6];
  4.             int i, j, k;
  5.             float R;
  6.             {
  7.                 j = 0;
  8.                 for (i = 1; i <= (N - 1);)
  9.                 {
  10.                     k = i;
  11.                     R = Math::Abs(A[i][i]);
  12.                     for (j = i + 1; j <= N;)
  13.                     {
  14.                         if (Math::Abs(A[j][i]) >= R)
  15.                         {
  16.                             k = j;
  17.                             R = Math::Abs(A[j][i]);
  18.                         }
  19.                         if (R < 1e-7)
  20.                         {
  21.                             MessageBox::Show("rivnanja ne symisne");
  22.                         }
  23.                         if (k != i)
  24.                         {
  25.                             R = B[k];
  26.                             B[k] = B[i];
  27.                             B[i] = R;
  28.                             for (j = i; j <= N;)
  29.                             {
  30.                                 R = A[k][j];
  31.                                 A[k][j] = A[i][j];
  32.                                 A[i][j] = R;
  33.                             }
  34.                         }
  35.                         R = A[i][i];
  36.                         B[i] = B[i] / R;
  37.                         for (j = 1; j <= N;)
  38.                         {
  39.                             A[i][j] = A[i][j] / R;
  40.                         }
  41.                         for (k = i + 1; k <= N;)
  42.                         {
  43.                             R = A[k][i];
  44.                             B[k] = B[k] - R*B[i];
  45.                             A[k][i] = 0;
  46.                             for (j = i + 1; j = N;)
  47.                             {
  48.                                 A[k][j] = A[k][j] - R*A[i][j];
  49.  
  50.                             }
  51.                         }
  52.                         if (Math::Abs(A[N][N]) <= 1E-7)
  53.                         {
  54.                             MessageBox::Show("Система вироджена");
  55.                             return false;
  56.  
  57.                         }
  58.                         for (int i = 0; i < N; i++)
  59.                             for (int j = 0; j < N; j++)
  60.                             {
  61.                                 C_Matrix_dgv->Rows[i]->Cells[j]->Value = Convert::ToString(A[i + 1][j + 1]);
  62.                             }
  63.                         X[N] = B[N] / A[N][N];
  64.                         for (int i = N - 1; i >= 1; i--)
  65.                         {
  66.                             R = B[i];
  67.                             for (int j = i + 1; j <= N; j++)
  68.                                 R -= A[i][j] * X[j];
  69.                             X[i] = R;
  70.                         }
  71.                         return true;
  72.                     }
  73.                 }
  74.  
  75.             }
  76.        
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement