next up previous index
Next: D700 Real Fast Up: CERNLIB Previous: D510 Fitting Chisquare

D601 Solution of a Linear Fredholm Integral Equation of Second Kind

Routine ID: D601
Author(s): G.A. Erskine and K.S. KölbigLibrary: MATHLIB
Submitter: Submitted: 07.06.1992
Language: FortranRevised:

Subroutine subprograms RFRDH1, DFRDH1 and function subprograms RFRDH2, DFRDH2 calculate an approximation to the solution y of the Fredholm integral equation

y(x) = F(x)+ ∫abG(x,t) y(t) dt&sp;(1)

over the interval [a,b] . The function F must not be identically zero. The interval [a,b] may be divided into m subintervals [ti-1,ti], (i=1,2,...,m) , with a = t0< t1< ...< tm= b .

The order Ni (number of abscissae) of the Gaussian quadrature formula used for integrating over [ti-1,ti] is specified separately for each subinterval.

Function subprograms RFRDH3 and DFRDH3 evaluate numerically integrals of the form abH(t) y(t) dt

where H is an arbitrary function and y is the solution of (1).

The following values of Ni may be used: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 32, 40, 48, 64, 80, 96.

On computers other than CDC and Cray, only the double-precision versions DFRDH1 etc. are available. On CDC and Cray computers, only the single-precision versions RFRDH1 etc. are available.

Structure:

SUBROUTINE and FUNCTION subprograms
User Entry Names: RFRDH1, RFRDH2, RFRDH3, DFRDH1, DFRDH2, DFRDH3
Files Referenced: Unit 6
External References: RGSET, DGSET (D107), REQN, DEQN (F010), MTLMTR (N002), ABEND (Z035), and user-supplied FUNCTION subprograms.

Usage:

For t=R (type REAL), t=D (type DOUBLE PRECISION), the first step in the solution of (1) must be the execution of a statement of the form:

    CALL tFRDH1(F,G,M,T,NG,WS,IDIM,N)
F,G
(type according to t) Names of user-supplied FUNCTION subprograms, declared EXTERNAL in the calling program. Subprogram F must set F(X)=F(X) , subprogram G must set G(X,T)=G(X,T) .
M
( INTEGER) Number m ≥1 of subintervals in [a,b] .
T
(type according to t) One-dimensional array of dimension (0:d) where d ≥M . On entry, T must contain the m+1 ordered points of subdivision ti,(i=0,1,...,m) , with t0=a and tm=b .
NG
( INTEGER) One-dimensional array of length ≥M . On entry, NG must contain the order (number of absissae) Ni of the Gaussian quadrature formula to be used in the interval ti-1≤t ≤ti, (i=1,2,...,m) .
WS
(type according to t) Two-dimensional array of dimensions (IDIM,≥IDIM+4) . Used as working space and for communication between the subprograms.
IDIM
( INTEGER) A number ≥∑i=1mNi .
N
( INTEGER) On exit, N= ∑i=1mNi .

Once tFRDH1 has been called, the function subprograms tFRDH2 and tFRDH3 may be referenced any number of times without any further call to tFRDH1.

In any arithmetic expression,

    tFRDH2(F,G,X,WS,IDIM,N)
has the value y(X) , where y is the approximate solution of (1).

In any arithmetic expression,

    tFRDH3(H,WS,IDIM,N)
has the approximate value of abH(t) y(t) dt

where y is the approximate solution of (1).

H (type according to t) is the name of a user-defined FUNCTION subprogram, declared EXTERNAL in the calling program. This subprogram must set H(X) = H(X) .

Method:

Let the sets wk and zk be defined by

wk = w1(1),...,wN1(1),...,w1(m),...,wNm(m),

zk = z1(1),...,zN1(1),...,z1(m),...,zNm(m).

wj(i) and zj(i) are respectively the weights and abscissae of the Ni -point Gaussian quadrature formulae corresponding to the interval [ti-1,ti] . Subprograms RFRDH1 or DFRDH1 sets up and solves the following system of simultaneous linear equations with unknowns y(zk) :

y(zk) = F(zk) + ∑j=1N wjG(zk,zj) y(zk) (k = 1,2,...,N)

where N = ∑i=1mNi .

Function subprogram tFRDH2 calculates y(X) = ∑k=1Nwk G(X,zk) y(zk) .

Function subprogram tFRDH3 calculates I = ∑k=1Nwk H(zk) y(zk) .

Accuracy:

The accuracy depends upon the extend to which the product G(x,t)y(t)

can be represented by a polynomial of degree 2Ni-1 for all x in the interval [ti-1,ti],(i=1,2,...,m) .

Error handling:

Error D601.1: In tFRDH1, the system of linear equations is singular. A message is written on Unit 6, unless subroutine MTLSET (N002) has been called.
If any of the values Ni does not appear in the list given above, a message is written on Unit 6 by RGSET or DGSET (D107) unless subroutine MTLSET (N002) has been called.

D700



next up previous index
Next: D700 Real Fast Up: CERNLIB Previous: D510 Fitting Chisquare


Janne Saarela
Mon Apr 3 15:06:23 METDST 1995