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

    结论

    以上是 C ++程序中矩阵的行列式 的全部内容, 来源链接: utcz.com/z/357902.html

    回到顶部