Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1.     //Находим обратную матрицу.
  2.     //Прямой ход метода Гаусса-Жордана. Получаем нули под главной диагональю
  3.     for(k=0;k<N;k++)
  4.     {
  5.         temp=Rx[k][k];
  6.         for(j=0;j<N;j++)
  7.         {
  8.             E[k][j]/=temp;
  9.             Rx[k][j]/=temp;
  10.         }
  11.         for(i=1+k;i<N;i++)
  12.         {
  13.             temp=Rx[i][k];
  14.             for(j=0;j<N;j++)
  15.             {
  16.                 E[i][j]-=E[k][j]*temp;
  17.                 Rx[i][j]-=Rx[k][j]*temp;
  18.             }
  19.         }
  20.     }
  21.     //Обратный ход метода Гаусса-Жордана. Получаем нули над главной диагональю
  22.     for (k = N - 1; k > 0; k--)
  23.     {
  24.         for (i = k - 1; i >= 0; i--)
  25.         {
  26.             temp = Rx[i][k];
  27.  
  28.             for (j = 0; j < N; j++)
  29.             {
  30.                 Rx[i][j] -= Rx[k][j] * temp;
  31.                 E[i][j] -= E[k][j] * temp;
  32.             }
  33.         }
  34.     }
  35.     //Присваеваем элементы матрицы. чтобы Rx стала обратной, а не единичной.
  36.     for (i = 0; i < N; i++)
  37.         for (j = 0; j < N; j++)
  38.             Rx[i][j] = E[i][j];
  39.     mtrx->setInvRx(Rx);
  40.     for(i=0;i<N;i++)
  41.     {
  42.         W[i]=0;
  43.         for(j=0;j<N;j++)
  44.         {
  45.             W[i]+=Rx[j][i]*P[j];
  46.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement