From:	CBS%UK.AC.CRANFIELD::EDU.NIU.MATH::ZETTL  2-OCT-1994 22:11:38.56
To:	PRYCE
CC:	
Subj:	Re: sleign2

Via: UK.AC.CRANFIELD; Sun, 2 Oct 94  22:11 BST
Received: from clinch.math.niu.edu by xss001.ccc.cranfield.ac.uk with SMTP (PP) 
          id <17221-0@xss001.ccc.cranfield.ac.uk>;
          Sun, 2 Oct 1994 22:10:07 +0100
Received: from eiger.niu.edu (eiger.math.niu.edu) 
          by clinch.math.niu.edu (4.1/SMI-4.1) id AA19431;
          Sun, 2 Oct 94 16:09:17 CDT
From: zettl@edu.niu.math (Anton Zettl)
Message-Id: <9410022109.AA19431@clinch.math.niu.edu>
Subject: Re: sleign2
To: PRYCE@uk.ac.cranfield.rmcs (JOHN PRYCE, APPLIED & COMPUTATIONAL MATHS 
    GROUP, RMCS SHRIVENHAM, SWINDON SN6 8LA, UK) 
Date: Sun, 2 Oct 1994 16:07:39 -0500 (CDT)
In-Reply-To: <"xss001.ccc.296:06.08.94.09.05.44"@cranfield.ac.uk> from "JOHN PRYCE, APPLIED & COMPUTATIONAL MATHS GROUP, RMCS SHRIVENHAM, SWINDON SN6 8LA, UK" at Sep 6, 94 10:07:00 am
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 7677
Sender: zettl@edu.niu.math


Introduction to SLEIGN2.

  The main purpose of this program is to compute eigenvalues and 
