mnewt.pas
来自「Delphi Pascal 数据挖掘领域算法包 数值算法大全」· PAS 代码 · 共 34 行
PAS
34 行
PROCEDURE mnewt(ntrial: integer; VAR x: glnarray; n: integer;
tolx,tolf: real);
(* Programs using routine MNEWT must define the types
TYPE
glnarray = ARRAY [1..n] OF real;
glnbyn = ARRAY [1..n,1..n] OF real;
glindx = ARRAY [1..n] OF integer;
in the main routine. They must also supply a routine
PROCEDURE usrfun(x: glnarray; n: integer; VAR alpha: glnbyn;
VAR beta: glnarray); *)
LABEL 99;
VAR
k,i: integer;
errx,errf,d: real;
beta: glnarray;
alpha: glnbyn;
indx: glindx;
BEGIN
FOR k := 1 TO ntrial DO BEGIN
usrfun(x,n,alpha,beta);
errf := 0.0;
FOR i := 1 TO n DO errf := errf+abs(beta[i]);
IF (errf <= tolf) THEN GOTO 99;
ludcmp(alpha,n,np,indx,d);
lubksb(alpha,n,np,indx,beta);
errx := 0.0;
FOR i := 1 TO n DO BEGIN
errx := errx+abs(beta[i]);
x[i] := x[i]+beta[i]
END;
IF (errx <= tolx) THEN GOTO 99
END;
99: END;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?