C++ 程式中的矩陣行列式


本教程中,我們將學習如何求矩陣行列式。

讓我們來看看求矩陣行列式的步驟。

  • 初始化矩陣。

  • 編寫一個函式以求矩陣行列式。

    • 如果矩陣大小為 1 或 2,則求矩陣行列式。這是一件很簡單的事情。

    • 初始化行列式、子矩陣、符號的變數。

    • 從 1 迭代到矩陣大小 N。

    • 找到當前矩陣元素的子矩陣。

      • 不在當前元素行和列中的所有元素

    • 將當前元素及其餘因子的乘積加到行列式中。

    • 更改符號。

  • 列印矩陣行列式。

示例

我們來看一下程式碼。

 演示

#include <bits/stdc++.h>
using namespace std;
#define N 3
void subMatrix(int mat[N][N], int temp[N][N], int p, int q, int n) {
   int i = 0, j = 0;
   // filling the sub matrix
   for (int row = 0; row < n; row++) {
      for (int col = 0; col < n; col++) {
         // skipping if the current row or column is not equal to the current
         // element row and column
         if (row != p && col != q) {
            temp[i][j++] = mat[row][col];
            if (j == n - 1) {
               j = 0;
               i++;
            }
         }
      }
   }
}
int determinantOfMatrix(int matrix[N][N], int n) {
   int determinant = 0;
   if (n == 1) {
      return matrix[0][0];
   }
   if (n == 2) {
      return (matrix[0][0] * matrix[1][1]) - (matrix[0][1] * matrix[1][0]);
   }
   int temp[N][N], sign = 1;
   for (int i = 0; i < n; i++) {
      subMatrix(matrix, temp, 0, i, n);
      determinant += sign * matrix[0][i] * determinantOfMatrix(temp, n - 1);
      sign = -sign;
   }
   return determinant;
}
int main() {
   int mat[N][N] = {{2, 1, 3}, {6, 5, 7}, {4, 9, 8}};
   cout << "Determinant: " << determinantOfMatrix(mat, N) << endl;
   return 0;
}

輸出

如果你執行以上程式,你將得到以下結果。

Determinant: 36

結論

如果你對教程有任何疑問,請在評論部分提到。

更新於: 2021-01-27

6K+ 瀏覽

開啟你的職業生涯

完成課程並獲得認證

開始學習
廣告