Procedure MNEWT(NTRIAL:integer;var X:array of real;N:integer;TOLX,TOLF:real); var ALPHA:matrx2; BETA,INDX:array[0..15] of real; K,I:integer; ERRF,ERRX,D:real; Begin SetLength(ALPHA,16,16); For K:=1 To NTRIAL do begin USRFUN(X, ALPHA, BETA); ERRF:=0; For I:=1 To N do ERRF:=ERRF + Abs(BETA[I]); If ERRF <= TOLF Then Exit; LUDCMP(ALPHA, N, INDX, D); LUBKSB(ALPHA, N, INDX, BETA); ERRX:=0; For I:=1 To N do begin ERRX:=ERRX + Abs(BETA[I]); X[I]:=X[I] + BETA[I]; end; If ERRX <= TOLX Then Exit; end; end;