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