Solve a Matrix equation

24 Ansichten (letzte 30 Tage)
Zhiqiang Xu
Zhiqiang Xu am 23 Nov. 2020
Beantwortet: Ameer Hamza am 23 Nov. 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 Kommentar
Stephan
Stephan am 23 Nov. 2020
Can you provide values for B and P?

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Stephan
Stephan am 23 Nov. 2020
Bearbeitet: Stephan am 23 Nov. 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 am 23 Nov. 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);

Kategorien

Mehr zu Systems of Nonlinear Equations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by