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

Một ma trận vuông là tổng của ma trận đối xứng và xiên đối xứng?

Ma trận đối xứng - Một ma trận mà chuyển vị của nó bằng chính ma trận đó. Sau đó, nó được gọi là ma trận đối xứng .

Ma trận đối xứng xiên - Ma trận có chuyển vị bằng âm của ma trận thì được gọi là ma trận đối xứng xiên.

Tổng của ma trận đối xứng và xiên là ma trận vuông. Để tìm các ma trận này dưới dạng tổng, chúng ta có công thức này.

Cho A là một ma trận vuông. sau đó,

A =(½) * (A + A`) + (½) * (A - A`),

A` là chuyển vị của ma trận.

(½) (A + A`) là ma trận đối xứng.

(½) (A - A`) là ma trận đối xứng xiên.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
#define N 3
void printMatrix(float mat[N][N]) {
   for (int i = 0; i < N; i++) {
      for (int j = 0; j < N; j++)
         cout << mat[i][j] << " ";
         cout << endl;
   }
}
int main() {
   float mat[N][N] = { { 2, -2, -4 },
   { -1, 3, 4 },
   { 1, -2, -3 } };
   float tr[N][N];
   for (int i = 0; i < N; i++)
   for (int j = 0; j < N; j++)
   tr[i][j] = mat[j][i];
   float symm[N][N], skewsymm[N][N];
   for (int i = 0; i < N; i++) {
      for (int j = 0; j < N; j++) {
         symm[i][j] = (mat[i][j] + tr[i][j]) / 2;
         skewsymm[i][j] = (mat[i][j] - tr[i][j]) / 2;
      }
   }
   cout << "Symmetric matrix-" << endl;
   printMatrix(symm);
   cout << "Skew Symmetric matrix-" << endl;
   printMatrix(skewsymm);
   return 0;
}

Đầu ra

Symmetric matrix -
2 -1.5 -1.5
-1.5 3 1
-1.5 1 -3
Skew Symmetric matrix -
0 -0.5 -2.5
0.5 0 3
2.5 -3 0