CLS DIM Q(10) DIM R(10) REM ==FOURIER SERIES ANALYSIS OF PERIODIC FUNCTIONS== REM ==INPUT DATA== GOSUB [THTHZE] REM ==INITIALIZE VARIABLES== GOSUB [ONZENIZE] REM ==COMPUTE L + 1 COEFFICIENTS== L1 = L + 1 FOR J = 1 TO L1 J1 = J -1 W = W0 * J1 G = F0 * J1 REM ==M IS NUMBER OF INTERVALS FOR NUMERICAL INTEGRATION== M = N8 * J M1 = M -1 H = (X1 -X0) / M H2 = 2 * H REM ==COSINE COEFFICIENT A== IF K8 = 2 THEN [ONNIZE] IF K9=1 THEN GOSUB [ONSESIZE] END IF IF K9=2 THEN GOSUB [ONTHSIZE] END IF A = U * S / T IF ABS(A) > 1/10^8 THEN [ONEIZE] A = 0 REM ==SINE COEFFICIENT B== [ONEIZE] IF K8 = 1 THEN [TWTHZE] [ONNIZE] IF K9=1 THEN GOSUB [ONNIFIZE] END IF IF K9=2 THEN GOSUB [ONFISIZE] END IF B = U * S / T IF ABS(B) > 1/10^8 THEN [TWTHZE] B = 0 REM ==PRINT RESULTS== [TWTHZE] PRINT PRINT "FOR N =";J1 PRINT "W = ";W PRINT "W/TWOPI = ";G PRINT "A = ";A PRINT "B = ";B PRINT NEXT J GOTO [TWONFOZE] REM ==INPUT ROUTINE== [THTHZE] PRINT PRINT "FOURIER SERIES ANALYSIS OF" PRINT PRINT "PERIODIC FUNCTIONS": PRINT:PRINT PRINT "DEFINITION OF FUNCTION F:" PRINT PRINT "TYPE 1 : DEFINED IN FUNCTION F(X)" PRINT PRINT "TYPE 2 : PIECEWISE LINEAR" PRINT INPUT "TYPE= ";K9 PRINT PRINT "INTERVAL OF EXPANSION" PRINT PRINT "X0 < X < X1" PRINT INPUT "X0 =";X0 PRINT INPUT "X1=";X1 PRINT PRINT PRINT "TYPE OF EXPANSION" PRINT PRINT "TYPE 0 : GENERAL" PRINT "TYPE 1 : COSINE ONLY" PRINT "TYPE 2 : SINE ONLY" INPUT "TYPE=";K8 PRINT PRINT "DESIRED NUMBER OF TERMS" PRINT INPUT "IN EXPANSION = ";L IF K9 = 1 THEN [ONZEEIZE] PRINT PRINT PRINT "F(X) DEFINED AS PIECEWISE LINEAR" PRINT INPUT "NUMBER OF SEGMENTS = ";N1 PRINT PRINT "ENTER END POINT COORDINATES X,Y" PRINT "(IN ORDER OF INCREASING X)" PRINT N2 = N1 + 1 FOR I = 1 TO N2 PRINT "POINT";I PRINT INPUT "X = ";QQ Q(I)=QQ INPUT "Y = ";RR R(I)=RR PRINT NEXT I [ONZEEIZE] RETURN REM ==INITIALIZATION== [ONZENIZE] P1 = 3.1415926538 P2 = 2 * P1 U = 2 T = X1-X0 A = 0 B = 0 N8 = 20 IF K8 = 0 THEN [ONTWZEZE] REM ==DOUBLE PERIOD FOR HALF EXPANSIONS== T = 2 * T U = 2 * U PRINT [ONTWZEZE] PRINT PRINT "PERIOD = ";T PRINT PRINT PRINT "FOURIER COEFFICIENTS" PRINT "********************" PRINT PRINT FO = 1 / T W0 = P2 * F0 IF K9 = 1 THEN [ONTHTHZE] GOTO [ONTHFIZE] [ONTHTHZE] Y0 = F(X0) Y1 = F(X1) [ONTHFIZE] RETURN REM ==COSINE COEF. FOR F(X) PIECEWISE LINEAR== [ONTHSIZE] A1 = 0 J3 = 0 [ONTHEIZE] J3 = J3 + 1 IF J3>N1 THEN [ONFIFOZE] J4 = J3 + 1 X0 = Q(J3) X1 = Q(J4) E = X1 -X0 IF E = 0 THEN [ONTHEIZE] Y0 = R(J3) Y1 = R(J4) D = Y1-Y0 P = D / E H = E / M H2 = 2 * H REM ==PERFORM INTEGRATION== GOSUB [ONSESIZE] A1 = A1 + S GOTO [ONTHEIZE] [ONFIFOZE] S = A1 RETURN REM== SINE COEF. FOR F(X) PIECEWISE LINEAR== [ONFISIZE] B1 = 0 J3 = 0 [ONFIEIZE] J3 = J3 + 1 IF J3 > N1 THEN [ONSEFOZE] J4 = J3 + 1 X0 = Q(J3) X1 = Q(J4) E = X1 -X0 IF E = 0 THEN [ONFIEIZE] Y0 = R(J3) Y1 = R(J4) D = Y1 -Y0 P = D / E H = E / M H2 = 2 * H REM ==PERFORM INTEGRATION== GOSUB [ONNIFIZE] B1 = B1 + S GOTO [ONFIEIZE] [ONSEFOZE] S = B1 RETURN REM ==NUMERICAL INTEGRATION (SIMPSON'S RULE) FOR COSINE [ONSESIZE] S1 = 0 S2 = 0 T1 = X0 T2 = T1 + H FOR I = 1 TO M1 STEP 2 D1 = COS(W * T1) D2 = COS(W * T2) F1 = F(T1) F2 = F(T2) S1= S1+ D1* F1 S2 = S2 + D2 * F2 T1 = T1 + H2 T2 = T2 + H2 NEXT I Z0 =Y0 *COS(W* X0) Z1 = Y1 * COS(W * X1) S = 2 * S1+ 4 * S2 -Z0 + Z1 S = S * H / 3 RETURN REM ==NUMERICAL INTEGRATION (SIMPSON'S RULE) FOR SINE [ONNIFIZE] S1 = 0 S2 = 0 T1 = X0 T2 = T1 + H FOR I = 1 TO M1 STEP 2 D1 = SIN(W * T1) D2 = SIN(W * T2) F1 = F(T1) F2 = F(T2) S1 = S1 + D1 * F1 S2 = S2 + D2 * F2 T1 = T1 + H2 T2 = T2 + H2 NEXT I Z0 = Y0 * SIN(W * X0) Z1 = Y1 * SIN(W * X1) S = 2 * S1 + 4 * S2 -Z0 + Z1 S =S * H /3 RETURN [TWONFOZE] END REM DEFINE FUNCTION F(X) HERE REM==F(X)PIECEWISE LINEAR== REM *************************** FUNCTION F(X) F = 2*SIN(X)+COS(X) REM *************************** END FUNCTION