CLS PRINT "F0URIER SERIES EXPANSION OF " PRINT "PIECEWISE LINEAR PERIODIC FUNCTIONS" REM ==INPUT DATA== DIM A(10) DIM B(10) GOSUB [SIZE] REM ==COMPUTE COEFFICIENTS== GOSUB [FOFIZE] GOSUB [NIZEZE] GOTO [ONONEIZE] [SIZE] PRINT PRINT "FUNCTION PARAMETER INPUT" PRINT INPUT "PERIOD = ";T PRINT INPUT "NUMBER OF SEGMENTS = ";N PRINT PRINT "DESIRED NUMBER OF" INPUT "TERMS IN EXPANSION = ";M REM ==INITIALIZE VARIABLES== P1 = 3.141592654 P2 =2 * P1 W0 = P2 / T A0 = 0 FOR I = 1 TO M A(I) = 0 B(I) = 0 NEXT I RETURN REM ==INPUT SEGMENT DATA== [FOFIZE] PRINT PRINT PRINT "ENTER VERTEX COORDINATES" PRINT PRINT "X , F(X)" PRINT "(IN ORDER OF INCREASING X)" PRINT PRINT "VERTEX 1" INPUT "X = ";X0 INPUT "F = ";F0 K = 0 [FISIZE] K = K + 1 REM ==CHECK F0R LAST SEGMENT== IF K > N THEN [EINIZE] K1 = K + 1 PRINT PRINT "VERTEX ";K1 INPUT "X = ";X1 INPUT "F = ";F1 IF X1 = X0 THEN [EISIZE] REM ==COMPUTE COEFFICIENTS== A0 = A0 + (X1 -X0) * (F1 + F0) P = (F1 -F0) / (X1 -X0) Q = F0 -P * X0 W = 0 FOR I = 1 TO M W = W + W0 Z0 = W * X0 Z1 = W * X1 C0 = COS(Z0) C1 =COS(Z1) S0 = SIN(Z0) S1 = SIN(Z1) C2 = C1 -C0 C3 = X1 * C1 -X0 * C0 S2 = S1 -S0 S3 = X1 * S1 -X0 * 30 E0 = P / (W * W) E1 = Q / W A1=E0* (C2 +W* S3)+ E1 * S2 B1 = E0 * (S2 -W * C3) -E1 * C2 A(I) = A(I) + A1 B(I) = B(I) + B1 NEXT I [EISIZE] X0 = X1 F0 = F1 GOTO [FISIZE] [EINIZE] RETURN REM ==OUTPUT RESULTS:: [NIZEZE] PRINT PRINT"'F0URIER COEFFICIENTS" PRINT "********************" PRINT T2 = 2 / T A0 = A0 / T W = 0 PRINT ">N = 0 W=0" PRINT PRINT "A = ";A0 PRINT FOR I = 1 TO M W = W + W0 F = W / P2 A1 = A(I) * T2 B1 = B(I) * T2 IF ABS(A1) > 1/10^8 THEN [ONZEEIZE] A1 = 0 [ONZEEIZE] IF ABS(B1)> 1/10^8 THEN [ONONZEZE] B1 = 0 [ONONZEZE] PRINT "N = ";I;"W = ";W; PRINT "W/TW0PI = ";F PRINT "A = ";A1; PRINT " "; PRINT "B = ";B1 PRINT NEXT I RETURN [ONONEIZE] END