DECLARE SUB pager () REM GE Copeland REM Dept of Physics REM Old Dominion University REM Norfolk VA 23529 REM - Corrin Wilson 3/16/2001 REM 20 REM ................HARMONIC OSCILLATOR 30 REM .................QUANTUM MECHANICAL 40 DIM H(32) 42 PRINT CHR$(12); 50 PRINT " Q U A N T U M M E C H A N I C A L" 60 PRINT " HARMONIC OSCILLATOR" 70 PRINT 80 PRINT 90 PRINT "THIS PROGRAM DOES CALCULATIONS FOR THE QUANTUM MECHANICAL" 100 PRINT "ONE-DIMENSIONAL HARMONIC OSCILLATOR" 110 PRINT 120 PRINT "IT CALCULATES :" 130 PRINT , "1. THE ENERGY LEVELS" 140 PRINT , "2. THE WAVE FUNCTIONS" 150 PRINT , "3. THE PROBABILITY DISTRIBUTION" 160 PRINT 170 PRINT "FOR THE QUANTUM NUMBER WHICH MAY RANGE FROM 0 TO 24." 180 CALL pager 200 PRINT 210 PRINT "AS YOU WILL RECALL :" 220 PRINT , "1. ENERGIES ARE A FUNCTION OF (N+1/2)." 230 PRINT , "2. THE WAVE FUNCTIONS ARE NORMALIZED TO ONE AND ARE GIVEN" 240 PRINT , " BY:" 250 PRINT , " =N(N)*EXP(-X^2/2)*H(N,X)" 260 PRINT 270 PRINT , "WHERE X=DISTANCE FROM POTENTIAL ENERGY MINIMUM" 280 PRINT , " N(N) = THE NORMALIZING FACTORS" 290 PRINT , " H(N,X)= ARE THE HERMITE POLYNOMINALS." 300 PRINT 310 PRINT "Output of this program is a file plot.plt which can be" 320 PRINT "used as input for the graphics program WPlot to plot " 330 PRINT "either WAVE FUNCTIONS or PROBABILITY DISTRIBUTION" 340 PRINT "FUNCTIONS." 360 CALL pager 380 PRINT "PLEASE SELECT THE QUANTUM NUMBER FOR VIBRATION "; 390 INPUT N 395 IF N > 24 THEN GOTO 170 396 IF N < 0 THEN 170 397 IF N <> INT(N) THEN 170 400 PRINT 410 PRINT "Do you wish to graph :1.WAVE FUNCTIONS OR 2.DISTRIBUTIONS" 420 PRINT "INPUT 1 OR 2"; 430 INPUT A1 432 IF A1 > 2 THEN 420 434 IF A1 < 1 THEN 420 436 IF A1 <> INT(A1) THEN 420 438 GOTO 1000 450 REM 460 REM 480 REM GE COPELAND............HERMITE POLYNOMINALS 500 DEF FNH (N, X) 510 H(0) = 1 520 H(1) = 2 * X 530 IF N = 0 THEN 580 540 IF N = 1 THEN 580 550 FOR K = 2 TO N 560 H(K) = 2 * X * H(K - 1) - 2 * (K - 1) * H(K - 2) 570 NEXT K 580 FNH = H(N) 590 END DEF 700 DEF FNA (N) 710 IF N <= 45 THEN 740 720 PRINT "N TOO LARGE IN FACTORIAL!!!!" 730 GOTO 790 740 A = 1 750 FOR I = N TO 1 STEP -1 760 A = A * I 770 NEXT I 780 FNA = A 790 END DEF 1000 PRINT "ENERGIES ARE RELATIVE" 1010 PRINT "NUMBER N", "ENERGY" 1020 FOR I = 0 TO N 1030 PRINT I, (I + 1 / 2) 1040 NEXT I 1050 PRINT 1060 PRINT "NOTE THE ZERO POINT ENERGY....IT IS REQUIRED BY" 1070 PRINT , , "THE UNCERTAINITY PRINCIPLE!" 1080 PRINT "....AND THE ENERGIES ARE EQUALY SPACED." 1100 OPEN "plttek.dat" FOR OUTPUT AS #2 1115 PRINT #2, 1 1116 PRINT #2, 1 1120 PRINT #2, 200 1130 IF A1 = 2 THEN 1200 1140 PRINT #2, " WAVE FUNCTION" 1150 PRINT #2, " DISTANCE FROM EQUILIBRIUM" 1160 PRINT #2, "HARM. OSCILLATOR WAVEFUNCTION N="; N; "VS. AMPLITUDE" 1161 PRINT #2, "WAVEFUNCTIONS" 1170 GOTO 1300 1200 PRINT #2, " PROBABILITY FUNCTION" 1210 PRINT #2, " DISTANCE FROM EQUILIBRIUM" 1220 PRINT #2, "PROB VS. AMPLITUDE N="; N; "HARMONIC OSCILLATOR" 1221 PRINT #2, "PROBABILITY FUNCTION" 1300 REM DO CALCULATIONS HERE.................................. 1302 P2 = SQR(1! / 3.14159) 1310 FOR X = -5 TO 5 STEP .05 1320 M = (2 ^ N * FNA(N)) 1330 M1 = SQR(P2 / M) 1340 Y = M1 * EXP(-X * X / 2!) * FNH(N, X) 1350 IF A1 = 2 THEN 1400 1360 PRINT #2, X, Y 1370 GOTO 1500 1400 PRINT #2, X, Y * Y 1500 NEXT X 1600 PRINT "To view graph, open "; plot.plt; " WPlot." 1650 CLOSE #2 1700 CHAIN "tek2wplt.exe" 10000 END SUB pager PRINT , "Push RETURN to continue." INPUT t$ PRINT CHR$(12); END SUB