home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Science / Science.zip / det0798.zip / DET.CMD < prev    next >
OS/2 REXX Batch file  |  1998-07-04  |  6KB  |  117 lines

  1. /*                         Programm  Det.cmd                                */
  2. /*                                                                          */
  3. /*   Det.cmd kann aus einer quadratischen Matrix mit 20 mal 20 Elementen    */
  4. /*                                                                          */
  5. /*   Determinanten   (bezogen auf die "obere linke Ecke")                   */
  6. /*                                                                          */
  7. /*                         mit  2  mal  2 ,                                 */
  8. /*                         mit  3  mal  3 ,                                 */
  9. /*                         mit  4  mal  4 ,                                 */
  10. /*                         mit ... mal ...,                                 */
  11. /*                         mit ... mal ...,                                 */
  12. /*                         mit  20 mal  20 Elementen                        */
  13. /*                                                                          */
  14. /*   berechnen.                                                             */
  15. /*                                                                          */
  16. /*   Dazu muß von dem Programm, das Det.cmd aufruft, die Anzahl R           */
  17. /*   (R = Anzahl der Reihen = Anzahl der Spalten) und durch ein Komma       */
  18. /*   getrennt, die Datei Matrix20 aufgerufen werden,                        */
  19. /*   in der die 20 mal 20 Elemente der Matrix stehen, aus der die           */
  20. /*   verschiedenen Determinanten (bezogen auf die "obere linke Ecke")       */
  21. /*   berechnet werden sollen.                                               */
  22.  
  23.  
  24. NUMERIC DIGITS 65
  25. NUMERIC FUZZ 3
  26.  
  27. arg R,
  28. a.1.1   a.1.2   a.1.3   a.1.4   a.1.5   a.1.6   a.1.7   a.1.8   a.1.9   a.1.10,
  29. a.1.11  a.1.12  a.1.13  a.1.14  a.1.15  a.1.16  a.1.17  a.1.18  a.1.19  a.1.20,
  30. a.2.1   a.2.2   a.2.3   a.2.4   a.2.5   a.2.6   a.2.7   a.2.8   a.2.9   a.2.10,
  31. a.2.11  a.2.12  a.2.13  a.2.14  a.2.15  a.2.16  a.2.17  a.2.18  a.2.19  a.2.20,
  32. a.3.1   a.3.2   a.3.3   a.3.4   a.3.5   a.3.6   a.3.7   a.3.8   a.3.9   a.3.10,
  33. a.3.11  a.3.12  a.3.13  a.3.14  a.3.15  a.3.16  a.3.17  a.3.18  a.3.19  a.3.20,
  34. a.4.1   a.4.2   a.4.3   a.4.4   a.4.5   a.4.6   a.4.7   a.4.8   a.4.9   a.4.10,
  35. a.4.11  a.4.12  a.4.13  a.4.14  a.4.15  a.4.16  a.4.17  a.4.18  a.4.19  a.4.20,
  36. a.5.1   a.5.2   a.5.3   a.5.4   a.5.5   a.5.6   a.5.7   a.5.8   a.5.9   a.5.10,
  37. a.5.11  a.5.12  a.5.13  a.5.14  a.5.15  a.5.16  a.5.17  a.5.18  a.5.19  a.5.20,
  38. a.6.1   a.6.2   a.6.3   a.6.4   a.6.5   a.6.6   a.6.7   a.6.8   a.6.9   a.6.10,
  39. a.6.11  a.6.12  a.6.13  a.6.14  a.6.15  a.6.16  a.6.17  a.6.18  a.6.19  a.6.20,
  40. a.7.1   a.7.2   a.7.3   a.7.4   a.7.5   a.7.6   a.7.7   a.7.8   a.7.9   a.7.10,
  41. a.7.11  a.7.12  a.7.13  a.7.14  a.7.15  a.7.16  a.7.17  a.7.18  a.7.19  a.7.20,
  42. a.8.1   a.8.2   a.8.3   a.8.4   a.8.5   a.8.6   a.8.7   a.8.8   a.8.9   a.8.10,
  43. a.8.11  a.8.12  a.8.13  a.8.14  a.8.15  a.8.16  a.8.17  a.8.18  a.8.19  a.8.20,
  44. a.9.1   a.9.2   a.9.3   a.9.4   a.9.5   a.9.6   a.9.7   a.9.8   a.9.9   a.9.10,
  45. a.9.11  a.9.12  a.9.13  a.9.14  a.9.15  a.9.16  a.9.17  a.9.18  a.9.19  a.9.20,
  46. a.10.1  a.10.2  a.10.3  a.10.4  a.10.5  a.10.6  a.10.7  a.10.8  a.10.9  a.10.10,
  47. a.10.11 a.10.12 a.10.13 a.10.14 a.10.15 a.10.16 a.10.17 a.10.18 a.10.19 a.10.20,
  48. a.11.1  a.11.2  a.11.3  a.11.4  a.11.5  a.11.6  a.11.7  a.11.8  a.11.9  a.11.10,
  49. a.11.11 a.11.12 a.11.13 a.11.14 a.11.15 a.11.16 a.11.17 a.11.18 a.11.19 a.11.20,
  50. a.12.1  a.12.2  a.12.3  a.12.4  a.12.5  a.12.6  a.12.7  a.12.8  a.12.9  a.12.10,
  51. a.12.11 a.12.12 a.12.13 a.12.14 a.12.15 a.12.16 a.12.17 a.12.18 a.12.19 a.12.20,
  52. a.13.1  a.13.2  a.13.3  a.13.4  a.13.5  a.13.6  a.13.7  a.13.8  a.13.9  a.13.10,
  53. a.13.11 a.13.12 a.13.13 a.13.14 a.13.15 a.13.16 a.13.17 a.13.18 a.13.19 a.13.20,
  54. a.14.1  a.14.2  a.14.3  a.14.4  a.14.5  a.14.6  a.14.7  a.14.8  a.14.9  a.14.10,
  55. a.14.11 a.14.12 a.14.13 a.14.14 a.14.15 a.14.16 a.14.17 a.14.18 a.14.19 a.14.20,
  56. a.15.1  a.15.2  a.15.3  a.15.4  a.15.5  a.15.6  a.15.7  a.15.8  a.15.9  a.15.10,
  57. a.15.11 a.15.12 a.15.13 a.15.14 a.15.15 a.15.16 a.15.17 a.15.18 a.15.19 a.15.20,
  58. a.16.1  a.16.2  a.16.3  a.16.4  a.16.5  a.16.6  a.16.7  a.16.8  a.16.9  a.16.10,
  59. a.16.11 a.16.12 a.16.13 a.16.14 a.16.15 a.16.16 a.16.17 a.16.18 a.16.19 a.16.20,
  60. a.17.1  a.17.2  a.17.3  a.17.4  a.17.5  a.17.6  a.17.7  a.17.8  a.17.9  a.17.10,
  61. a.17.11 a.17.12 a.17.13 a.17.14 a.17.15 a.17.16 a.17.17 a.17.18 a.17.19 a.17.20,
  62. a.18.1  a.18.2  a.18.3  a.18.4  a.18.5  a.18.6  a.18.7  a.18.8  a.18.9  a.18.10,
  63. a.18.11 a.18.12 a.18.13 a.18.14 a.18.15 a.18.16 a.18.17 a.18.18 a.18.19 a.18.20,
  64. a.19.1  a.19.2  a.19.3  a.19.4  a.19.5  a.19.6  a.19.7  a.19.8  a.19.9  a.19.10,
  65. a.19.11 a.19.12 a.19.13 a.19.14 a.19.15 a.19.16 a.19.17 a.19.18 a.19.19 a.19.20,
  66. a.20.1  a.20.2  a.20.3  a.20.4  a.20.5  a.20.6  a.20.7  a.20.8  a.20.9  a.20.10,
  67. a.20.11 a.20.12 a.20.13 a.20.14 a.20.15 a.20.16 a.20.17 a.20.18 a.20.19 a.20.20
  68.  
  69.  
  70. S=1; y=1
  71. anf:
  72. if (1+a.S.S)<>1 then SIGNAL d
  73.  
  74.    i=S
  75.    do k=S+1 to R
  76.       if (1+a.k.i)<>1 then
  77.          do
  78.             do j=S to R
  79.                a.i.j = a.i.j + a.k.j
  80.             end
  81.           SIGNAL d
  82.          end
  83.    end
  84.  
  85.    k=S
  86.    do j=S+1 to R
  87.       if (1+a.k.j)<>1 then
  88.          do
  89.             do i=1 to R
  90.                a.i.k = a.i.k + a.i.j
  91.             end
  92.           SIGNAL d
  93.          end
  94.    end
  95.  
  96.    y=0; SIGNAL ende
  97.    d: y=y*a.S.S
  98.  
  99.    l=S
  100.    do i=S+1 to R
  101.       if (1+a.i.l)<>1 then
  102.          do
  103.              f.i.l = -a.i.l/a.l.l
  104.                 do j=S to R
  105.                    a.i.j = a.i.j + f.i.l * a.l.j
  106.                 end
  107.          end
  108.    end
  109.  
  110. S=S+1;
  111. if S<R then SIGNAL anf; else y=y*a.R.R
  112.  
  113. ende:
  114. NUMERIC DIGITS 60; d60=1    /* Der Faktor d60/1 ist wegen der gewünschten */
  115. return(y*d60/1)             /* Ausgabeformates erforderlich.              */
  116. EXIT
  117.