⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 balanc.pas

📁 Delphi Pascal 数据挖掘领域算法包 数值算法大全
💻 PAS
字号:
PROCEDURE balanc(VAR a: glnpnp; n: integer);
(* Programs using routine BALANC should define the type
TYPE
   glnpnp = ARRAY [1..np,1..np] OF real;
where 'np by np' is the physical dimension of the array to be analyzed. *)
CONST
   radix=2.0;
VAR
   last,j,i: integer;
   s,r,g,f,c,sqrdx: real;
BEGIN
   sqrdx := sqr(radix);
   REPEAT
      last := 1;
      FOR i := 1 TO n DO BEGIN
         c := 0.0;
         r := 0.0;
         FOR j := 1 TO n DO
            IF (j <> i) THEN BEGIN
               c := c+abs(a[j,i]);
               r := r+abs(a[i,j])
            END;
         IF ((c <> 0.0) AND (r <> 0.0)) THEN BEGIN
            g := r/radix;
            f := 1.0;
            s := c+r;
            WHILE (c < g) DO BEGIN
               f := f*radix;
               c := c*sqrdx
            END;
            g := r*radix;
            WHILE (c > g) DO BEGIN
               f := f/radix;
               c := c/sqrdx
            END;
            IF ((c+r)/f < 0.95*s) THEN BEGIN
               last := 0;
               g := 1.0/f;
               FOR j := 1 TO n DO a[i,j] := a[i,j]*g;
               FOR j := 1 TO n DO a[j,i] := a[j,i]*f
            END
         END
      END;
   UNTIL (last <> 0)
END;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -