5 DATA "A",20,10,3,1,4,10,"LOG",1000,1.01E+07,2 40 DATA "I",1,0,1,0 50 DATA "R",1,0,1,"R1",1,2,100 70 DATA "REB",2,3,375,"RPI",3,5,1625 90 DATA "CPI",3,5,8.3E-11,"RMU",3,4,1.4E+07 110 DATA "CMU",3,4,1.5E-12,"IVQ1",5,4,3,5,.08 130 DATA "RO",4,5,71000. 140 DATA "R2",5,6,50 150 DATA "R3",6,0,2000 160 DATA "C1",0,6,4.7E-07,"TRF1",4,0,7,0,.1,.2,.9999 180 DATA "C2",7,8,.000001,"R4",8,0,1000,"R5",8,9,1500 210 DATA "C3",9,0,1.E-09 220 DATA "R6",9,10,5000 230 DATA "C4",10,0,3.E-10 1000 DIM B[20],D[20,20] 1010 DIM L$[3],Q$[6],A$[7] 1020 READ R$ 1030 PRINT "GRAPHICAL OUTPUT (HP 7200A PLOTTER): (Y OR N)"; 1040 INPUT G$ 1050 PRINT 1060 P=3.14159 1070 READ M,N,J5 1080 MAT A=ZER[N,N] 1090 MAT C=ZER[N,N] 1100 MAT F=ZER[N,N] 1110 MAT D=ZER[2*N,2*N] 1120 MAT B=ZER[2*N] 1130 MAT G=ZER[N] 1140 MAT X=ZER[N] 1150 MAT Y=ZER[N] 1160 IF J5>0 THEN 1190 1170 IF J5=0 THEN 1230 1180 GOTO 1450 1190 J6=J5 1200 FOR I=1 TO J6 1210 READ G[I] 1220 NEXT I 1230 IF R$="A" THEN 1260 1240 READ L5,F1,F2,S 1250 GOTO 1270 1260 READ L$,F1,F2,S 1270 F9=F1 1280 FOR L=1 TO M 1290 IF R$="A" THEN 1380 1300 READ I5 1310 IF I5=2 THEN 1470 1320 IF I5=3 THEN 1560 1330 IF I5=4 THEN 1650 1340 IF I5=5 THEN 1770 1350 IF I5=1 THEN 1860 1360 IF I5=7 THEN 1950 1370 GOTO 1450 1380 READ Q$ 1390 IF Q$[1,1]="C" THEN 1470 1400 IF Q$[1,1]="L" THEN 1770 1410 IF Q$[1,1]="R" THEN 1860 1420 IF Q$[1,3]="TRF" THEN 1950 1430 IF Q$[1,2]="IV" THEN 1650 1440 IF Q$[1,1]="I" THEN 1560 1450 PRINT "DATA ERR" 1460 STOP 1470 READ J,K,G 1480 IF K=0 THEN 1510 1490 C[K,K]=C[K,K]+G 1500 IF J=0 THEN 2280 1510 C[J,J]=C[J,J]+G 1520 IF K=0 THEN 2280 1530 C[J,K]=C[J,K]-G 1540 C[K,J]=C[K,J]-G 1550 GOTO 2280 1560 READ J,K,I1,I2 1570 IF K=0 THEN 1590 1580 IF J=0 THEN 1620 1590 B[J]=B[J]+I1 1600 B[J+N]=B[J+N]+I2 1610 IF K=0 THEN 2280 1620 B[K]=B[K]-I1 1630 B[K+N]=B[K+N]-I2 1640 GOTO 2280 1650 READ N1,N2,N3,N4,M1 1660 IF N1=0 THEN 1710 1670 IF N3=0 THEN 1690 1680 A[N1,N3]=A[N1,N3]-M1 1690 IF (N4)=0 THEN 1710 1700 A[N1,N4]=A[N1,N4]+M1 1710 IF N2=0 THEN 2280 1720 IF N3=0 THEN 1740 1730 A[N2,N3]=A[N2,N3]+M1 1740 IF N4=0 THEN 2280 1750 A[N2,N4]=A[N2,N4]-M1 1760 GOTO 2280 1770 READ J,K,G 1780 IF K=0 THEN 1810 1790 F[K,K]=F[K,K]+1/G 1800 IF J=0 THEN 2280 1810 F[J,J]=F[J,J]+1/G 1820 IF K=0 THEN 2280 1830 F[J,K]=F[J,K]-1/G 1840 F[K,J]=F[K,J]-1/G 1850 GOTO 2280 1860 READ J,K,G 1870 IF K=0 THEN 1900 1880 A[K,K]=A[K,K]+1/G 1890 IF J=0 THEN 2280 1900 A[J,J]=A[J,J]+1/G 1910 IF K=0 THEN 2280 1920 A[K,J]=A[K,J]-1/G 1930 A[J,K]=A[J,K]-1/G 1940 GOTO 2280 1950 READ N1,N2,N3,N4,L1,L2,K1 1960 M1=SQR(K1*K1*L1*L2) 1970 R=1/(1-K1*K1) 1980 R1=R*M1/(L1*L2) 1990 R2=-R/L2 2000 R3=-R/L1 2010 IF N1=0 THEN 2120 2020 F[N1,N1]=F[N1,N1]-R3 2030 IF N2=0 THEN 2060 2040 F[N1,N2]=F[N1,N2]+R3 2050 F[N2,N1]=F[N2,N1]+R3 2060 IF N3=0 THEN 2090 2070 F[N1,N3]=F[N1,N3]-R1 2080 F[N3,N1]=F[N3,N1]-R1 2090 IF N4=0 THEN 2120 2100 F[N1,N4]=F[N1,N4]+R1 2110 F[N4,N1]=F[N4,N1]+R1 2120 IF N2=0 THEN 2200 2130 F[N2,N2]=F[N2,N2]-R3 2140 IF N3=0 THEN 2160 2150 F[N2,N3]=F[N2,N3]+R1 2160 F[N3,N2]=F[N3,N2]+R1 2170 IF N4=0 THEN 2200 2180 F[N2,N4]=F[N2,N4]-R1 2190 F[N4,N2]=F[N4,N2]-R1 2200 IF N3=0 THEN 2250 2210 F[N3,N3]=F[N3,N3]-R2 2220 IF N4=0 THEN 2250 2230 F[N3,N4]=F[N3,N4]+R2 2240 F[N4,N3]=F[N4,N3]+R2 2250 IF N4=0 THEN 2280 2260 F[N4,N4]=F[N4,N4]-R2 2270 GOTO 2280 2280 NEXT L 2290 IF G$="N" THEN 2370 2300 PRINT "ORDINATE: (VOLTAGE, DB, OR PHASE)"; 2310 INPUT A$ 2320 PRINT 2330 PRINT "EXTREMES OF ORDINATE: MAX, MIN"; 2340 INPUT Y9,Y8 2350 PRINT "PLTL" 2360 GOTO 2380 2370 PRINT "NODE FREQUENCY VOLTAGE DB PHASE" 2380 PRINT 2390 F0=F1 2400 W1=2*P*F0 2410 FOR I6=1 TO N 2420 FOR I7=1 TO N 2430 D[I6,I7]=A[I6,I7] 2440 D[I6+N,I7+N]=A[I6,I7] 2450 D[I6+N,I7]=C[I6,I7]*W1-F[I6,I7]/W1 2460 D[I6,I7+N]=-D[I6+N,I7] 2470 NEXT I7 2480 NEXT I6 2490 MAT D=INV(D) 2500 REM END OF MAT SOLN 2510 IF J5=0 THEN 2540 2520 I0=J6 2530 GOTO 2550 2540 I0=N 2550 FOR I9=1 TO I0 2560 IF J5>0 THEN 2590 2570 N1=I9 2580 GOTO 2600 2590 N1=G[I9] 2600 MAT X=ZER[N] 2610 MAT Y=ZER[N] 2620 FOR J8=1 TO 2*N 2630 X[N1]=X[N1]+D[N1,J8]*B[J8] 2640 Y[N1]=Y[N1]+D[N1+N,J8]*B[J8] 2650 NEXT J8 2660 X1=SQR(X[N1]^2+Y[N1]^2) 2670 IF X[N1] <> 0 THEN 2740 2680 IF Y[N1]=0 THEN 2760 2690 IF Y[N1]>0 THEN 2720 2700 Y1=-P/2 2710 GOTO 2770 2720 Y1=P/2 2730 GOTO 2770 2740 Y1=ATN(Y[N1]/X[N1]) 2750 GOTO 2770 2760 Y1=0 2770 Y1=180*Y1/P 2780 IF X[N1] >= 0 THEN 2830 2790 IF Y[N1]>0 THEN 2820 2800 Y1=Y1-180 2810 GOTO 2830 2820 Y1=Y1+180 2830 Y1=INT(Y1*100+.5)/100 2840 IF X1=0 THEN 2880 2850 X5=20*LOG(X1)/LOG(10) 2860 X5=INT(X5*1000+.5)/1000 2870 GOTO 2890 2880 X5=-9999 2890 IF G$="N" THEN 3150 2900 IF A$[1,1]="V" THEN 3000 2910 IF A$[1,1]="D" THEN 3020 2920 IF A$[1,1]="P" THEN 3040 2930 PRINT "INPUT ERROR--REENTER ORDINATE: (V, D, OR P)"; 2940 INPUT A$ 2950 PRINT "REENTER EXTREMES: MAX, MIN"; 2960 INPUT Y9,Y8 2970 PRINT "PLTL" 2980 PRINT 2990 GOTO 2900 3000 Y0=X1 3010 GOTO 3050 3020 Y0=X5 3030 GOTO 3050 3040 Y0=Y1 3050 Y0=9999*(Y0-Y8)/(Y9-Y8) 3060 IF R$="A" THEN 3090 3070 IF L5=1 THEN 3120 3080 GOTO 3100 3090 IF L$="LOG" THEN 3120 3100 X0=9999*(F0-F1)/(F2-F1) 3110 GOTO 3130 3120 X0=9999*(LOG(F0)-LOG(F1))/(LOG(F2)-LOG(F1)) 3130 PRINT INT(X0);INT(Y0) 3140 GOTO 3160 3150 PRINT N1;F0;TAB(21);X1;TAB(36);X5;TAB(51);Y1 3160 NEXT I9 3170 IF R$="A" THEN 3200 3180 IF L5=1 THEN 3230 3190 GOTO 3210 3200 IF L$="LOG" THEN 3230 3210 F0=F0+S 3220 GOTO 3240 3230 F0=F0*10^(1/S) 3240 IF J5=1 THEN 3270 3250 IF F9=F0 THEN 3270 3260 PRINT 3270 LET F9=F0 3280 IF F0 <= F2 THEN 2400 3290 IF G$="N" THEN 3310 3300 PRINT "PLTT" 3310 END