Integral of Lagrange polynomial

Consider the Fourier transform from begr to endr of a function defined as a Lagrange polynomial.

The function through these points is


 The integral of f is

                The Integrals are of the form

Define and let so that the integral becomes

 Define

So that

The integral is

The code to integrate from the first point to the last in Fortran is in for\AINT.FR

      FUNCTION TAINT(XDAT,FDAT,N)

      IMPLICIT REAL*8 (A-H,O-Z)

      DIMENSION XDAT(*)

      COMPLEX*16 FDAT(*)

C  EVALUATES THE INTEGRAL FROM XDAT(1) TO XDAT(N)
C  LAGRANGE POLYNOMIAL THROUGH THE NEAREST 4 POINTS

      BEGR=XDAT(1)

      ENDR=XDAT(3)

      IF(N.LE.4)THEN

        IF(N.LT.4)THEN

          PRINT*,' AT LEAST 4 POINTS ARE NEEDED FOR'
          PRINT*,' INTERPOLATION'

          READ(*,*)ITEST

          STOP

        ELSE

          ENDR=XDAT(4)

        ENDIF

      ENDIF


 

      TAINT=AINT2(XDAT(1),XDAT(2),XDAT(3),

     A  XDAT(4),BEGR,ENDR

     2 ,FDAT(1),FDAT(2),FDAT(3),FDAT(4))

      IF(N.EQ.4)RETURN

      DO I=3,N-3

        BEGR=XDAT(I)

        ENDR=XDAT(I+1)

        TAINT=TAINT+

     2  AINT2(XDAT(I-1),XDAT(I),XDAT(I+1),XDAT(I+2),BEGR,ENDR,

     3  FDAT(I-1),FDAT(I),FDAT(I+1),FDAT(I+2))

      ENDDO

      BEGR=XDAT(N-2)

      ENDR=XDAT(N)

      TAINT=TAINT+

     2  AINT2(XDAT(N-3),XDAT(N-2),XDAT(N-1),XDAT(N),BEGR,ENDR,

     3  FDAT(N-3),FDAT(N-2),FDAT(N-1),FDAT(N))

      RETURN

      END

 

      FUNCTION AINT2(SA,SB,SC,SD,BEGR,ENDR,FA,FB,FC,FD)

      IMPLICIT REAL*8 (A-H,O-Z)

      COMPLEX*16 FA,FB,FC,FD

      H=ENDR-BEGR

      XMID=(BEGR+ENDR)/2

      AINT2=FA*AIHAT2(SB,SC,SD,H,XMID)/((SA-SB)*(SA-SC)*(SA-SD))

     2 +FB*AIHAT2(SA,SC,SD,H,XMID)/((SB-SA)*(SB-SC)*(SB-SD))

     3 +FC*AIHAT2(SA,SB,SD,H,XMID)/((SC-SA)*(SC-SB)*(SC-SD))

     4 +FD*AIHAT2(SA,SB,SC,H,XMID)/((SD-SA)*(SD-SB)*(SD-SC))

      RETURN

      END

C

      FUNCTION AIHAT2(SB,SC,SD,H,XMID)

      IMPLICIT REAL*8 (A-H,O-Z)

      CAPB=(XMID-SB)

      CAPC=(XMID-SC)

      CAPD=(XMID-SD)

      AIHAT2=H*(CAPB*CAPC*CAPD+H*H*

     2(CAPB+CAPC+CAPD)/12)

      RETURN

      END

Any function can be found using findfun and integrated by the above to yield

In the above let so that

The function G is known on the grid of points found by findfun.  In a general integral of the form

make the variable change using a positive definite g

Then