Escolar Documentos
Profissional Documentos
Cultura Documentos
Key Words and Phrases. solution of nonlinear equation, differentiation with respect to a
parameter, one-parameter imbedding, dependence on parameter
CR Categories. 5.15
Language- Fortran
DESCRIPTION
If r (x (a), ~) is a regular matrix for (~0, al), then x (a) obtained b y integration of
(2) satisfies
f(x(a),~) = O, a E (ao, a,). (3)
However, at a branching point the matrix F is singular and the integration pro-
cedure mentioned above fails.
Therefore, the method must be adapted to be able to handle branching points,
i.e. to evaluate the whole dependence x (a), which is a continuously smooth curve
in the (n + 1)-th dimensional space (x - a). A parameterization with respect to
the arc length of the solution locus seems to be a powerful technique which over-
comes the difficulties [-5].
Differentiation of eq. (1) with respect to t gives
df, ~_, Of, dxj Of, da
d-~ = ~_, Ox-~ d--t -t- Oa dt - O, i -- 1, 2, . . . , n. (4)
An additional equation
2 2 2
+ ... +\ + = i (5)
determines the parameter t as the arc length of the curve x (a) in the space (x - a).
The initial conditions for eqs. (4) and (5) are in the form
t = 0 : x = x0, a = a0. (6)
Equation (4) forms a system of n linear equations for n - k l unknowns dx,/dt,
i = 1 , . . . , n, da/dt, for each t. Suppose that the matrix
oI~
-- ,°. (7)
rk : o,:
is regular (for certain values of t and k, 1 _ k < n d- 1). For clarity here, we have
denoted
x . + l = ~. (S)
Equation (4) can then be presolved with respect to the unknowns dx~/dt, . . . ,
dxk_~/dt, d x k + l / d t , . . . , dxn+~/dt, depending on dxk/dt in the form
dx, dxk
d--/ = #' -~-' i = 1, 2 . . . . , k - - l , k-t-l, . . . , n + l . (9)
In the program the unknowns with a subscript k (dx~/dt and xk) are called the
independent variables. The value of the subscript k is determined in the Gaussian
elimination procedure using controlled pivoting. The result depends on the values
of P R E F ( I ) .
On substituting (9) into (5) we obtain
2 --1
\-~-] 1 A- ~ #2 . (10)
s=l, ~k
ACM Transactions on Mathematical S o f t w a r e , V o l . 2, N o . I , M a r c h 1976.
I no
At most ITIN Newton iterations. If IIAxll < E P S is not
fulfilled, -i ÷ ITIN and if INITAL = i then RETURN.
If INITAL = 2 then always RETUILN after inltial Newton.
Output x1 .... ,Xn, a , ~ i after each Newton iteration.
L
f
I I Nc J
Q
Evaluation of f and ,'
Solutlon of llnear system for evaluation of Newton
increment Ax, k and coefflclents S in (9)
i
no
tx- Ax+xl
NC + 1 ÷ NC
t 1 ÷ NC ~
t
~ NCRAD = O) yes
no
x - Ax ÷ x
~
additional Newton correction
>¢2
0.6
60
0.5
50
04
O.3
" , . . V15
137
135
02
0"I
d×z l de~= t 2
10
f i i
~ol 002 o.~3 0'04 0'o5 ,, ob~
Fig. 2. The dependence x2(a)
"~ = 1 0 0 0 , B = 22,/~1 = /~ = 2, 0cx = 0o~ = 0; x0 = (0;0;0;0), d0 = 0,
PREY(I) = (1,0.1, 1,1,0.02), H H = 0.02, E P S = 10 -~, M X A D M S = 4,
NCORR = 4, N C R A D = O, N D I R ( I ) = (1,1,1,1,1).
Calculated points on the curve x2(a) are numbered. For the points 1-12, 61-70, 114-140, 155--...,
a was independent (k = 5); otherwise x2 (k = 2) plays the role of an independent variable.
Altogether 332 evaluations of the subroutine F C T N for calculation of 162 points was necessary.
However, by choosing N C O R R = 0 and N C R A D = 1, the number of evaluations of F C T N w a s
lowered to 163, and in fact the same curve was obtained.
ACM Transactions on Mathematical S o f t w a r e , V o l . 2, N o 1, M a r c h 1976
102 Algorithms
The sign of dx~/dt is given by the orientation of the parameter t along the curve.
All derivatives dx~/dt are then determined by (9).
The Adams-Bashforth explicit multistep method with an automatic change in
the order of approximation is used for the integration of differential equations (9)
and (10). It is possible to use some other technique, e.g. the Runge-Kutta method.
However, it seems that our technique is more suitable when considering the time-
consuming evaluation of the Jacobian matrix and the matrix inversion procedure
in each step.
In the course of integration the truncation error causes a deviation between the
calculated solution x(t) and the correct profiles x(l). The Newton method for
variables x' = (xl, Xs, • . . , Xk_l, xk+l, . . . , X~+l)z is therefore used to improve the
calculated profiles:
XPnew- - XPold ~--. --r~-lf.
The higher accuracy of numerical integration lowers the computer time expenditure
only because of the low number of Newton iterations.
The algorithm is described by means of the schematic flow diagram given in
Figure 1. The specification of the individual d u m m y (formal) parameters of the
subroutine D E R P A R is given in the subroutine heading.
The particular form of eq. (1) has to be programmed by the user as a subroutine
FCTN. To illustrate the construction of the subroutine FCTN, an example is pre-
sented for a set of four nonlinear equations:
f~ = a(1 -- xs) exp (10x~/(1 -{- 10Xl//~f)) - - X3 = 0
f~ = aB(1 -- x3) exp (10xl/(1 ~- 10xl/~)) ~c ~10cl -- 10(1 ~- ~1)Xl = 0
fs = x3 -- x4 -{- a (1 -- x4) exp (10x2/(1 -t- 10x2/7)) = 0
f4 = 10Xl -- 10(1 -{- /3s)x2 + aB(1 -- x4) exp (10x2/(1 -t- 10x2/~,)) ~- ~20c2 = 0.
Here v, B, ~1, ~2, 0o~, 0c~, and a are physical parameters. The dependence xs (~) is
shown in Figure 2. Generally speaking, it is always convenient to transform the
unknowns x~, x ~ , . . . , x~, a so that their values are of similar magnitude.
Applicability. This program can be used in the computation of the dependence
of a solution on a parameter for sets of nonline£r equations, for nonlinear boundary
value problems for ordinary differential equations [6, 77, for difference equations
[8], etc.
ACKNOWLEDGMENTS
The author would like to thank the referee for his very valuable comments.
REFERENCES
ALGORITHM
SUBROUTINE D E R P A R ( N , X, XLOW, XUPP, EPS, W, I N I T A L , ITIN, HH, DER 10
* HMAX, PREF, NDIR, E, M X A D M S , N C O R R , N C R A D , NOUT, OUT, DER 20
* M A X O U T , NPRNT) DER 30
DIMENSION X(II), XLOW(II), XUPP(II), W(II), HMAX(II), DER 40
* PREF(II), NDIR(II), OUT(100,12), F(II), G ( 1 0 , 1 1 ) , B E T A ( I I ) , DER 50
* MARK(If), DXDT(II) DER 60
C O B T A I N I N G OF D E P E N D E N C E OF S O L U T I O N X ( A L F A ) OF E Q U A T I O N DER 70
C F ( X , ALFA ) = 0 DER 80
C O N P A R A M E T E R A L F A BY M O D I F I E D M E T H O D O F D I F F E R E N T I A T I O N DER 90
C W I T H R E S P E C T TO P A R A M E T E R DER 100
C N - N U M B E R O F U N K N O W N S X(I) DER 110
C X(1), .... X(N) - I N I T I A L V A L U E S O F X ( I ) , A F T E R R E T U R N F I N A L V A L U E S DER 120
C OF X(I) DER 130
C X(N+I) - I N I T I A L V A L U E O F P A R A M E T E R ALFA, A F T E R R E T U R N F I N A L V A L U E DER 140
C OF A L F A DER 150
C XLOW(1),...,XLOW(N) - L O W E R B O U N D S F O R X(I) DER 160
C X U P P ( 1 ) .... ,XUPP(N) - U P P E R B O U N D S F O R X(I) DER 170
C XLOW(N+I),XUPP(N+I) - LOWER AND UPPER BOUNDS FOR ALFA DER 180
C IF X L O W O R X U P P IS E X C E E D E D , T H E N E N D O F D E R P A R DER 190
C AND MAXOUT=-2 AFTER RETURN DER 200
C EPS - A C C U R A C Y D E S I R E D IN N E W T O N I T E R A T I O N F O R DER 210
C S U M OF ( W ( I ) * A B S ( X N E W ( I ) - X O L D ( I ) ) ) , I=l, .... N + I DER 220
C W(1),...,W(N+I) - W E I G H T S U S E D IN T E R M I N A T I O N C R I T E R I O N OF N E W T O N DER 230
C PROCESS DER 240
C I N I T A L - IF ( I N I T A L . N E . 0 ) T H E N S E V E R A L S T E P S IN N E W T O N I T E R A T I O N DER 250
C ARE MADE BEFORE COMPUTATION IN O R D E R TO I N C R E A S E DER 260
C A C C U R A C Y OF I N I T I A L P O I N T - DER 270
C IF ( I N I T A L . E Q . I . A N D . E P S - A C C U R A C Y IS N O T F U L F I L L E D IN I T I N DER 280
C ITERATIONS) THEN RETURN. IF ( I N I T A L . E Q . 2 ) THEN ALWAYS RETURN DER 290
C A F T E R I N I T I A L N E W T O N I T E R A T I O N , R E S U L T S A R E IN X. DER 300
C IF ( I N I T A L . E Q . 3 ) T H E N C O N T I N U E IN D E R P A R A F T E R I N I T I A L N E W T O N . DER 310
C IF ( I N I T A L . E Q . 0 ) T H E N NO I N I T I A L N E W T O N I T E R A T I O N IS USED. DER 320
C ITIN - MAXIMAL N U M B E R OF I N I T I A L N E W T O N I T E R A T I O N S . IF DER 330
C EPS-ACCURACY IS N O T F U L F I L L E D IN ITIN I T E R A T I O N S T H E N DER 340
C ITIN=-I AFTER RETURN. DER 350
C HH - I N T E G R A T I O N S T E P A L O N G A R C L E N G T H O F S O L U T I O N L O C U S DER 360
C HMAX(1),...,HMAX(N+I) - U P P E R B O U N D S F O R I N C R E M E N T S OF X(I) IN DER 370
C O N E I N T E G R A T I O N S T E P ( A P P R O X I M A T I O N ONLY) DER 380
C PREF(1),...,PREP(N+I) - PREFERENCE NUMBERS ( E X P L A N A T I O N SEE IN DER 390
C SUBR.GAUSE) DER 400
C NDIR(1),...,NDIR(N+I) - I N I T I A L C H A N G E O F X(I) IS P O S I T I V E A L O N G DER 410
C S O L U T I O N L O C U S (CURVE) IF N D I R ( I ) = I A N D N E G A T I V E IF DER 420
C NDIR(I)=-I. DER 430
C E - C R I T E R I O N F O R T E S T ON C L O S E D C U R V E , IF DER 440
C (SUM OF ( W ( 1 ) * A B S ( X ( I ) - X I N I T I A L ( I ) ) ) , I = I ..... N + I ) . L E . E ) DER 450
C T H E N C L O S E D C U R V E M A Y BE E X P E C T E D . DER 460
C MXADMS - MAXIMAL O R D E R OF A D A M S - B A S H F O R T H FORMULA, DER 470
C I.LE.MXADMS.LE.4. DER 480
C NCORR - MAXIMAL N U M B E R OF N E W T O N C O R R E C T I O N S A F T E R P R E D I C T I O N DER 490
C BY A D A M S - B A S H F O R T H METHOD. DER 500
C N C R A D - IF ( N C R A D . N E . 0 ) THEN ADDITIONAL NEWTON CORRECTION DER 510
C W I T H O U T N E W C O M P U T A T I O N OF J A C O B I A N M A T R I X IS USED. DER 520
C N O U T - A F T E R R E T U R N N U M B E R OF C A L C U L A T E D P O I N T S ON T H E C U R V E DER 530
C X(ALFA), NOUT.LE.MAXOUT. DER 540
C OUT(J,I),OUT(J,2),...,OUT(J,N+I) - J - T H P O I N T X(1), .... X ( N ) , A L F A DER 550
C ON CURVE X(ALFA) DER 560
C OUT(J,N+2) - V A L U E OF S Q R T ( S U M OF S Q U A R E S OF F). DER 570
C IF ( O U T ( J , N + 2 ) . L T . 0 . 0 ) T H E N A B S ( O U T ( J , N + 2 ) ) C O R R E S P O N D S TO X DER 580
C AND ALFA NOT EXACTLY, BECAUSE ADDITIONAL NBWTON CORRECTION WAS DER 590
C U S E D ( N C R A D . N E . 0) . DER 600
C V A L U E S F(I) A R E N O T C O M P U T E D F O R X A N D A L F A P R I N T E D A N D / O R DER 610
C S T O R E D A N D T H E R E F O R E L A S T T I M E C O M P U T E D V A L U E OF S Q R T ( S U M OF DER 620
C S Q U A R E S OF F) IS ON O U R D I S P O S A L ONLY. DER 630
C M A X O U T - M A X I M A L N U M B E R OF C A L C U L A T E D P O I N T S ON C U R V E X ( A L F A ) . DER 640
C IF M A X O U T A F T E R R E T U R N E Q U A L S T O - DER 650
C -I - T H E N C L O S E D C U R V E X ( A L F A ) M A Y BE E X P E C T E D DER 660
C -2 - T H E N B O U N D X L O W O R X U P P W A S E X C E E D E D DER 670
C -3 - T H E N S I N G U L A R J A C O B I A N M A T R I X O C C U R R E D , ITS R A N K IS DER 680
C .LT. N. DER 690
C N P R N T - IF ( N P R N T . E Q . 3 ) T H E N R E S U L T I N G P O I N T S ON C U R V E X ( A L F A ) DER 700
C ARE IN A R R A y OUT( , ) A F T E R R E T U R N . IF ( N P R N T . E Q . I ) T H E N T H E S E DER 710
C P O I N T S ARE P R I N T E D O N L Y . IF ( N P R N T . E Q . 2 ) T H E N T H E S E P O I N T S A R E DER 720
C B O T H P R I N T E D A N D IN A R R A Y OUT. DER 730
C S U B R O U T I N E F C T N M U S T BE P R O G R A M M E D IN F O L L O W I N G F O R M - DER 740
C S U B R O U T I N E F C T N (N,X, F,G) DER 750
C DIMENSION X(II),F(10),G(10,11) DER 760
C F ( I ) = FI ( X ( 1 ) , X ( 2 ) , .... X ( N ) , A L F A ) F O R I=i ..... N DER 770
C G ( I , J ) = D FI (X(1) ..... X ( N ) , A L F A ) / D X(J) F O R I,J=l, .... N DER 780
C G ( I , N + I ) = D FI (X(1) ..... X ( N ) , A L F A ) / D A L F A F O R I=l, .... N DER 790
C RETURN DER 800
C END DER 810
D A T A INDIC, I N D S P / I H * , I H / DER 820
C LW IS P R I N T E R D E V I C E N U M B E R DER 030
N1 = N + 1 DER 840
LW = 3 DER 850
IF (INITAL) 10, 60, 10 DER 860
C INITIAL NEWTON ITERATIONS DER 870
10 DO 40 L = I , I T I N DER 880
C A L L F C T N ( N , X, F, G) DER 890
S Q U A R = 0.0 DER 900
DO 20 I = I , N DER 910
SQUAR = SQUAR + F(I)**2 DER 920
20 CONTINUE DER 938
LL = L- 1 DER 940
SQUAR = SQRT(SQUAR) DER 950
IF ( N P R N T . N E . 3 ) W R I T E ( L W , 9 9 9 9 9 ) LL, ( X ( I ) , I = I , N I ) , S Q U A R DER 960
C A L L G A U S E ( N , G, F, M, 10, II, PREF, BETA, K) DER 970
IF (M.EQ.0) G O TO 310 DER 980
P = 0.0 DER 990
DO 30 J = I , N I DER 1000
X(J) = X(J) -'F(J) DER 1010
P = P + ABS(F(J))*W(J) DER 1020
30 CONTINUE DER 1030
IF ( P . L E . E P S ) G O TO 50 DER 1040
48 C O N T I N U E DER 1050
W R I T E (LW,99998) ITIN DER 1060
I T I N = -i DER 1078
IF ( I N I T A L . E Q . I ) R E T U R N DER 1080
50 IF ( N P R N T . N E . 3 ) W R I T E (LW,99997) ( X ( I ) , I = I , N I ) DER 1090
IF ( I N I T A L . E Q . 2 ) R E T U R N DER 1180
C AFTER INITIAL NEWTON ITERATIONS DER 1110
60 IF ( N P R N T . N E . 3 ) W R I T E ( L W , 9 9 9 9 6 ) DER 1120
KOUT = 0 DER 1130
NOUT = 0 DER 1140
MADMS = 0 DER 1150
NC = 1 DER 1160
K1 = 0 DER 1170
70 C A L L F C T N ( N , X, F, G) DER 1180
S Q U A R = 0. @ DER 1190
DO 80 I = I , N DER 1200
SQUAR = SQUAR + F(I)**2 DER 1210
80 C O N T I N U E DER 1220
C A L L G A U S E ( N , G, F, M, 10, ii, PREF, BETA, K) DER 1230
IF (M.EQ.0) G O T O 310 DER 1240
IF (KI.EQ.K) G O T O 9@ DER 1250
C C H A N G E OF I N D E P E N D E N T V A R I A B L E (ITS I N D E X = K NOW) DER 1260
MADMS = 0 DER 1270
K1 = K DER 1280
90 S Q U A R = S Q R T ( S Q D A R ) DER 1290
IF ( N C R A D . E Q . I ) S Q U A R = - S Q U A R DER 1300
P = 0.0 DER 1310
DO 1 0 0 I = I , N I DER 1320
P = P + W(I)*ABS(F(I)) DER 1330
S U B R O U T I N E A D A M S ( N , D, M A D M S , H, X, MXADMS) ADA 10
D I M E N S I O N D E R ( 4 , 1 1 ) , X ( I I ) , D(II) ADA 20
C ADAMS-BASHFORTH METHODS ADA 30
N1 = N + 1 ADA 40
DO 20 I=1,3 ADA 50
DO 10 J = I , N I ADA 60
DER(I+I,J) = DER(I,J) ADA 70
10 CONTINUE ADA 80
20 C O N T I N U E ADA 90
MADMS = MADMS + 1 ADA 100
IF ( M A D M S . G T . M X A D M S ) M A D M S = M X A D M S ADA 110
IF ( M A D M S . G T . 4 ) M A D M S = 4 ADA 120
DO 70 I = I , N I ADA 130
D E R ( I , I ) = D(I) ADA 140
GO TO (30, 40, 50, 60), M A D M S ADA 150
30 X(I) = X(I) + H * D E R ( I , I ) ADA 160
GO TO 70 ADA 170
40 X(I) = X(I) + 0 . 5 * H * ( 3 . 0 * D E R ( I , I ) - D E R ( 2 , I ) ) ADA 180
GO TO 70 ADA 190
50 X(I) = X(I) + H * ( 2 3 . 0 * D E R ( I , I ) - I 6 . 0 * D E R ( 2 , I ) + 5 . 8 * D E R ( 3 , I ) ) / ADA 200
* 12.0 ADA 210
GO TO 70 ADA 220
60 X(I) = X(I) + H * ( 5 5 . 0 * D E R ( I , I ) - 5 9 . 0 * D E R ( 2 , I ) + 3 7 . 0 * D E R ( 3 , I ) ADA 230
* -9.0*DER(4,I))/24.0 ADA 240
70 C O N T I N U E ADA 250
RE~URN ADA 260
END ADA 270