c11-1 (779549), страница 3
Текст из файла (страница 3)
For symmetric matrices, the preferred simple form is tridiagonal.The Givens reduction is a modification of the Jacobi method. Instead of trying toreduce the matrix all the way to diagonal form, we are content to stop when thematrix is tridiagonal. This allows the procedure to be carried out in a finite numberof steps, unlike the Jacobi method, which requires iteration to convergence.Givens MethodFor the Givens method, we choose the rotation angle in equation (11.1.1) soas to zero an element that is not at one of the four “corners,” i.e., not app , apq ,or aqq in equation (11.1.3).
Specifically, we first choose P23 to annihilate a31(and, by symmetry, a13 ). Then we choose P24 to annihilate a41 . In general, wechoose the sequenceP23 , P24 , . . . , P2n ; P34 , . . . , P3n ; . . . ; Pn−1,nwhere Pjk annihilates ak,j−1. The method works because elements such as a0rp anda0rq , with r 6= p r 6= q, are linear combinations of the old quantities arp and arq , bySample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5)Copyright (C) 1988-1992 by Cambridge University Press.Programs Copyright (C) 1988-1992 by Numerical Recipes Software.Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copying of machinereadable files (including this one) to any servercomputer, is strictly prohibited.
To order Numerical Recipes books,diskettes, or CDROMsvisit website http://www.nr.com or call 1-800-872-7423 (North America only),or send email to trade@cup.cam.ac.uk (outside North America).for (j=i+1;j<=n;j++)if (d[j] >= p) p=d[k=j];if (k != i) {d[k]=d[i];d[i]=p;for (j=1;j<=n;j++) {p=v[j][i];v[j][i]=v[j][k];v[j][k]=p;}}.