Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình Kiểm tra Ma trận có phải là Đối xứng Skew hay không?

Ma trận vuông A được cho là đối xứng xiên nếu aij =−aji với mọi i và j. Nói cách khác, chúng ta có thể nói rằng ma trận A được cho là đối xứng lệch nếu chuyển vị của ma trận A bằng âm của Ma trận A tức là (A T =−A).

Lưu ý rằng tất cả các phần tử đường chéo chính trong ma trận đối xứng xiên đều bằng không.

hãy lấy một ví dụ về ma trận

A= |0 -5 4|
   |5 0 -1|
   |-4 1 0|

Nó là ma trận đối xứng xiên vì aij =−aji với mọi i và j. Ví dụ, a12 =-5 và a21 =5 có nghĩa là a12 =−a21. Tương tự, điều kiện này đúng với tất cả các giá trị khác của i và j.

Chúng ta cũng có thể xác minh rằng Transpose của Ma trận A bằng âm của ma trận A tức là A T =−A.

AT= |0 5 -4|
    |-5 0 1|
    |4 -1 0|
and
A= |0 -5 4|
   |5 0 -1|
   |-4 1 0|

Chúng ta có thể thấy rõ ràng rằng AT =−A tạo nên một ma trận đối xứng xiên.

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

Giải thích

Nếu ma trận bằng với chuyển vị của nó thì đó là ma trận đối xứng.

Ngược lại, nếu nó chuyển vị bằng với âm của chính nó, thì ma trận là đối xứng xiên. Khác thì không. Kết quả được in tương ứng

Quy trình kiểm tra tính đối xứng của ma trận

  • Người dùng được yêu cầu nhập một số hàng và cột của ma trận.

  • Các phần tử của ma trận được yêu cầu nhập và lưu trữ trong ‘A’. Các biến ‘x’ và ‘y’ được khởi tạo bằng 0.

  • Nếu ma trận không bằng với phép chuyển vị của nó, một biến tạm thời ‘x’ được gán 1.

  • Ngược lại, nếu số âm của ma trận bằng với chuyển vị của nó, thì một biến tạm thời ‘y’ ​​được gán 1.

  • Nếu x bằng 0 thì ma trận là đối xứng. Ngược lại, nếu y bằng 1, ma trận là đối xứng xiên.

  • Nếu cả hai điều kiện đều không thỏa mãn thì ma trận không đối xứng hoặc không đối xứng xiên.

  • Kết quả sau đó được in ra.

Ví dụ

#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;
}