Documente Academic
Documente Profesional
Documente Cultură
DESCRIPTION
This package is a complement to [1] where its usage is described and demonstrated.
COLSYS uses the following non-American National Standard FORTRAN
conventions:
(1) No run-time subscript range checking.
(2) Simple expressions used as subscripts.
(3) Specifications of array values in DATA statements (used in subroutine
CONSTS) by referring to the array name only.
REFERENCES
1. ASCHER, U., CHRISTIANBEN, J., AND RUSSELL, R D. Collocation software for boundary value
ODEs. A C M Trans. Math. Soflw. 7, 2 (June 1981), 209-222
ALGORITHM
[A part of the listing is printed here. The complete listing is available from the
ACM Algorithms Distribution Service (see page 257 for order form).]
Received 21 February 1979, 3 April 1979, and 26 October 1979.
Permission to copy without fee all or part of this materml is granted provided t h a t the copies are not
made or distributed for direct commercial advantage, the ACM copyright notice and the title of the
pubhcation and its date appear, and notme is given t h a t copying ]s by permission of the Assocmtmn
for Computing Machinery. To copy otherwise, or to repubhsh, requires a fee and/or specific
permission.
Authors' addresses: U. Ascher, Computer Science Department, University of British Columbia,
Vancouver, B.C. V6T 1W5, Canada; J. Christiansen and R.D. Russell, Mathematics Department,
Simon Fraser University, Burnaby, B.C. V5A 1S6, Canada.
1981 ACM 0098-3500/81/0600-0223 $00.75
ACM Transactions on Mathematmal Software, Vol 7, No. 2, June 1981, Pages 223-229
224
Algorithms
SUBROUTINE
C O L S Y S (NCOMP, M, A L E F T , A R I G H T ,
ZETA, IPAR,
TOL, F I X P N T ,
ISPACE, FSPACE,
IFLAg,
FSUB,
DFSUB, gSUB, DgSUB, SOLUTN)
1
2
LTOL,
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
PURPOSE
SUBROUTINE COLSYS SOLVES A MULTI-POINT
BOUNDARY V A L U E
PROBLEM FOR A M I X E D ORDER SYSTEM OF O D E - S g I V E N BY
(M(I))
U
X~
Z(U(X))
ALEF~
1,
,NCOMP
ZETA(d),
Z(U(ZETA(d)))
)=
d =
.LT.
ARIgH],
X .LT
1,
,MSTAR
d
MSTAR=M(1)+M(2)+.
WHERE
.+M(NCOMP),
T
U =
(U
U ,
2
,U
IS
THE M I = M ( I )
IS
THE E X A C T
SOLUTION
VECTOR
NCOMP
(HI)
U
TH
DERIVATIVE
OF U
I
(I)
Z(U(X))
(U
(X),U
1
F
(X,Z(U))
IS
(M1-1)
,U
(X),
1
(X),
1
A
(gENERALLY)
NONLINEAR
(MNCOMP--~)
,U
(X))
NCOMP
FUNCTION
OF
I
Z(U)=Z(U(X))
(ZETA(d),Z(U))
IS
(gENERALLY)
NONLINEAR
BOUNDARY
CONDITION
THE BOUNDARY P O I N T S S A T I S F Y
ALEFT
LE
ZETA(l)
.LE
THE ORDERS M I
M1 . L E
.LE
ZETA(MSTAR) . L E
OF THE D I F F E R E N T I A L
EQUATIONS
M2
LE .....
LE
MNCOMP . L E .
*********~**~*
INPUT TO C O L S Y S
ARIGHT
SATISFY
4.
***************
VARIABLES
C
C
C
C
C
C
NCOMP M(J)
ALEFT
NO.
OF D I F F E R E N T I A L
EQUATIONS
(NCOMP
.LE.
ORDER OF THE J - T H D I F F E R E N T I A L
EQUATION ( M(J)
AND MSTAR = M ( 1 ) +
+ M(NCOMP) .LE.
40 )
-
LEFT
END OF
INTERVAL
20)
LE.M(J+I)
Algorithms
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
ARIGHT ZETA(d)
d-TH
ZETAKd)
.LE.
MUST
ZETA(d+1)
IPAR(1)
(
=
=
IPAR(2)
225
HAVE
IPAR -
0
1
NONLIN
(= K )
= NO OF COLLOCATION POINTS PER SUBINTERVAL
WHERE M(NCOMP) LT.
K LE. 7 . I F I P A R ( 2 ) = O THEN
COLSYS SETS K = MAX ( MKNCOMP)+I, 5-M(NCOMP) )
= NO
OF S O L U T I O N AND D E R I V A T I V E TOLERANCES.
WE R E G U I R E
0 .LT.
NTOL . L E .
MSTAR.
I P A R ( 5 ) = DIMENSION OF FSPACE
( = NDIMF
I P A R ( b ) = DIMENSION OF ISPACE
( = NDIMI
IPAR(7) =
=
=
( = NTOL
OUTPUT CONTROL ( = I P R I N T )
- 1 FOR FULL DIAGNOSTIC PRINTOUT
0 FOR SELECTED PRINTOUT
1 FOR NO PRINTOUT
IPAR(8)
( = IREAD )
= 0 CAUSES COLSYS TO gENERATE A UNIFORM I N I T I A L MESH.
= 1 I F THE I N I T I A L MESH I S PROVIDED BY THE USER
IT
IS DEFINED IN FSPACE AS FOLLOWS
THE MESH
ALEFT=X(1) L T . X < 2 ) L T . .
LT.X(N).LT.X(N+I)=ARIgHT
WILL OCCUPY FSPACE(1),
..,
FSPACE(N+I). THE
USER NEEDS TO SUPPLY ONLY THE INTERIOR MESH
POINTS
FSPACE(d)
= X(d),
d = 2, ...,
N.
= 2 I F THE I N I T I A L
MESH I S S U P P L I E D BY THE USER
AS WITH I P A R ( 8 ) = I , AND IN ADDITION NO ADAPTIVE
MESH SELECTION I S TO BE DONE.
IPAR(?)
( = IgUESS )
= 0 I F NO I N I T I A L gUESS FOR THE SOLUTION I S
PROVIDED.
= 1 I F AN I N I T I A L g U E S S I S P R O V I D E D BY THE USER
IN SUBROUTINE
SOLUTN.
= 2 I F AN I N I T I A L MESH AND APPROXIMATE SOLUTION
COEFFICIENTS ARE PROVIDED BY THE USER IN
FSPACE.
(THE FORMER AND NEW MESH ARE THE SAME).
= 3 I F A FORMER MESH AND AN APPROXIMATE SOLUTION
COEFFICIENTS ARE PROVIDED BY THE USER IN FSPACEo
AND THE NEW MESH I S TO BE TAKEN TWICE AS COARSE.
= 4 I F IN ADDITION TO A FORMER I N I T I A L MESH AND AN
APPROXIMATE SOLUTION COEFFICIENTS, A NEW MESH
I S PROVIDED IN FSPACE AS WELL
( S E E D E S C R I P T I O N OF OUTPUT FOR FURTHER D E T A I L S
ON I Q U E S S = 2 , 3 , AND 4. )
ACM
226
Algorithms
C
C
IPAR(IO)=
0 I F THE PROBLEM I S REOULAR
C
= 1 I F THE F I R S T RELAX FACTOR I S = R S T A R T , AND THE
C
N O N L I N E A R I T E R A T I O N DOES NOT R E L Y ON P A S T COVERQENCE
c
( U S E FOR AN E X T R A S E N S I T I V E
N O N L I N E A R PROBLEM O N L Y ) .
C
= 2 I F WE ARE TO RETURN I M M E D I A T E L Y UPON
( A ) TWO
c
S U C C E S S I V E NONCONVERGENCES, OR
( B ) AFTER O B T A I N I N G
C
ERROR E S T I M A T E FOR THE F I R S T T I M E .
c
C
IPAR(11)=
NO. OF F I X E D P O I N T S I N THE MESH OTHER THAN
c
A L E F T AND A R I G H T .
( = N F X P N T , THE D I M E N S I O N OF F I X P N T )
c
C
LTOL
AN ARRAY OF D I M E N S I O N
IPAR(4).
LTOL(d)
= L
SPECIFIES
C
THAT THE J - T H T O L E R A N C E I N
TOL
CONTROLS THE ERROR
c
I N THE L - T H COMPONENT OF Z ( U )
ALSO R E G U I R E THAT
C
1. LE L T O L ( 1 ) . L T .
LTOL(2).LT .....
LT. L T O L ( N T O L ) . L E . MSTAR
C
AN ARRAY OF D I M E N S I O N I P A R ( 4 ) .
TOL(d)
I S THE
C
TOL
C
ERROR T O L E R A N C E ON THE L T O L ( J )
- T H COMPONENT
c
OF Z ( U ) .
THUS, THE CODE A T T E M P T S TO S A T I S F Y
C
FOR d = l . . . . , N T O L
ON EACH S U B I N T E R V A L
c
ABS(Z(V)-Z(U))
.LE
TOL(J)*Z(U)
+TOL(J)
c
LTOL(d)
LTOL(J)
C
IF V(X)
I S THE A P P R O X I M A T E S O L U T I O N VECTOR.
C
C
FIXPNT
AN ARRAY OF D I M E N S I O N I P A R ( 1 1 )
IT CONTAINS
C
THE P O I N T S ,
OTHER THAN A L E F T AND A R I G H T ,
WHICH
c
ARE TO BE I N C L U D E D I N EVERY MESH
C
C
I S P A C E - AN INTEGER WORK ARRAY OF DIMENSION I P A R ( 6 ) .
C
I T S S I Z E PROVIDES A CONSTRAINT ON NMAX,
C
THE MAXIMUM NUMBER OF SUBINTERVALS. CHOOSE
c
I P A R ( 6 ) ACCORDINg TO THE FORMULA
c
IPAR(6)
GE.
NMAX*NSIZEI
c
WHERE
C
N S I Z E I = 3 + KDM - NREC
C
WITH
c
KDM = KD + MSTAR ~
KD = K * NCOMP
c
NREC = NO. OF RIGHT END BOUNDARY CONDITIONS.
C
C
c
F S P A C E - A REAL WORK ARRAY OF D I M E N S I O N I P A R ( 5 ) .
c
I T S S I Z E P R O V I D E S A C O N S T R A I N T ON NMAX
c
CHOOSE I P A R ( 5 )
A C C O R D I N G TO THE FORMULA
c
IPAR(5)
.GE
NMAX*NSIZEF
C
WHERE
C
N S I Z E F = 4 + K + 2 * KD + ( 4 + 2 - K ) * MSTAR +
C
(KDM-NREC) * ( K D M + I )
c
c
c
I F L A G - THE MODE OF RETURN FROM COLSYS.
c
= I FOR NORMAL R E T U R N
c
= 0 I F THE C O L L O C A T I O N M A T R I X I S S I N G U L A R .
c
= - 1 I F THE E X P E C T E D NO. OF S U B I N T E R V A L S EXCEEDS STORAGE
C
SPECIFICATIONS.
c
=-2
I F THE N O N L I N E A R I T E R A T I O N HAS NOT CONVERGED
c
=-3
I F THERE I S AN I N P U T DATA ERROR
c
C
C*****~**************~-**~*********~**************.i~*~I.*****4b*************~
C
C
**********
USER S U P P L I E D E X T E R N A L S U B R O U T I N E S
*****~*
-
Algorithms
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
FSUB
NAME OF S U B R O U T I N E FOR E V A L U A T I N g F ( X , Z ( U ( X ) ) )
=
T
(F ,...,F
)
AT A P O I N T X I N ( A L E F T , A R I Q H T ) .
1
NCOMP
SHOULD HAVE THE HEADINg
SUBROUTINE
FSUB
(X
Z ,
227
IT
F)
DFSUB
DFSUB
(X
Z ,
DF)
WHERE Z ( U ( X ) )
I S D E F I N E D AS FOR FSUB AND THE ( N C O M P ) BY
( M S T A R ) ARRAY DF SHOULD BE F I L L E D BY THE P A R T I A L D E R I V A T I V E S OF F, V I Z ,
FOR A P A R T I C U L A R C A L L ONE C A L C U L A T E S
D F ( I , J ) = DFI / DZO, I = 1 . . . . . NCOMP
d=l ....
MSTAR.
gSUB
IS
AS FOR FSUB,
Z ,
AND I
g)
AND g = g
DQSUB -
ARE AS ABOVE.
I
, HERE
I N g.
DQSUB
(I
Z ,
DQ)
WHERE Z ( U )
I S AS FOR FSUB, I AS FOR gSUB AND THE M S T A R VECTOR Dg SHOULD BE FILLED WITH THE PARTIAL DERIVATIVES
OF g, V I Z , FOR A PARTICULAR CALL ONE CALCULATES
Dg(I,J)
= DgI / DZJ
d = l , ..tMSTAR
SOLUTN
(X
Z ,
DMVAL)
228
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
Algorithms
***************
APPSLN
COLSYS ,
UPON RETURN FROM
S O L U T I O N VECTOR
Z(U(X)
)
BY C A L L I N g
:
CALL
(X,
Z,
***************
FSPACE,
ISPACE)
T H I S S E T S UP A STANDARD C A L L TO
APPROX.
FOR A MORE
EFFICIENT
OR S O P H I S T I C A T E D
R E T R I E V A L OF THE S O L U T I O N
VALUES~ C A L L
APPROX
DIRECTLY
(SEE DOCUMENTATION IN
APPROX - THE P A R A M E T E R S NEEDED I N THE C A L L TO
APPROX
BY THE USER ARE SAVED I N
ISPACE
AND
FSPACE
BEFORE
COLSYS
RETURNS).
ITERATION
THIS
*********~****~
PACKAGE
SUBROUTINES
**************~
Algorithms
PART
C
C
C
C
C
C
C
C
C
C
PART
229
CONSTS -
I S C A L L E D ONCE BY
COLSYS
TO I N I T I A L I Z E
CONSTANTS
WHICH ARE USED FOR ERROR E S T I M A T I O N AND MESH S E L E C T I O N
NEWMSH
ERRCHK
C O L L O C A T I O N SYSTEM S E T - U P
THE
SUBROUTINES
LSYSLV
BLDBLK
B-SPLINE
SUBROUTINES
APPSLN -
SETS UP A STANDARD C A L L TO
APPROX -
EVALUATES
BSPFIX -
BSPVAR -
BSPDER -
APPDIF
HORDER -
A PIECEWISE
APPROX
P O L Y N O M I A L SOLUTION.
(I.E.
ThE
NEEDED TO SET
ACM