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;
       // 填充子矩阵
       for (int row = 0; row < n; row++) {
          for (int col = 0; col < n; col++) {
             // 如果当前行或列不等于当前行,则跳过
             // 元素行和列
             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

    结论