Advertisement
Guest User

det

a guest
Dec 7th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. double Matrix::Det()                // k - индекс элемента, который будет обращен в 1
  2. {                                   // i - индекс строки, k-й элемент которой будет обращен в 0
  3.     if (N != M)                     // j - индекс столбца
  4.         throw (Size_Exception{});   // 5 -1 3 4 9 0 0 4 1
  5.     else
  6.     {
  7.  
  8.         vector<vector<double>> copy = Matr;
  9.         for (int k = 0; k < M - 1; k++)
  10.         {
  11.             double tmp_up = Matr[k][k];
  12.             for (int i = k+1; i < M; i++)
  13.             {
  14.                 double tmp_low = Matr[i][k];
  15.                 for (int j = k; j < M; j++)
  16.                 {
  17.                     Matr[i][j] += (Matr[k][j] * (-tmp_low)) / tmp_up;
  18.                 }
  19.             }
  20.         }
  21.         double det = 1;
  22.         for (int d = 0; d < M; d++)
  23.             det *= Matr[d][d];
  24.         Matr = copy;
  25.         return det;
  26.     }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement