Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double Matrix::Det() // k - индекс элемента, который будет обращен в 1
- { // i - индекс строки, k-й элемент которой будет обращен в 0
- if (N != M) // j - индекс столбца
- throw (Size_Exception{}); // 5 -1 3 4 9 0 0 4 1
- else
- {
- vector<vector<double>> copy = Matr;
- for (int k = 0; k < M - 1; k++)
- {
- double tmp_up = Matr[k][k];
- for (int i = k+1; i < M; i++)
- {
- double tmp_low = Matr[i][k];
- for (int j = k; j < M; j++)
- {
- Matr[i][j] += (Matr[k][j] * (-tmp_low)) / tmp_up;
- }
- }
- }
- double det = 1;
- for (int d = 0; d < M; d++)
- det *= Matr[d][d];
- Matr = copy;
- return det;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement