home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Science / Science.zip / det0798.zip / Anleitng.TXT next >
Text File  |  1998-07-04  |  11KB  |  212 lines

  1.                Anleitung zur Verwendung der Routine DET_E_A.CMD
  2.                ================================================
  3.                            (Datei: Anleitng.TXT)
  4.  
  5.  
  6. Die Routine DET_E_A.CMD dient der Eingabe von Zahlenwerten für die verschiede-
  7. nen Matrixelemente mit Hilfe eines Texteditors. Daher darf diese Routine nicht
  8. das Attribut R (read only) haben. Als Kommandozeilen-Parameter wird der Routine
  9. DET_E_A.CMD die Ordnung (2 bis 20) der zu berechnenden Determinante übergeben.
  10. Die Routine DET.CMD enthält den Gauss-Jordan-Algorithmus zur Berechnung von
  11. Determinanten. Sie hat das Attribut R (read only). DET_E_A.CMD und DET.CMD
  12. müssen sich im selben Verzeichnis befinden.
  13.  
  14. Es wäre keine Problem, die Routinen DET_E_A.CMD uns DET.CMD zu einer Routine
  15. zu vereinigen. Dies ist jedoch absichtlich nicht geschehen, weil bei der
  16. Eingabe von Zahlenwerten für die verschiedenen Matrixelemente mit Hilfe eines
  17. Texteditors, wie es bei der Routine DET_E_A.CMD erforderlich ist, versehent-
  18. lich der Quelltext des Gauss-Jordan-Algorithmus beschädigt werden könnte, der
  19. bei der hier gegebenen Aufteilung in zwei getrennte Routinen in DET.CMD sicher
  20. vor einer versehentlichen Beschädigung ist.
  21.  
  22. In der Routine DET_E_A.CMD sind in deren "Urzustand" 400 Elementen, nämlich
  23. den 20 mal 20 Elementen einer quadratischen Matrix bereits Zahlenwerte zuge-
  24. wiesen worden. Hierbei ist es gleichgültig, ob diese Zahlenwerte zum Beispiel
  25. in der Form 3.4501, in der Form 34501E-4 oder in der Form .34501E+1 geschrie-
  26. ben worden sind. Es  m ü s s e n  immer 400 Zahlenwerte eingetragen bleiben,
  27. da sonst eine Fehlermeldung ausgegeben wird. Da aber diesen 400 Elementen ihre
  28. Zahlenwerte bereits im Urzustand der Routine DET_E_A.CMD zugewiesen worden
  29. sind, bedeutet diese -- für das Zusammenwirken der Routinen DET_E_A.CMD und
  30. DET.CMD zwingende -- Bedingung für den Anwender der Routine DET_E_A.CMD
  31. keinerlei Arbeit.
  32.  
  33. Unter anderem werden diese 400 Zahlenwerte bei jedem Aufruf der Routine
  34. DET_E_A.CMD an die Routine DET.CMD übergeben.
  35.  
  36. Aus dieser (20 mal 20)-Matrix kann man 19 in deren linken oberen Ecke begin-
  37. nende Unterdeterminanten der Ordnungen 2 bis 20 berechnen, die im weiteren
  38. Verlauf dieses Textes als "linksoben-bündige" (Unter)Determinanten bezeichnet
  39. werden. In Bezug auf die (20 mal 20)-Matrix sind diese 19 linksoben-bündigen
  40. (Unter)Determinanten natürlich spezielle Unterdeterminanten, für den Anwender
  41. der Routine DET_E_A.CMD sind sie aber einfach nur Determinanten, die berechnet
  42. werden sollen. Welche von den bei der (20 mal 20)-Matrix möglichen 19 links-
  43. oben-bündigen (Unter)Determinanten berechnet werden soll, muß beim Aufruf der
  44. Routine DET_E_A.CMD als Parameter übergegeben werden.
  45. Zwei Anwendungsbeispiele erläutern die diesbezüglichen Einzelheiten.
  46.  
  47. Wem die in den folgenden zwei Anwendungsbeispielen beschriebene Verfahrensweise
  48. zur Berechnung einer Determinante zu umständlich erscheint, der kann sich damit
  49. trösten, daß auch in so vorzüglichen kommerziellen wissenschaftlichen Program-
  50. men wie MATHEMATICA oder MATLAB die Eingabe der Elemente einer Matrix, deren
  51. Determinante berechnet werden soll, relativ umständlich ist. Ein Vorteil von
  52. DET_E_A.CMD ist, daß die Zuweisung von Zahlenwerten an die Variablen  n0101
  53. bis  n2020  für jede der 20 Zeilen in 20 Einzellisten am Anfang von
  54. DET_E_A.CMD geschehen kann. Daß man bei der Zuweisung von bis zu 400 Zahlen-
  55. werten an die Variablen  n0101  bis  n2020  einen Text-Editor benötigt, dürfte
  56. in den meisten Fällen kein Hindernis sein. Die Eingabe von bis zu 400 Zahlen-
  57. werten für die Variablen  n0101  bis  n2020  beim Aufruf von DET_E_A.CMD als
  58. Kommandozeilen-Parameter wäre um vieles umständlicher und zudem mit einer
  59. größeren Anzahl von Möglichkeiten, Eingabefehler zu machen, verbunden.
  60.                                                                     Seite 2
  61.  
  62. Die Datei DETERG.DAT enthält für die im Urzustand der Routine DET_E_A.CMD
  63. eingestellten Zahlenwerte  n0101  bis  n2020  die Ergebnisse für Det2 bis
  64. Det20, die sowohl mit DET_E_A.CMD mit DET.CMD berechnet worden sind als auch
  65. Vergleichsergebnisse, die mit MATHEMATICA berechnet worden sind.
  66. Die Ergebnisse von DET_E_A.CMD mit DET.CMD bestehen für Ordnungen >10 aus
  67. mehr Dezimalstellen als die von MATHEMATICA ausgegebenen Ergebnisse. (Mir ist
  68. es jedenfalls nicht gelungen, bei der Berechnung von Determinanten MATHEMATICA
  69. zur Ausgabe von mehr als 16 Dezimalstellen zu veranlassen; möglicherweise weis
  70. ich aber nur nicht, wie das gemacht werden muß.) MATHEMATICA bringt die Ergeb-
  71. nisse, wie sie in DETERG.DAT zu finden sind, fast augenblicklich, während
  72. DET_E_A.CMD mit DET.CMD einen mit steigender Ordnung der zu berechnenden
  73. Determinanten ansteigenden Zeitbedarf (bis zu einigen Sekunden).
  74.  
  75. ******************************************************************************
  76.  
  77. Anwendungsbeispiel:
  78. ===================
  79.  
  80. Mit der Anweisung  Det_E_A 4  wird aus der quadratischen (20 mal 20)-Matrix
  81. die linksoben-bündige (4 mal 4)-Determinante berechnet.
  82. Diese (4 mal 4)-Determinante ist eine Determinante, die aus 4 Zeilen und
  83. 4 Spalten mit den 16 Elementen
  84.                                      n0101 n0102 n0103 n0104
  85.                                      n0201 n0202 n0203 n0204
  86.                                      n0301 n0302 n0303 n0304
  87.                                      n0401 n0402 n0403 n0404
  88.  
  89. besteht. Bei dem Aufruf Det_E_A 4 werden von der Routine DET_E_A.CMD zwei
  90. Parameter an die Routine DET.CMD übergeben, nämlich die an die Routine
  91. DET_E_A.CMD als Kommandozeilen-Parameter übergebene Zahl 4 und, für den Anwen-
  92. der unsichtbar, alle 400 Zahlenwerte der 20 mal 20 Matrixelemente, und zwar in
  93. einer aus DET_E_A.CMD ersichtlichen geordneten Form. Der Parameter 4 bedeutet,
  94. daß von der Routine DET.CMD nur die 16 linksoben-bündigen Matrixelemente
  95.  
  96.                                      n0101 n0102 n0103 n0104
  97.                                      n0201 n0202 n0203 n0204
  98.                                      n0301 n0302 n0303 n0304
  99.                                      n0401 n0402 n0403 n0404
  100.  
  101. ausgewertet werden. Soll also die linksoben-bündige (4 Mal 4)-Determinante
  102. der (20 mal 20)-Matrix, deren Zahlenwerte noch die im Urzustand von
  103. DET_E_A.CMD voreingestellten Zahlenwerte sind, berechnet werden, so braucht
  104. der Anwender nur auf der Kommandozeile aus die Anweisung  Det_E_A 4
  105. einzugeben.
  106.  
  107. Im Falle der in der Routine DET_E_A.CMD im Urzustand vorhandenen Zahlenwerte
  108.  
  109.                                      1    2   3   4
  110.                                      4   -2  21  -5
  111.                                      5    2   7  19
  112.                                      1    2   0   9
  113.  
  114. ist der Wert der daraus berechneten Determinante gleich 286 (siehe DETERG.DAT).
  115.                                                                     Seite 3
  116.  
  117. Möchte man, was der Normalfall der Anwendung der Routine DET_E_A.CMD ist,
  118. die Determinante einer (4 mal 4)-Matrix mit bestimmten, von den in der Routine
  119. DET_E_A.CMD im Urzustand voreingestellten Zahlenwerten abweichenden Zahlen-
  120. werten berechnen, so braucht man auch nur 16 neue Zahlenwerte
  121.  
  122.                      n0101 n0102 n0103 n0104
  123.                      n0201 n0202 n0203 n0204
  124.                      n0301 n0302 n0303 n0304
  125.                      n0401 n0402 n0403 n0404
  126.  
  127. mit einem Texteditor in die Routine DET_E_A.CMD einzugeben.
  128.  
  129. Wichtig:
  130.  
  131. Alle übrigen 400-16=384 Zahlenwerte in der Routine DET_E_A.CMD sind für die
  132. Berechnung dieser linksoben-bündigen (4 Mal 4)-Determinante ohne Bedeutung;
  133. man kann sie also so belassen, wie sie gerade sind. Es sei aber daran erinnert
  134. (Seite 1), daß in der Variablenliste von DET_E_A.CMD allen 400 Variablen ein
  135. Zahlenwert zugewiesen sein muß.
  136.  
  137.  
  138. Die Kommandozeilen-Anweisung  Det_E_A 4  bringt das gewünscht neue Ergebnis.
  139.  
  140.  
  141.  
  142.  
  143. Weiteres Anwendungsbeispiel:
  144. ============================
  145.  
  146. Mit der Anweisung  Det_E_A 6  wird aus der quadratischen (20 mal 20)-Matrix
  147. die linksoben-bündige (6 mal 6)-Determinante berechnet.
  148. Diese (6 mal 6)-Determinante bedeutet eine Determinante, die aus 6 Zeilen und
  149. 6 Spalten mit 36 Elementen besteht.
  150.  
  151. Ihre 36 Elemente
  152.                            n0101 n0102 n0103 n0104 n0105 n0106
  153.                            n0201 n0202 n0203 n0204 n0205 n0206
  154.                            n0301 n0302 n0303 n0304 n0305 n0306
  155.                            n0401 n0402 n0403 n0404 n0405 n0406
  156.                            n0501 n0502 n0503 n0504 n0505 n0506
  157.                            n0601 n0602 n0603 n0604 n0605 n0606
  158.  
  159. sind im Falle der in der Routine DET_E_A.CMD im Urzustand vorhandenen
  160. Zahlenwerte
  161.  
  162.                            1    2   3   4   5   6
  163.                            4   -2  21  -5  45  31
  164.                            5    2   7  19   8  -4
  165.                            1    2   0   9   8  24
  166.                            3    0   2  -8   5  18
  167.                            1    2   0  -9   4   4
  168.  
  169. und der Wert der daraus berechneten Determinante ist gleich -740564
  170. (siehe DETERG.dat).
  171.                                                                     Seite 4
  172.  
  173. Möchte man, was der Normalfall der Anwendung der Routine DET_E_A.CMD ist,
  174. die Determinante einer (6 mal 6)-Matrix mit bestimmten, von den in der Routine
  175. DET_E_A.CMD im Urzustand voreingestellten Zahlenwerten abweichenden Zahlen-
  176. werten berechnen, so braucht man auch nur 36 neue Zahlenwerte
  177.  
  178.                           n0101 n0102 n0103 n0104 n0105 n0106
  179.                           n0201 n0202 n0203 n0204 n0205 n0206
  180.                           n0301 n0302 n0303 n0304 n0305 n0306
  181.                           n0401 n0402 n0403 n0404 n0405 n0406
  182.                           n0501 n0502 n0503 n0504 n0505 n0506
  183.                           n0601 n0602 n0603 n0604 n0605 n0606
  184.  
  185. mit einem Texteditor in die Routine DET_E_A.CMD einzugeben, sie deswegen
  186. auch nicht schreibgeschützt sein darf.
  187.  
  188. Am besten macht man sich eine Kopie 
  189.  
  190.         DET_E_A.RES
  191.         
  192. als Reserve, falls man sich bei der Eingabe neuer Werte für
  193. eine Determinante so ausgiebig vertippt hat, daß die Datei zerstört ist.
  194. (Ansonsten ist sie ja auch noch in DET0798.ZIP enthalten. 
  195.                                                          
  196. Wichtig:
  197.  
  198. Alle übrigen 400-36=364 Zahlenwerte in der Routine DET_E_A.CMD sind für die
  199. Berechnung dieser linksoben-bündigen (6 Mal 6)-Determinante ohne Bedeutung;
  200. man kann sie also so belassen, wie sie gerade sind. Es sei aber daran erinnert
  201. (Seite 1), daß in der Variablenliste von DET_E_A.CMD allen 400 Variablen ein
  202. Zahlenwert zugewiesen sein muß.
  203.  
  204. Die Kommandozeilen-Anweisung  Det_E_A 6  bringt das gewünscht neue Ergebnis.
  205.  
  206. ******************************************************************************
  207.  
  208. Hermann Mahr, 04.07.98 
  209. Tel: 49 6151 373802 
  210. Fax: 49 6151 373805 
  211. e-mail: Hermann.Mahr@t-online.de
  212.