Since considerable effort was required to develop a similar scheme for the n-layer case, the 

 two-layer mode follower will be briefly described to serve as an introduction to the n-layer 

 case. 



The two-layer mode follower employs one iterative step of eq (86) at each point 

 where G is evaluated. Thus, a root that is inexact but sufficiently exact is obtained. The 

 original estimate is obtained by extrapolating from the three most recent roots. If this esti- 

 mate is sufficiently close to the true root, the single iterative step will make a small correc- 

 tion, G/G', that will bring the estimate very close to the true root. By using the size of this 

 correction to control the step size, the program is self-regulating. The program works well 

 when a permissible value of G/G' of 10"^ to 10~4 is used. Outside this interval the step size 

 is either doubled or halved. 



The multiple-layer program differs from this in several details. The extrapolation 

 from the previous three points is done not only for the phase velocity but also for the nu- 

 merical derivative, 



D-1 = Av/AG. 



Lagrange three-point interpolation is used, given by the form 



_ v(X])(x-X2)(x-X3) v(x2)(x-xi) (X-X3) v(x3) (x - xj) (x - X2) 

 (xj -X2)(xi -X3) (xj -X2)(x2-X3) (xj - X3) (x2 - X3) ' 



(87) 



where x is the new value of the parameter that is being varied (usually frequency) and x j , 

 X2, and X3 are the three previous values, xj being the most recent. To extrapolate the 

 derivative, v is replaced by D~l in eq (87). Both quantities are complex numbers. 



The determinant is now evaluated at this new phase velocity to give a value Gg. 

 Next a corrected value of phase velocity, vq, is obtained: 



VQ = v-GqD-1 . (88) 



In the two-layer case, the size of the correction, GD~ , is used to control the step size. 

 Because the numerical derivative is less precise, we evaluate G once more at this new posi- 

 tion, obtaining Gj . A new numerical derivative is next calculated: 



Dq-I = (vQ-v)/(Gi-Go) . 



This derivative is now compared with the extrapolated value to determine whether the step 

 size should be changed. To do this an error 



|l-Do/D|2 



">-5 or>rl in-2 



is computed. Good results have been obtained by keeping E between 10~-* and 10~ . If E 

 becomes larger than this, the step size is halved and the extrapolation is tried again. Should 

 halving the step size five times fail to obtain a value of E less than 10"^, the mode is pre- 

 sumed to be lost and the program halts. 



39 



