250 "C" CLEAR : CLS : INPUT "n=";N1: CLS :N=N1-1: DIM A(N,N),R(N),I(N): WAIT 0 251 FOR I=0 TO N: FOR J=0 TO N: PRINT "A("+ STR$ (I+1)+","+ STR$ (J+1)+")=";: INPUT A(I,J): CLS 252 NEXT J: NEXT I: GOSUB 289: WAIT : IF N=1 THEN 257 253 FOR Q=1 TO N-1: FOR P=Q+1 TO N:V=P:K=Q:S=A(P,Q-1): IF S=0 THEN 256 254 Y= POL (A(Q,Q-1),S):C= COS Z:S= SIN Z: FOR J=0 TO N:U=J: GOSUB 259: NEXT J 255 U=P:J=Q: FOR K=0 TO N:V=K: GOSUB 259: NEXT K 256 NEXT P: NEXT Q 257 CLS : INPUT "Hessenberg?";X$: IF ASC X$<>74 THEN 260 258 CLS : FOR I=0 TO N: FOR J=0 TO N: PRINT "A("+ STR$ (I+1)+"/"+ STR$ (J+1)+")=";A(I,J): NEXT J: NEXT I: GOTO 260 259 A=A(U,V):B=A(J,K):A(U,V)=C*A-S*B:A(J,K)=C*B+S*A: RETURN 260 GOSUB 289:A=N-1: FOR C=1 TO 30:L=N 261 IF L=0 THEN 264 262 M=L-1: IF ABS A(L,M)*1E9<= ABS A(M,M)+ ABS A(L,L) THEN 264 263 L=M: GOTO 261 264 X=A(N,N):R=0: IF L=N THEN 287 265 Y=A(A,A):W=A(N,A)*A(A,N): IF L=A THEN 282 266 IF C/10- INT (C/10)>0 THEN 268 267 T=T+X: FOR I=0 TO N:A(I,I)=A(I,I)-X: NEXT I:X=( ABS A(N,A)+ ABS A(A,N-2))/ û 2:Y=X:W=-X*X 268 Z=A(L,L):R=X-Z:S=Y-Z:P=(R*S-W)/A(L+1,L)+A(L,L+1):Q=A(L+1,L+1)-Z-R-S 269 R=A(L+2,L+1): FOR I=L+2 TO N:A(I,I-2)=0: IF I>=3 LET A(I,I-3)=0 270 NEXT I: FOR K=L TO A: IF K=L THEN 272 271 P=A(K,K-1):Q=A(K+1,K-1):R=0: IF KL LET A(K,K-1)=-S*X 275 P=P+S:X=P/S:Y=Q/S:Z=R/S:Q=Q/P:R=R/P: FOR J=K TO N:P=A(K,J)+Q*A(K+1,J): IF K=A THEN 277 276 P=P+R*A(K+2,J):A(K+2,J)=A(K+2,J)-P*Z 277 A(K+1,J)=A(K+1,J)-P*Y:A(K,J)=A(K,J)-P*X: NEXT J:J=N: IF K+3=0 THEN 260 288 CLS : FOR I=0 TO N1-1: PAUSE I+1;"Eigenwert:": PRINT R(I): PRINT "+/-j*";I(I): NEXT I: END 289 CLS : WAIT 0: PRINT "busy";: WAIT : RETURN