เมทริกซ์สี่เหลี่ยมจัตุรัส A ถูกกล่าวว่าเป็น skew-symmetric ถ้า aij = -aji สำหรับทุก i และ j กล่าวอีกนัยหนึ่ง เมทริกซ์ A เป็น skew-symmetric ถ้า transpose ของ A เท่ากับลบของ A คือ (A^T = -A)
สังเกตว่าองค์ประกอบบนเส้นทแยงมุมหลักทั้งหมดในเมทริกซ์ skew-symmetric เป็นศูนย์
ตัวอย่างเมทริกซ์:
A= |0 -5 4| |5 0 -1| |-4 1 0|
เป็นเมทริกซ์ skew-symmetric เพราะ aij = -aji สำหรับทุก i และ j ตัวอย่าง a12 = -5 และ a21 = 5 หมายถึง a12 = -a21 เหมือนกันเงื่อนไขนี้เป็นจริงสำหรับ i และ j อื่นๆ
ยังตรวจสอบได้ว่า Transpose ของเมทริกซ์ A เท่ากับลบของเมทริกซ์ A คือ A^T = -A
A^T= |0 5 -4| |-5 0 1| |4 -1 0| และ A= |0 -5 4| |5 0 -1| |-4 1 0|
เห็นชัดว่า AT = -A ทำให้ A เป็นเมทริกซ์ skew-symmetric
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
คำอธิบาย
ถ้าเมทริกซ์เท่ากับ transpose ของมัน มันคือเมทริกซ์ symmetric
ถ้า transpose เท่ากับลบของมัน เมทริกซ์คือ skew-symmetric มิฉะนั้นไม่ใช่ทั้งสองอย่าง ผลลัพธ์พิมพ์ตามนั้น
ขั้นตอนตรวจสอบความสมมาตรของเมทริกซ์:
- ผู้ใช้ป้อนจำนวนแถวและคอลัมน์ของเมทริกซ์
- ป้อนองค์ประกอบของเมทริกซ์และเก็บใน 'A' ตัวแปร 'x' และ 'y' เริ่มต้นเป็น 0
- ถ้าเมทริกซ์ไม่เท่ากับ transpose ตัวแปรชั่วคราว 'x' กำหนดเป็น 1
- ถ้าลบของเมทริกซ์เท่ากับ transpose ตัวแปรชั่วคราว 'y' กำหนดเป็น 1
- ถ้า x เท่ากับ 0 เมทริกซ์เป็น symmetric ถ้า y เท่ากับ 1 เมทริกซ์เป็น skew-symmetric
- ถ้าไม่ใช่เงื่อนไขไหนเลย เมทริกซ์ไม่ใช่ symmetric หรือ skew-symmetric
- พิมพ์ผลลัพธ์
ตัวอย่างโค้ด C++
#includeusing 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; }