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
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)
eig(A)
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.
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
2023 年 12 月 19 日
編集済み: John D'Errico
2023 年 12 月 19 日
LoL. Yep. That'll work. Just one call to eig.
Veena Narayanan
2023 年 12 月 20 日
編集済み: Veena Narayanan
2023 年 12 月 20 日
Veena Narayanan
2023 年 12 月 20 日
編集済み: Veena Narayanan
2023 年 12 月 20 日
Torsten
2023 年 12 月 20 日
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 ?
Veena Narayanan
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
Veena Narayanan
2023 年 12 月 21 日
カテゴリ
ヘルプ センター および File Exchange で Solver Outputs and Iterative Display についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!