Using polyeig with scaling matrices
조회 수: 7 (최근 30일)
이전 댓글 표시
I'm using the function polyeig to solve a quadratic eigenvalue problem with complex matrices A0.A1 and A2 (A2 is singular; has only two non-zero rows).
The result was so bad, and according to the help center of Mathworks : (Scaling A0,A1,...,Ap to have norm(Ai) roughly equal to 1 might increase the accuracy of polyeig)
Is there any function in Matlab to do this scaling?
Thanks in advance;
댓글 수: 0
답변 (1개)
Rushil
2025년 1월 24일
Hi Mohamed
One of the possible ways to accomplish this is by dividing each matrix by its norm. You may try to use different variants of the norm, such as the “frobenius” norm or the usual norm (also called "2-norm"), which is based on the largest singular value of the matrix. These should help making “norm(A(i))” have values closer to 1.
You may do this for all your input matrices (as suggested by the “polyeig” documentation) as follows:
A0 = A0 / norm(A0) % 2-norm
% or
A0 = A0 / norm(A0,'fro') % frobenius norm
As the documentation for “polyeig” states, improved accuracy may not be achievable in the general case. So, you may try different choices for the norm function and choose the one which suits you best. You can read more about different norm functions here:
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!