@^b2R||||@~~~ B"Dl 1 ! PROGRAM BY JEFF DALTON, CLASS OF '74, NORTHFIELD MT. HERMON SCH. 2 ! THIS PROGRAM ELIMINATES THE 'XY' TERM FROM THE GENERAL QUADRATIC EQUATION AX^2+BXY+CY^2+DX+EY+F=0 BY ROTATION OF THE COORDINATE AXIES BY ANGLE THETA. 10 INPUT "A,B,C,D,E,F"; A,B,C,D,E,F 20 IF B=0 THEN PRINT "WHY ROTATE? THERE'S NO 'XY' TERM." 30 IF A=C THEN T=PI/4 ELSE T=(ATN(B/(A-C)))/2 ! THETA 35 IF T<0 THEN T=(PI/2)+T ! THETA SHOULD BE FOR COUNTER-CLOCKWISE ROTATION. 40 S3=SIN(T): C3=COS(T) 50 ! CALCULATE C0-EFF'S OF ROTATED EQUATION 60 A2=A*C3*C3+B*S3*C3+C*S3*S3: B2=B*COS(2*T)-(A-C)*SIN(2*T): C2=A*S3*S3-B*S3*C3+C*C3*C3: D2=D*C3+E*S3: E2=E*C3-D*S3 70 IF NOT (B2==0) THEN PRINT "VALUES NOT EXACT" 80 ! PRINT EQUATIONS 90 PRINT "ORIGIONAL EQUATION:": PRINT "0 ="; FNP$(A,"X^2");FNP$(B,"XY");FNP$(C,"Y^2"); FNP$(D,"X");FNP$(E,"Y");FNP$(F,"") 100 PRINT: PRINT "ROTATED EQUATION:": PRINT "0 ="; FNP$(A2,"X^2");FNP$(B2,"XY");FNP$(C2,"Y^2"); FNP$(D2,"X");FNP$(E2,"Y");FNP$(F,"") 110 PRINT: PRINT "THETA ="T: PRINT: PRINT: PRINT: GOTO 10 200 DEF FNN$(X): X$=NUM$(X): X$=MID(X$,2%,LEN(X$)-2%): IF X>0 THEN FNN$=" + "+X$ ELSE FNN$=" - "+X$ 210 FNEND 220 DEF FNP$(X,Y$): IF X=0 THEN FNP$="" ELSE FNP$=FNN$(X)+" "+Y$ 230 FNEND 999 END KE