Finding Congruencing Matrix between two given matrices

2 views (last 30 days)
I have two given nxn matrices A,M and I am trying to find P such that
P*A*P.'=M.
How can I find the solution for P in matlab?

Answers (2)

Torsten
Torsten on 29 Aug 2022
  6 Comments
Roi Binia
Roi Binia on 29 Aug 2022
Edited: Roi Binia on 29 Aug 2022
I know it, I am trying to find the congruencing matrix.
Torsten
Torsten on 29 Aug 2022
Edited: Torsten on 29 Aug 2022
Do you know of standard approaches from the literature ? I don't. Seems it is a hard problem with no ready-to-use solver.

Sign in to comment.


Bruno Luong
Bruno Luong on 29 Aug 2022
Edited: Bruno Luong on 30 Aug 2022
Partial solution:
if A and M are real symmetric or complex Hemitian, the P can be computed as
[W,E]=eig(M,'vector');
[V,D]=eig(A,'vector');
P = W*diag(sqrt(E./D))*V';
Note that if A and M real,
  • (A+A') and (M+M') are pure real symmetric,
  • 1i*(A-A') and 1i*(M-M') are pure imaginary Hermitian
  • Any real combination of both are Hermitian
  2 Comments
Torsten
Torsten on 29 Aug 2022
Note that if A and M real,
  • (A+A') and (M+M') are pure real symmetric,
  • 1i*(A-A') and 1i*(M-M') are pure imaginary Hermitian
  • Any real combination of both are Hermitian
Do you think this helps for the general case A, M in GL(7,IR) or why did you add this ?
Bruno Luong
Bruno Luong on 29 Aug 2022
Edited: Bruno Luong on 29 Aug 2022
If I know I would post the solution for general case.

Sign in to comment.

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!