File: POLY1.FT of Tape: Various/ETH/eth11-1
(Source file text)
C POLY1.FTN - A PROGRAM TO TEST THE FOLLOWING SUBROUTINES: C PADDM - ADD A CONSTANT TIMES ONE POLYNOMIAL TO ANOTHER C PDER - DERIVATIVE OF A POLYNOMIAL C PDIV - DIVIDE ONE POLYNOMIAL BY ANOTHER C PINT - INDEFINITE INTEGRAL OF A POLYNOMIAL C PMPY - MULTIPLY TWO POLYNOMIALS C PNORM - NORMALIZE THE COEFFICIENT VECTOR OF A POLYNOMIAL C PVAL - EVALUATE A POLYNOMIAL C DIMENSION F1(3),F2(4),F3(2),F4(5),F5(3),F6(4),F7(3) DIMENSION WORK1(10) C F1(X)=12X**2+2, F2(X)=X**3+4X**2+4, F3(X)=X DATA F1/2.,0.,12./,F2/4.,0.,4.,1./,F3/0.,1./ C OUTPUT CHANNEL = IOUT IOUT=2 WRITE(IOUT,99) 99 FORMAT(//' F1(X)=12X**2+2, F2(X)=X**3+4X**2+4, F3(X)=X'/) C C COMPUTE F4(X)=2*F3(X) * F2(X) + F1(X) C CALL PMPY(WORK1,IW1,F2,4,F3,2) CALL PADDM(F4,IF4,F1,3,2.,WORK1,IW1) WRITE(IOUT,100) 100 FORMAT(' F4(X)=2*F3(X)*F2(X)+F1(X)',3X,'(SHOULD BE 2*(X+1)**4)'/) 101 FORMAT(' COEFFICIENT OF X**',I1,' IS 'F10.4) DO 1 I=1,IF4 IM1=I-1 1 WRITE(IOUT,101) IM1,F4(I) C C COMPUTE F5(X) = F4(X) / (X+1)**2 C WORK1(1)=1 WORK1(2)=2 WORK1(3)=1 CALL PDIV(F5,IF5,F4,IF4,WORK1,3,1.E-4,IER) WRITE(IOUT,102) 102 FORMAT(//' F5(X)=F4(X)/(X+1)**2',3X,' (SHOULD BE 2(X+1)**2)'/) DO 2 I=1,IF5 IM1=I-1 2 WRITE(IOUT,101) IM1,F5(I) WRITE(IOUT,103) 103 FORMAT(/' REMAINDER POLYNOMIAL (IF ANY)'/) DO 3 I=1,IF4 IM1=I-1 3 WRITE(IOUT,101) IM1,F4(I) C C COMPUTE F6(X)=INDEFINITE INTEGRAL OF F5(X) C WRITE(IOUT,104) 104 FORMAT(//' F6(X)=INTEGRAL OF F5(X)',3X,'(SHOULD BE [2(X+1)**3]/3'/ 1' CONSTANT TERM SHOULD BE ZERO'/) CALL PINT(F6,IF6,F5,IF5) DO 4 I=1,IF6 IM1=I-1 4 WRITE(IOUT,101) IM1,F6(I) C C COMPUTE AF6=DEFINITE INTEGRAL OF F5(X) FROM 1 TO 3 C CALL PVAL(AF6,3.,F6,IF6) CALL PVAL(TEMP,1.,F6,IF6) AF6 = AF6 - TEMP WRITE(IOUT,105) AF6 105 FORMAT(//' AF6=DEFINITE INTEGRAL OF F5(X) ON [1,3]'/ 1' VALUE IS',E16.7) C C COMPUTE DERIVATIVE OF F2(X) C WRITE(IOUT,106) 106 FORMAT(//' DERIVATIVE OF X**3+4X**2+4'/) CALL PDER(F7,IF7,F2,4) DO 5 I=1,IF7 IM1=I-1 5 WRITE(IOUT,101) IM1,F7(I) STOP END