www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/GeneralizedEigenvaluesUsingQZAlgorithmforBadlyConditioneExample.m
%% Generalized Eigenvalues Using QZ Algorithm for Badly Conditioned Matrices %% % Create a badly conditioned symmetric matrix containing values close to % machine precision. format long e A = diag([10^-16, 10^-15]) %% % Calculate the generalized eigenvalues and a set of right eigenvectors % using the default algorithm. In this case, the default algorithm is % |'chol'|. [V1,D1] = eig(A,A) %% % Now, calculate the generalized eigenvalues and a set of right % eigenvectors using the |'qz'| algorithm. [V2,D2] = eig(A,A,'qz') %% % Check how well the |'chol'| result satisfies |A*V1 = A*V1*D1|. format short A*V1 - A*V1*D1 %% % Now, check how well the |'qz'| result satisfies |A*V2 = A*V2*D2|. A*V2 - A*V2*D2 %% % When both matrices are symmetric, |eig| uses the |'chol'| algorithm by % default. In this case, the QZ algorithm returns more accurate results.