home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / nrpas / elmhes.dem < prev    next >
Text File  |  1994-04-11  |  1KB  |  52 lines

  1. PROGRAM d11r6(input,output);
  2. (* driver for routine ELMHES *)
  3. CONST
  4.    np=5;
  5. TYPE
  6.    glnp = ARRAY [1..np] OF real;
  7.    glnpnp = ARRAY [1..np,1..np] OF real;
  8. VAR
  9.    i,j : integer;
  10.    a : glnpnp;
  11.    c,r : glnp;
  12.  
  13. (*$I MODFILE.PAS *)
  14. (*$I BALANC.PAS *)
  15.  
  16. (*$I ELMHES.PAS *)
  17.  
  18. BEGIN
  19.    a[1,1] := 1.0; a[1,2] := 2.0; a[1,3] := 300.0;
  20.    a[1,4] := 4.0; a[1,5] := 5.0;
  21.    a[2,1] := 2.0; a[2,2] := 3.0; a[2,3] := 400.0;
  22.    a[2,4] := 5.0; a[2,5] := 6.0;
  23.    a[3,1] := 3.0; a[3,2] := 4.0; a[3,3] := 5.0;
  24.    a[3,4] := 6.0; a[3,5] := 7.0;
  25.    a[4,1] := 4.0; a[4,2] := 5.0; a[4,3] := 600.0;
  26.    a[4,4] := 7.0; a[4,5] := 8.0;
  27.    a[5,1] := 5.0; a[5,2] := 6.0; a[5,3] := 700.0;
  28.    a[5,4] := 8.0; a[5,5] := 9.0;
  29.    writeln('***** original matrix *****');
  30.    FOR i := 1 to np DO BEGIN
  31.       FOR j := 1 to np DO write(a[i,j]:12:2);
  32.       writeln
  33.    END;
  34.    writeln('***** balance matrix *****');
  35.    balanc(a,np);
  36.    FOR i := 1 to np DO BEGIN
  37.       FOR j := 1 to np DO write(a[i,j]:12:2);
  38.       writeln
  39.    END;
  40.    writeln('***** reduce to hessenberg form *****');
  41.    elmhes(a,np);
  42.    FOR j := 1 to np-2 DO BEGIN
  43.       FOR i := j+2 to np DO BEGIN
  44.          a[i,j] := 0.0
  45.       END
  46.    END;
  47.    FOR i := 1 to np DO BEGIN
  48.       FOR j := 1 to np DO write('  ',a[i,j]:11);
  49.       writeln
  50.    END
  51. END.
  52.