首頁 >後端開發 >C++ >檢查矩陣是否為反對稱的C程序?

檢查矩陣是否為反對稱的C程序?

WBOY
WBOY轉載
2023-08-28 14:45:04678瀏覽

檢查矩陣是否為反對稱的C程序?

如果對所有的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。

A<sup>T</sup>= |0 5 -4|
    |-5 0 1|
    |4 -1 0|
and
A= |0 -5 4|
   |5 0 -1|
   |-4 1 0|

我們可以清楚地看到,AT=−A,這使得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.</p><p> ";
   else if (y == 1)
      cout << "The matrix is skew symmetric.</p><p> ";
   else
      cout << "It is neither symmetric nor skew-symmetric.</p><p> ";
   for (i = 0; i < m; i++) {
      for (j = 0; j < n; j++)
         cout << A[i][j] << " ";
      cout << "</p><p> ";
   }
   return 0;
}

以上是檢查矩陣是否為反對稱的C程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除