SVD of complex matrix to get the desired eigenvectors
조회 수: 15 (최근 30일)
이전 댓글 표시
Hello,
I am trying to do the singular value decomposition for a complex matrix
, where S is the real diagonal matrix and U,V are unitary matrix
. (* is conjugate only) Besides,
is a normal matrix. I have tried to use the svd function on T and get
. Then use the matrix V to calculate
,
and finally check with
. However, I cannot get the correct matrix K.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897025/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897030/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897035/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897040/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897045/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897050/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897055/image.png)
1) when I use the svd function on normal matrix T,
[A,K,B]=svd(T)
I can not get the exactly B that
, where i is the index of column. For some trivial eigenvalues near zero,
. May I have some methods to mitigate this inaccuracy?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897060/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897065/image.png)
2) Is there an algorithm to calculate the desired eigenvectors of matrix
? Can I only try to map after the svd process?
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/897070/image.png)
Following is the matrix I used.
K=[-0.469586517065409 + 0.175378013674380i,-0.162669155608248 + 0.474138893683794i,0.187585296250523 + 0.464844814234381i,-0.0470935259817215 - 0.499050242461219i,0.501128494899033 - 0.0117973001242788i,-0.491929587334346 + 0.0963027818655986i,-0.491929587334346 + 0.0963027818655986i;-0.162669155608248 + 0.474138893683794i,0.263016111526474 + 0.426721770908734i,0.478226533722468 + 0.150227584463661i,-0.415448433490139 - 0.280484480498623i,0.309072541453745 - 0.394643014393155i,-0.237946127637339 + 0.441192231382635i,-0.237946127637339 + 0.441192231382635i;0.187585296250523 + 0.464844814234381i,0.478226533722468 + 0.150227584463661i,0.459785835505823 - 0.199664544068809i,-0.497649694446211 + 0.0601142770694749i,-0.0248843875256234 - 0.500649290369484i,0.109120724497475 + 0.489245962860338i,0.109120724497475 + 0.489245962860338i;-0.0470935259817215 - 0.499050242461219i,-0.415448433490139 - 0.280484480498623i,-0.497649694446211 + 0.0601142770694749i,0.494104399695533 + 0.0844380654178533i,-0.119058443001582 + 0.486923024553196i,0.0350717196883265 - 0.500038917653513i,0.0350717196883265 - 0.500038917653513i;0.501128494899033 - 0.0117973001242788i,0.309072541453745 - 0.394643014393155i,-0.0248843875256234 - 0.500649290369484i,-0.119058443001582 + 0.486923024553196i,-0.477319052929875 - 0.153086467070477i,0.496322714229578 + 0.0702332402056026i,0.496322714229578 + 0.0702332402056026i;-0.491929587334346 + 0.0963027818655986i,-0.237946127637339 + 0.441192231382635i,0.109120724497475 + 0.489245962860338i,0.0350717196883265 - 0.500038917653513i,0.496322714229578 + 0.0702332402056026i,-0.501053513999558 + 0.0146396994056337i,-0.501053513999558 + 0.0146396994056337i;-0.491929587334346 + 0.0963027818655986i,-0.237946127637339 + 0.441192231382635i,0.109120724497475 + 0.489245962860338i,0.0350717196883265 - 0.500038917653513i,0.496322714229578 + 0.0702332402056026i,-0.501053513999558 + 0.0146396994056337i,-0.501053513999558 + 0.0146396994056337i];
Any help would be highly appreciated!
댓글 수: 2
Christine Tobler
2022년 2월 17일
It looks like what you have here with is a complex symmetric eigenproblem. Unfortunately, there aren't as many algorithms available for this as for the complex hermitian eigenproblem, so MATLAB's eig doesn't have a special-case treatment for this case.
The svd function doesn't account for the possibility of any symmetry in the input that would make it possible to have U and V be the same or the same up to conjugation.
채택된 답변
John D'Errico
2022년 2월 17일
K=[-0.469586517065409 + 0.175378013674380i,-0.162669155608248 + 0.474138893683794i,0.187585296250523 + 0.464844814234381i,-0.0470935259817215 - 0.499050242461219i,0.501128494899033 - 0.0117973001242788i,-0.491929587334346 + 0.0963027818655986i,-0.491929587334346 + 0.0963027818655986i;-0.162669155608248 + 0.474138893683794i,0.263016111526474 + 0.426721770908734i,0.478226533722468 + 0.150227584463661i,-0.415448433490139 - 0.280484480498623i,0.309072541453745 - 0.394643014393155i,-0.237946127637339 + 0.441192231382635i,-0.237946127637339 + 0.441192231382635i;0.187585296250523 + 0.464844814234381i,0.478226533722468 + 0.150227584463661i,0.459785835505823 - 0.199664544068809i,-0.497649694446211 + 0.0601142770694749i,-0.0248843875256234 - 0.500649290369484i,0.109120724497475 + 0.489245962860338i,0.109120724497475 + 0.489245962860338i;-0.0470935259817215 - 0.499050242461219i,-0.415448433490139 - 0.280484480498623i,-0.497649694446211 + 0.0601142770694749i,0.494104399695533 + 0.0844380654178533i,-0.119058443001582 + 0.486923024553196i,0.0350717196883265 - 0.500038917653513i,0.0350717196883265 - 0.500038917653513i;0.501128494899033 - 0.0117973001242788i,0.309072541453745 - 0.394643014393155i,-0.0248843875256234 - 0.500649290369484i,-0.119058443001582 + 0.486923024553196i,-0.477319052929875 - 0.153086467070477i,0.496322714229578 + 0.0702332402056026i,0.496322714229578 + 0.0702332402056026i;-0.491929587334346 + 0.0963027818655986i,-0.237946127637339 + 0.441192231382635i,0.109120724497475 + 0.489245962860338i,0.0350717196883265 - 0.500038917653513i,0.496322714229578 + 0.0702332402056026i,-0.501053513999558 + 0.0146396994056337i,-0.501053513999558 + 0.0146396994056337i;-0.491929587334346 + 0.0963027818655986i,-0.237946127637339 + 0.441192231382635i,0.109120724497475 + 0.489245962860338i,0.0350717196883265 - 0.500038917653513i,0.496322714229578 + 0.0702332402056026i,-0.501053513999558 + 0.0146396994056337i,-0.501053513999558 + 0.0146396994056337i];
format long g
svd(K)
This matrix is effectively a rank 1 matrix. It has essentially zero singular values below the first. So effectively numerically rank 1. How you constructed that matrx, I don't know. But in terms of the elements you have provided. you cannot do better than that.
I think you do not understand that the corresponding singular vectors are not unique. When a matrix has replicated singular values (or eigenvalues) then the vectors only are such that they span the same supspace. But nothign you do will make them unique.
Sorry, but no magic exists.
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!