PRINT PRINT "< 固有値 と 固有ベクトル(2次元)>" PRINT PRINT "MAT INPUT の方法" PRINT " 1 2" PRINT " 3 4" PRINT "上記の行列の入力方法は、1,2,3,4 です。" PRINT DIM X(2,2),Z1(2,2),Z2(2,2),S1(2),S2(2),T1(2),T2(2) MAT INPUT PROMPT "テンソルを入力してください。 ":X PRINT PRINT "テンソル:" FOR i=1 TO 2 FOR j=1 TO 2 PRINT USING "####":X(i,j); NEXT j PRINT NEXT i PRINT PRINT "( X(1,1) - Y ) * ( X(2,2) - Y ) - X(1,2) * X(2,1) = 0" PRINT "つまり、 Y^2 - ( X(1,1) + X(2,2)) * Y + ( X(1,1) * X(2,2) - X(1,2) * X(2,1) ) = 0" PRINT PRINT "(";X(1,1);"- Y ) * (";X(2,2);"- Y ) - ";X(1,2);"*";X(2,1);" = 0" PRINT "つまり、 Y^2 - (";X(1,1);"+";X(2,2);") * Y + (";X(1,1);"*";X(2,2);"-";X(1,2);"*";X(2,1);") = 0" PRINT LET A=(X(1,1)+X(2,2))^2-4*(X(1,1)*X(2,2)-X(1,2)*X(2,1)) IF A<0 THEN GOTO 20 LET Y1=(X(1,1)+X(2,2)+SQR(A))/2 ! 2次方程式の解の公式その1 IF Y1=0 THEN GOTO 10 LET Z1(1,1)=X(1,1)-Y1 LET Z1(1,2)=X(1,2) LET Z1(2,1)=X(2,1) LET Z1(2,2)=X(2,2)-Y1 PRINT ! Z1(1,1) * K1 + Z1(1,2) * ( -1 * K1 * Z1(1,1) / Z1(1,2) ) = 0 LET K1=Z1(1,2)/SQR(Z1(1,1)^2+Z1(1,2)^2) ! 1 = K1^2 + ( -1*K1*Z1(1,1)/Z1(1,2) )^2 LET S1(1)=K1 LET S1(2)=-1*K1*Z1(1,1)/Z1(1,2) PRINT "大きさ1の固有ベクトル: ( ";S1(1);", ";S1(2);" ) 固有値:";Y1 PRINT PRINT " 確かめ" PRINT " (";S1(1);") ^ 2 + (";S1(2);") ^ 2 = "; S1(1)^2+S1(2)^2 MAT T1=X*S1 PRINT " ";T1(1);"=";Y1*S1(1) PRINT " ";T1(2);"=";Y1*S1(2) 10 PRINT LET Y2=(X(1,1)+X(2,2)-SQR(A))/2 ! 2次方程式の解の公式その2 IF Y2=0 OR Y2=Y1 THEN GOTO 30 LET Z2(1,1)=X(1,1)-Y2 LET Z2(1,2)=X(1,2) LET Z2(2,1)=X(2,1) LET Z2(2,2)=X(2,2)-Y2 PRINT LET K2=Z2(1,2)/SQR(Z2(1,1)^2+Z2(1,2)^2) LET S2(1)=K2 LET S2(2)=-1*K2*Z2(1,1)/Z2(1,2) PRINT "大きさ1の固有ベクトル: ( ";S2(1);", ";S2(2);" ) 固有値:";Y2 PRINT PRINT " 確かめ" PRINT " (";S2(1);") ^ 2 + (";S2(2);") ^ 2 = "; S2(1)^2+S2(2)^2 MAT T2=X*S2 PRINT " ";T2(1);"=";Y2*S2(1) PRINT " ";T2(2);"=";Y2*S2(2) GOTO 30 20 PRINT "固有ベクトルはありません。" 30 PRINT END ################################################################################ PRINT PRINT "< 固有値 と 固有ベクトル(2次元)>" PRINT PRINT "MAT INPUT の方法" PRINT " 0 -1" PRINT " 2 3" PRINT "上記の行列の入力方法は、0,-1,2,3 です。" PRINT DIM X(2,2),Z1(2,2),Z2(2,2),S1(2),S2(2) MAT INPUT PROMPT "行列を入力してください。 ":X PRINT PRINT "行列:" FOR i=1 TO 2 FOR j=1 TO 2 PRINT " ";X(i,j); NEXT j PRINT NEXT i PRINT LET A=(X(1,1)+X(2,2))^2-4*(X(1,1)*X(2,2)-X(1,2)*X(2,1)) IF A<0 THEN GOTO 20 LET Y1=(X(1,1)+X(2,2)+SQR(A))/2 ! 2次方程式の解の公式その1 IF Y1=0 THEN GOTO 10 LET Z1(1,1)=X(1,1)-Y1 LET Z1(1,2)=X(1,2) LET Z1(2,1)=X(2,1) LET Z1(2,2)=X(2,2)-Y1 LET S1(1)=-1*Z1(1,2) LET S1(2)=Z1(1,1) PRINT "固有ベクトル: ( ";S1(1);", ";S1(2);" ) 固有値:";Y1 10 PRINT LET Y2=(X(1,1)+X(2,2)-SQR(A))/2 ! 2次方程式の解の公式その2 IF Y2=0 OR Y2=Y1 THEN GOTO 30 LET Z2(1,1)=X(1,1)-Y2 LET Z2(1,2)=X(1,2) LET Z2(2,1)=X(2,1) LET Z2(2,2)=X(2,2)-Y2 LET S2(1)=-1*Z2(1,2) LET S2(2)=Z2(1,1) PRINT "固有ベクトル: ( ";S2(1);", ";S2(2);" ) 固有値:";Y2 GOTO 30 20 PRINT "固有ベクトルはありません。" 30 PRINT END