1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
real*8 function splint(t,n,c,k,a,b,wrk)
c function splint calculates the integral of a spline function s(x)
c of degree k, which is given in its normalized b-spline representation
c
c calling sequence:
c aint = splint(t,n,c,k,a,b,wrk)
c
c input parameters:
c t : array,length n,which contains the position of the knots
c of s(x).
c n : integer, giving the total number of knots of s(x).
c c : array,length n, containing the b-spline coefficients.
c k : integer, giving the degree of s(x).
c a,b : real values, containing the end points of the integration
c interval. s(x) is considered to be identically zero outside
c the interval (t(k+1),t(n-k)).
c
c output parameter:
c aint : real, containing the integral of s(x) between a and b.
c wrk : real array, length n. used as working space
c on output, wrk will contain the integrals of the normalized
c b-splines defined on the set of knots.
c
c other subroutines required: fpintb.
c
c references :
c gaffney p.w. : the calculation of indefinite integrals of b-splines
c j. inst. maths applics 17 (1976) 37-41.
c dierckx p. : curve and surface fitting with splines, monographs on
c numerical analysis, oxford university press, 1993.
c
c author :
c p.dierckx
c dept. computer science, k.u.leuven
c celestijnenlaan 200a, b-3001 heverlee, belgium.
c e-mail : Paul.Dierckx@cs.kuleuven.ac.be
c
c latest update : march 1987
c
c ..scalar arguments..
real*8 a,b
integer n,k
c ..array arguments..
real*8 t(n),c(n),wrk(n)
c ..local scalars..
integer i,nk1
c ..
nk1 = n-k-1
c calculate the integrals wrk(i) of the normalized b-splines
c ni,k+1(x), i=1,2,...nk1.
call fpintb(t,n,wrk,nk1,a,b)
c calculate the integral of s(x).
splint = 0.0d0
do 10 i=1,nk1
splint = splint+c(i)*wrk(i)
10 continue
return
end
|