如果对于所有的i和j,方阵a的元素满足aij=−aji,则称方阵a为反对称矩阵。换句话说,如果矩阵a的转置等于矩阵a的负值,即(at=−a),则称矩阵a为反对称矩阵。
请注意,反对称矩阵的所有主对角线元素都为零。
让我们举一个矩阵的例子
a= |0 -5 4| |5 0 -1| |-4 1 0|
这是一个偏斜对称矩阵,因为对于所有的i和j,aij=−aji。例如,a12 = -5,a21=5,这意味着a12=−a21。同样,对于所有其他的i和j的值,这个条件也成立。
我们还可以验证矩阵a的转置等于矩阵a的负数,即at=−a。
at= |0 5 -4| |-5 0 1| |4 -1 0|anda= |0 -5 4| |5 0 -1| |-4 1 0|
我们可以清楚地看到,at=−a,这使得a成为一个斜对称矩阵。
input:enter the number of rows and columns: 2 2enter the matrix elements: 10 20 20 10output:the matrix is symmetric.10 2020 10
解释如果矩阵等于其转置,则它是对称矩阵。
否则,如果其转置等于其负数,那么矩阵是反对称的。否则它既不是对称的也不是反对称的。结果将相应地打印出来。
检查矩阵对称性的过程如下:
要求用户输入矩阵的行数和列数。
要求输入矩阵的元素并存储在'a'中。将变量'x'和'y'初始化为0。
如果矩阵不等于其转置,则将临时变量'x'赋值为1。
否则,如果矩阵的负数等于其转置,则将临时变量'y'赋值为1。
如果x等于0,则矩阵是对称的。否则,如果y等于1,则矩阵是反对称的。
如果以上条件都不满足,则矩阵既不是对称的也不是反对称的。
然后打印结果。
示例#include<iostream>using namespace std;int main () { int a[10][10], i, j, m, n, x = 0, y = 0; cout << "enter the number of rows and columns : "; cin >> m >> n; cout << "enter the matrix elements : "; for (i = 0; i < m; i++) for (j = 0; j < n; j++) cin >> a[i][j]; for (i = 0; i < m; i++) { for( j = 0; j < n; j++) { if (a[i][j] != a[j][i]) x = 1; else if (a[i][j] == -a[j][i]) y = 1; } } if (x == 0) cout << "the matrix is symmetric.
"; else if (y == 1) cout << "the matrix is skew symmetric.
"; else cout << "it is neither symmetric nor skew-symmetric.
"; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) cout << a[i][j] << " "; cout << "
"; } return 0;}
以上就是检查矩阵是否为反对称的c程序?的详细内容。