eigenfunctions of regular and singular Sturm-Liouville problems. 
These consist of a second order linear differential equation
       -(py')' + qy = (lambda) w y  on (a,b)                                 
together with boundary conditions (BC). The nature of the BC depends on the 
regular or singular classification of the end points. For both cases the BC 
fall into two major classes : separated and coupled. The former are 
two separate conditions, one at each end-point; the latter are two 
coupled conditions linking the values of the solution at the two 
end-points a and b.
 A number lambda for which there is a nontrivial solution satisfying the BC 
is called an eigenvalue and such a solution is a (corresponding) 
eigenfunction. If one or both endpoints are LP (see below or section 2 
of "HELP" for a definition) there may be points lambda in the spectrum 
in addition to eigenvalues i.e. there may be continuous spectrum.
 In the theory of S-L problems the coefficients 1/p and q and the weight 
function w are assumed to be real valued and locally Lebesgue integrable. 
To meet the needs of numerical computing techniques we make the stronger 
assumptions : 
    (i) The interval (a,b) of R may be bounded or unbounded; in the regular 
case it is compact and denoted by [a,b].
    (ii) p, q, and w are real-valued functions on (a,b)
    (iii) p,q,w, are piecewise continuous on (a,b)
    (iv) p and w are strictly positive on (a,b).
 For reliable error analysis in the numerical procedures condition (iii) 
above is often replaced with 
    (iii)' p,q,w are four times continuously differentiable on (a,b).
  To study S-L problems using operator theory one associates a self-adjoint 
operator in the w-weighted Hilbert space of square-integrable functions 
on (a,b) with each S-L problem in such a way that the spectrum of 
the problem is the spectrum of the operator. In the case of a regular 
problem the spectrum consists entirely of eigenvalues and these are 
bounded below. This is still so for the case when each end-point is 
either regular or singular limit-circle nonoscillatory (LCNO). In case 
one end-point is limit-circle oscillatory (LCO) and the other is not 
limit-point (LP) then there are still only eigenvalues in the spectrum 
but these are not bounded below. (The spectrum is never bounded above.) If 
one or both endpoints is LP the spectrum may be extremely complicated. There 
may be no eigenvalues, finitely many, or infinitely many. Some may be 
embedded in the continuous spectrum. For p=1,w=1, q(x) =sin(x) on 
(-inf,+inf) there are no eigenvalues and the continuous spectrum consists 
of the union of an infinite number of disjoint compact intervals. 
(SLEIGN2 can be used to compute this spectrum - see example 12 in the code.) 
See "HELP" for a definition of the terms LCO etc. 
  S-L problems are classified into various classes based on the 
classification of the end-points and on whether the boundary conditions 
are separated(S) or coupled(C). We have the following categories: 
   1. R/R, S
   2. R/R, C
   3. R/LCNO or LCNO/R, S
   4. R/LCNO or LCNO/R, C
   5. R/LCO or LCO/R  , S
   6. R/LCO or LCO/R  , C
   7. LCNO/LCO or LCO/LCNO or LCO/LCO, S
   8. LCNO/LCO or LCO/LCNO or LCO/LCO, C
   9. LP/R or LP/LCNO or LP/LCO or R/LP or LCNO/LP or LCO/LP
  10. LP/LP
  For 9. there is only a separated condition condition at the non-LP 
end-point and for 10. there are no boundary conditions at either end.
  There are only three other major general purpose codes for computing 
eigenvalues and eigenfunctions of Sturm-Liouville problems : The NAG 
library code, SLEDGE, and the earlier code SLEIGN. We have not had an 
opportunity to use the newly revised version of the NAG code (the earlier 
version was modeled on SLEIGN) so our comments here are confined to the 
other two codes. 
  SLEDGE uses a method based on piecewise constant approximations 
of the coefficients of the differential equation; SLEIGN  and SLEIGN2 
both are based on the Pruefer transformation. 
  Both SLEIGN and SLEDGE are designed to automatically handle end-points 
which are either regular or singular but non-oscillatory. And in the 
latter case if an end-point is LCNO the Friedrichs condition is 
usually the one chosen by the code. SLEDGE can also determine the LP/LC 
classification; SLEIGN and SLEIGN2 do not.
  For problems with LC end-points, whether LCNO or LCO, SLEIGN2 is the 
only general purpose code in existence which can handle arbitrary 
separated boundary conditions. It is also the only code which can 
handle coupled boundary conditions, in particular periodic-type 
conditions including the classical periodic and semi-periodic ones. 
 In addition to the above mentioned capabilities to compute eigenvalues and 
eigenfunctions SLEIGN2 also computes the solution of an initial value 
problem with the users choice of lambda and either a regular or SINGULAR 
initial condition.
 When combined with the algorithm established in [BEWZ] SLEIGN2 can be used 
to approximate the continuous spectrum.
  An important feature of the SLEIGN2 program is its user friendly 
interface.  
  The whole package consists of the following files:
 1. A brief "readme" file with basic information on how to run the code.
 2. This intoduction
 3.makepqw.f - This is an interactive fortran file to input the coefficient 
            functions p,q,w and,if necessary, the functions u,v which 
            define the singular boundary conditions.
 4.drive.f  - This is an interactive fortran file containing the driver,  parts of 
              "help", and a "user friendly" interface.
 5.sleign2.f - The main code for the computation of eigenvalues and 
             eigenfunctions.  
 6.xamples.f - A fortran file with 25 examples ready to run. These 
             examples were chosen to illustrate various features of the code.
 7.xamples.comm - Contains information about the examples.
 8. HELP - A file with information about end-point classifications, boundary 
    conditions etc. It is a separate text file and parts of it can also be 
    accessed from both makepqw and drive : At each point where the user 
    is asked for some input there is an option for help - 
   just type "h" return and you will be placed at the appropriate section of 
   HELP; to return to the point in the program where help was called just 
   type "r" return. The 16 components of HELP are:
   H0  File name entry
   H1  The Sturm-Liouville differential equation
   H2  End-point classifications with examples
   H3  Default classification and boundary condition entry
   H4  LC(limit-circle) boundary conditions with examples
   H5  Regular and singular, separated and coupled boundary conditions
   H6  Recording results
   H7  Type and choice of intervals
   H8  Entry of end-points
   H9  Value of coefficients p,q,w at end points a and b
   H10 Boundary and initial value problems
   H11 Indexing of eigenvalues
   H12 Entry for eigenvalues and for tolerances
   H13 Flag information for output
   H14 Plotting results
   H15 Periodic-type boundary conditions

   When an eigenfunction has been computed it is stored and can be examined:
  (i) by printing out the numerical data
  (ii) by using the discrete graph plotter in the program
  (iii) by using a local graph plotter.

 THIS SINGLE PRECISION VERSION OF THE CODE HAS BEEN PREPARED FOR TESTING 
 PRIOR TO RELEASE. IT IS INTENDED TO BE USED TO TEST THE VIABILITY OF 
 THE ALGORITHMS USED ON THE CLASSES OF PROBLEMS MENTIONS ABOVE. THE FINAL 
 VERSION WILL BE AVAILABLE IN SINGLE AND IN DOUBLE PRECISION.
 
   
