如果對所有的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中文網其他相關文章!