Optimization involving complex variable.

Let A be a matrix with complex eigen values. I need to find a matrix B such that the eigen values of matrix B are equal to the eigen values of matrix A (Matrix A and B are similar matrices). The objective function can be written as,
B^=arg min_B { norm( eig(A)-eig(B) ) ^2}
I would like to know if there are any optimization techniques to solve this type of objective functions involving complex variables.

답변 (2개)

John D'Errico
John D'Errico 2023년 12월 19일
편집: John D'Errico 2023년 12월 19일
If you just need to find a new matrx B, then there is ABSOLUTELY NO reason to use optimization techniques!
A is assumed to be a matrix with complex eigenvalues. This will suffice:
A = randn(3) + i*randn(3)
A =
-0.5294 + 0.9619i 1.7104 + 1.9862i -0.9842 + 0.7229i -1.5127 - 0.5575i 0.3180 + 0.3790i 0.2963 - 1.8057i -0.8063 + 1.8046i 1.1759 - 0.7194i 0.6566 + 0.1537i
eig(A)
ans =
-2.0916 + 3.0828i 1.0748 + 0.4439i 1.4619 - 2.0321i
Now, what is a similar matrix? Two matrices A and B are similar, If we can employ a similarity transformation between them. A similarity transformation is of the form
B = P*A*P^-1
Clearly, if the non-singular matrix P is some general orthogonal matrix, then it won't change the rank of A, it won't change the determinant, it won't change the eigenvalues.
So all you need to do is choose some random orthogonal matrix. (That wil allow you to construct B directly. NO OPTIMIZATION NEEDED!)
HINT: Can ORTH help you here? What would happen if you applied orth to some random matrix? That A happens to be complex and has complex eigenvalues is irrelevant.
Sorry. I won't do what clearly seems to be homework. As it is, I've already given you all the hint you need.
Torsten
Torsten 2023년 12월 19일
이동: Torsten 2023년 12월 19일

0 개 추천

No more characteristics of B ? Only the same eigenvalues ? Why don't you simply diagonalize A and take the diagonal matrix as B ?

댓글 수: 7

John D'Errico
John D'Errico 2023년 12월 19일
편집: John D'Errico 2023년 12월 19일
LoL. Yep. That'll work. Just one call to eig.
Veena Narayanan
Veena Narayanan 2023년 12월 20일
편집: Veena Narayanan 2023년 12월 20일
@Torsten @John D'Errico The matrix A and the change of basis matrix P are unknown. The only information available about A is its eigen value matrix which contains complex values. I am trying to identify another matrix with the same eigen values of matrix A and along with that it satisfies certain other constraints too. For example,
B^=arg min_B { norm(y-QBc)^2+ norm( eig(A)-eig(B) ) ^2}
where y is a measurement vector of size m*1, Q is an m*n random matrix with m<<n, B is an unknown matrix of size n*n and c is a sparse vector of size n*1.
I am using an alternating optimization technique to solve an inverse problem and this is one of the objective function i have to minimize.
Veena Narayanan
Veena Narayanan 2023년 12월 20일
편집: Veena Narayanan 2023년 12월 20일
@Torsten Since the only information availabe about A are its eigen values, i cannot go for diagonalization.
I have used fminunc and tried to obtain a diagonal matrix B by matching the vector of diagonal elements of B with the eigen values of A.
---------------------------------------------------
Lam=eig(A);
r=randn(n,1); im=randn(n,1);
x0=complex(r,im);
fun1=@(x1) norm(x1-Lam)^2;
-----------------------------------------------------
Since fminunc cannot take complex values, i wanted to know if there exists any other optimization technique that accepts complex initial values.
I have also tried using fsolve(fun1,x0).
x^=fsolve(fun1,x0);
A complex vector x^ was obtained. The real part of the vector x^ was closer to the real part of Lam whereas their imaginary part differed.
So the problem you have is to determine a regular matrix P such that
y - Q*inv(P)*diag(eig(A))*P*c
is minimized in the 2-norm ?
That is one way i could approach the problem. But here i was actually trying to find a matrix B which is a product of an unknown matrix D and a known Householder matrix H such that the matrix B=DH is having the same eigen values as A.
So the problem is to determine D such that the 2-norm of (y-Q*D*H*c) is minimized and the eig(DH)=eig(A).
Therefore, D*H=inv(P)*diag(eig(A))*P.
The matrix D can be a diagonal or non-diagonal matrix.
Torsten
Torsten 2023년 12월 20일
편집: Torsten 2023년 12월 20일
If D is unknown, what's the advantage of your approach ? Don't you think setting B = inv(P)*diag(eig(A))*P is much more natural (although I can't believe it will be easy to derive a complete unknown matrix from an optimization) ?
Maybe you should tell us the whole story because I think your question is related to
This question is not directly related to my previous question mentioned in the link.
I am trying to find a matrix which is the product of matrix D and Householder matrix H which is similar to A. I have already obtained a suboptimal solution with just the Householder matrix. I expect to get a better solution by scaling the Householder matrix with a D matrix. But that is possible only if the matrix DH is similar to A.

댓글을 달려면 로그인하십시오.

카테고리

질문:

2023년 12월 19일

댓글:

2023년 12월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by