Open in the MATLAB editor: f08ww_example
function f08ww_example fprintf('f08ww example results\n\n'); % Generalized eigenvalues of matrix pair (A,B) , where a = [ 1.0+3.0i 1.0+4.0i 1.0+5.0i 1.0+6.0i; 2.0+2.0i 4.0+3.0i 8.0+4.0i 16.0+5.0i; 3.0+1.0i 9.0+2.0i 27.0+3.0i 81.0+4.0i; 4.0+0.0i 16.0+1.0i 64.0+2.0i 256.0+3.0i]; b = [ 1.0+0.0i 2.0+1.0i 3.0+2.0i 4.0+3.0i; 1.0+1.0i 4.0+2.0i 9.0+3.0i 16.0+4.0i; 1.0+2.0i 8.0+3.0i 27.0+4.0i 64.0+5.0i; 1.0+3.0i 16.0+4.0i 81.0+5.0i 256.0+6.0i]; % Balance matrix pair job = 'B'; [a, b, ilo, ihi, lscale, rscale, info] = ... f08wv(job, a, b); bbal = b(ilo:ihi,ilo:ihi); abal = a(ilo:ihi,ilo:ihi); % QR factorize balanced B [QR, tau, info] = f08as(bbal); % Perform C = Q^H*A side = 'Left'; trans = 'Conjugate transpose'; [c, info] = f08au( ... side, trans, QR, tau, abal); % Generalized Hessenberg form (C,R) -> (H,T) compq = 'Vectors Q'; compz = 'Vectors Z'; % Form Q explicitly and let Z = I. [q, info] = f08at(QR, tau); z = complex(eye(4)); jlo = int64(1); jhi = int64(ihi-ilo+1); [H, T, q, z, info] = ... f08ws( ... compq, compz, jlo, jhi, c, QR, q, z); % Find eigenvalues of generalized Hessenberg form % = eigenvalues of (A,B). % and return Schur form for computing eigenvectors job = 'Schur form'; ilo = int64(1); ihi = int64(4); [HS, TS, alpha, beta, q, z, info] = ... f08xs( ... job, compq, compz, jlo, jhi, H, T, q, z); disp('Generalized eigenvalues of (A,B):'); disp(alpha./beta); % Obtain scaled eigenvectors from Schur form side = 'Both sides'; howmny = 'Backtransformed using Q and Z'; select = [false]; [q, z, m, info] = f08yx( ... side, howmny, select, HS, TS, q, z, jhi); % rescale to obtain left and right eigenvectors of (A,B) job = 'Back scale'; side = 'Left'; [VL, info] = f08ww( ... job, side, jlo, jhi, lscale, rscale, q); side = 'Right'; [VR, info] = f08ww( ... job, side, jlo, jhi, lscale, rscale, z); disp('Left Eigenvectors'); disp(VL); disp('Right Eigenvectors'); disp(VR);
f08ww example results Generalized eigenvalues of (A,B): -0.6354 + 1.6529i 0.4580 - 0.8426i 0.4934 + 0.9102i 0.6744 - 0.0499i Left Eigenvectors -0.1725 - 0.2037i -0.0406 - 0.0402i 0.0560 + 0.0022i 0.2371 + 0.1695i 0.2068 + 0.0997i 0.0877 + 0.0860i -0.1153 + 0.0499i -0.5341 - 0.0621i -0.0739 - 0.0261i -0.0475 - 0.0525i 0.0591 - 0.0409i 0.0972 + 0.0028i 0.0105 + 0.0015i 0.0058 + 0.0124i -0.0080 + 0.0112i -0.0129 + 0.0009i Right Eigenvectors 0.1437 - 0.1675i -0.0889 + 0.0018i 0.0693 - 0.0167i 0.7361 + 0.0355i -0.1710 + 0.1045i 0.1462 + 0.0020i -0.1406 + 0.0248i -0.7608 + 0.1006i 0.0628 - 0.0372i -0.0815 - 0.0185i 0.0798 - 0.0202i 0.0947 - 0.0053i -0.0095 + 0.0069i 0.0134 + 0.0086i -0.0136 + 0.0083i 0.0050 - 0.0014i