How to obtain the value of the matrix X in equation AXA' = B?

6 views (last 30 days)
If I have
A*X*A' = B
X and B are real square matrices.
A might not be square matrix.
For example:
A (3x4) is given
B (3x3) is given
X (4x4) is unknown matrix.
How can I obtain the X matrix?

Accepted Answer

KSSV on 18 Jan 2022
For the give dimensions and given equation it cannot be solved. But for given dimensions the following equation can be solved.
% A'*X*A = B
To solve above A can be (3x4) , X is (3,3) abd B is (4x4).
A = rand(3,4) ;
B = rand(4,4) ;
X = pinv(A')*B*pinv(A)
X = 3×3
8.6286 7.7981 -10.7310 8.3291 3.1179 -8.3506 -8.9399 -3.2050 10.3068
If you want to solve the given equation:
% A*X*A' = B
The dimensions of A should be (4x3), X is (3x3) and B is (4X4)
A = rand(4,3) ;
B = rand(4,4) ;
X = pinv(A)*B*pinv(A')
X = 3×3
1.7788 -1.3116 1.1470 1.2149 -0.0710 -0.6240 -0.8625 1.7781 -0.6461
Check the dimensions once for your quesion. Read about pinv function and it's properties.

More Answers (1)

Torsten on 18 Jan 2022
Edited: Torsten on 18 Jan 2022
If you multiply out A*X*A' for a matrix of unknowns X=(x_ij) and compare the elements with those of the matrix B, you get an (in your case) underdetermined linear system of equations for the x_ij. This usually has an infinite number of solutions.

Community Treasure Hunt

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

Start Hunting!