- Hermitian is not symmetric if the matrix is complex (not pure real).
- Symmetric is not positive in general, one cannot even speak about positiveness since x'*H*x is complex.
Eigen Decomposition of Hermitian symmetric matrix using MATLAB Coder
10 ビュー (過去 30 日間)
古いコメントを表示
I'm planning to implement the eig function as part of a MATLAB coder project.
The input matrix is complex, and Hermitian symmetric and positive definite.
My worry is about timing, how long the algorithm requires, since I'll be calling it a lot.
My assumption is that the C-code implementation will employ the "full-blown" eigen decompsition, without considering that the problem could simplified using the knowledge of the matrix properties. For example, all the eigen-values will be positive and real-valued.
I have not yet looked into BLAS or LAPACK, etc., to see of there is a special case of eig for symmetric, positive definite matrices.
Any ideas?
2 件のコメント
Bruno Luong
2022 年 6 月 5 日
Your decription is confused:
採用された回答
Steven Lord
2022 年 6 月 5 日
According to the Extended Capabilities section of the documentation page for the eig function it already supports C/C++ code generation with MATLAB Coder.
5 件のコメント
Christine Tobler
2022 年 6 月 6 日
The coder version of EIG does not support special branches for the Hermitian case. In fact, it will treat most simple eigenvalue problems as if they were generalized eigenvalue problems, in the implementation.
"For the standard eigenvalue problem, [V,D] = eig(A), when A is Hermitian or skew-Hermitian, code generation uses schur to calculate V and D. Otherwise, the results of [V,D] = eig(A) are similar to the results obtained by using [V,D] = eig(A,eye(size(A)),'qz') in MATLAB, except that the columns of V are normalized."
Note there are differences in behavior based on whether you specify the LAPACK library callback class.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Mathematics and Optimization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!