C程序检查矩阵是否倾斜对称?

如果所有i和j的aij = -aji,则称平方矩阵A是偏斜对称的。换句话说,如果矩阵A的转置等于矩阵A的负数,即(A T = -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的负值,即A T = -A。

AT= |0 5 -4|

    |-5 0 1|

    |4 -1 0|

and

A= |0 -5 4|

   |5 0 -1|

   |-4 1 0|

我们可以清楚地看到AT = -A使得矩阵对称。

Input:

Enter the number of rows and columns: 2 2

Enter the matrix elements: 10 20 20 10

Output:

The matrix is symmetric.

10 20

20 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.\n ";

   else if (y == 1)

      cout << "The matrix is skew symmetric.\n ";

   else

      cout << "It is neither symmetric nor skew-symmetric.\n ";

   for (i = 0; i < m; i++) {

      for (j = 0; j < n; j++)

         cout << A[i][j] << " ";

      cout << "\n ";

   }

   return 0;

}

以上是 C程序检查矩阵是否倾斜对称? 的全部内容, 来源链接: utcz.com/z/338526.html

回到顶部