8990 REM *** HP TIME-SHARED BASIC PROGRAM LIBRARY ********************* 8991 REM 8992 REM JACOBI: EIGENVALUES AND EIGENVECTORS OF A REAL 8993 REM SYMMETRIC MATRIX 8994 REM 36167 (A820) REV A -- 7/71 8995 REM 8996 REM *** CONTRIBUTED PROGRAM *************************************** 8997 REM 9000 REM **** JACOBI **** QUANTUM MECHANICS 9001 REM **** WRITTEN BY A. CATLIN **** JULY 1969 9002 REM EIGENVALUES AND EIGENVECTORS OF A REAL SYMMETRIC MATRIX 9003 REM ARE CALCULATED BY THE JACOBI ROTATION METHOD. 9004 REM SEE BURROUGHS PUBLICATION MRS-087/R 9005 PRINT "TYPE 1 IF YOU WANT INSTRUCTIONS, OTHERWISE 0"; 9006 INPUT P 9007 IF P>0 THEN 9120 9008 PRINT 9009 PRINT "WHAT IS REQUIRED RELATIVE ACCURACY OF EIGENVALUES"; 9010 INPUT D5 9011 PRINT 9012 REM INUT ORDER AND ELEMENTS OF SYMMETRIC MATRIX A 9013 PRINT "WHAT IS ORDER OF MATRIX"; 9014 INPUT N 9015 PRINT 9016 PRINT "WHAT ARE THE MATRIX ELEMENTS"; 9017 MAT INPUT A[N,N] 9018 PRINT 9019 PRINT 9020 REM SET MATRIX U EQUAL TO THE IDENTITY MATRIX 9021 MAT U=IDN[N,N] 9022 REM CALCULATE THE OFF-DIAGONAL NORM N5 OF MATRIX A 9023 LET N5=0 9024 FOR I=2 TO N 9025 FOR J=1 TO N-1 9026 LET N5=N5+2*(A[I,J]^2) 9027 LET N5=SQR(N5) 9028 NEXT J 9029 NEXT I 9030 REM CALCULATE THE FINAL THRESHOLD V5 9031 LET A5=(N^2)-N 9032 LET V5=D5/SQR(A5) 9033 LET V=N5 9034 REM G5 IS USED AS A CONTROL NUMBER 9035 LET G5=0 9036 LET V=V/N 9037 REM CONSIDER ONLY LOWER TRIANGULAR ELEMENTS AND EXAMINE THE 9038 REM OFF-DIAGONAL ELEMENTS BY ROWS IN SYSTEMATIC ORDER. 9039 REM ROTATE IF MAGNITUDE IS GREATER THAN CURRENT THRESHOLD V 9040 FOR I0=2 TO N 9041 FOR J0=1 TO I0-1 9042 IF ABS(A[I0,J0]) <= V THEN 9089 9043 LET G5=1 9044 IF A[J0,J0]=A[I0,I0] THEN 9055 9045 IF A[J0,J0]>A[I0,I0] THEN 9047 9046 IF A[J0,J0]= V5 THEN 9036 9098 FOR I=2 TO N 9099 FOR J=1 TO I-1 9100 LET A[J,I]=A[I,J] 9101 NEXT J 9102 NEXT I 9103 PRINT "FINAL THRESHOLD V5="V5 9104 PRINT 9105 PRINT "EIGENVALUES" 9106 PRINT 9107 FOR I=1 TO N 9108 PRINT A[I,I] 9109 NEXT I 9110 PRINT 9111 PRINT "EIGENVECTORS" 9112 PRINT 9113 FOR J=1 TO N 9114 FOR I=1 TO N 9115 PRINT U[I,J] 9116 NEXT I 9117 PRINT 9118 NEXT J 9119 STOP 9120 PRINT "THIS PROGRAM USES THE JACOBI ATION METHOD TO CALCULATE" 9121 PRINT "THE EIGENVALUES AND EIGENVECTORS OF A REAL SYMMETRIC" 9122 PRINT "MATRIX. TYPE RUN AND WHEN ASKED, SUPPLY THE FOLLOWING" 9123 PRINT "INFORMATION:" 9124 PRINT 9125 PRINT " 1. REQUIRED ACCURACY OF THE EIGENVALUES." 9126 PRINT " (NORMALLY 1E-6 FOR THE H-P COMPUTER)" 9127 PRINT 9128 PRINT " 2. THE ORDER OF THE MATRIX." 9129 PRINT " (A SINGLE NUMBER SINCE THE MATRIX MUST BE SQUARE)" 9130 PRINT 9131 PRINT " 3. THE MATRIX ELEMENTS BY ROW." 9132 PRINT " (START AT ROW 1, COLUMN 1 AND SEPARATE THE ELEMENTS" 9133 PRINT " BY COMMAS. WHEN YOU REACH THE END OF A TYPED LINE," 9134 PRINT " PUSH THE RETURN KEY. THE COMPUTER WILL ADVANCE THE" 9135 PRINT " PAPER AND PRINT ?? IF MORE DATA IS NEEDED.)" 9136 PRINT 9137 PRINT 9138 PRINT "NOW TYPE RUN AGAIN." 9999 END