Solve a Matrix equation

4 visualizaciones (últimos 30 días)
Zhiqiang Xu
Zhiqiang Xu el 23 de Nov. de 2020
Respondida: Ameer Hamza el 23 de Nov. de 2020
Hi, I was struggling in this equation for serveal days.
A' * B * A =P
Solve A.
A is an unknown 4X1 complex matrix and A' is the transpose conjugate of A.
B is a known 4X4 complex matrix.
P is 1X1.
Do anybody know how to solve it on the matlab?
  1 comentario
Stephan
Stephan el 23 de Nov. de 2020
Can you provide values for B and P?

Iniciar sesión para comentar.

Respuestas (2)

Stephan
Stephan el 23 de Nov. de 2020
Editada: Stephan el 23 de Nov. de 2020
Symbolic approach:
A = sym('A', [4,1])
B = magic(4)
P = 13
sol = solve(A'*B*A==P, A)
sol.A1
sol.A2
sol.A3
sol.A4
% This example gives 4 solutiuons - we test the first one
test_A = [sol.A1(1); sol.A2(1); sol.A3(1); sol.A3(1)]
double(test_A' * B * test_A)

Ameer Hamza
Ameer Hamza el 23 de Nov. de 2020
There might be an algebric way to solve this problem, but following shows an optimization based method
rng(0);
B = rand(4)+1i*rand(4);
P = 0.5 + 0.3i;
fun = @(x) abs(x.'*B*x-P);
x0 = rand(8,1);
sol = fmincon(@(x) fun((x(1:4)+1i*x(5:8))), x0);
A = sol(1:4)+1i*sol(5:8);

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by