Finding Congruencing Matrix between two given matrices
Show older comments
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)
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
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
on 29 Aug 2022
Edited: Bruno Luong
on 29 Aug 2022
If I know I would post the solution for general case.
Categories
Find more on Solver Outputs and Iterative Display in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!