11. Anlage
 
zurück
11.7.2 Anforderungen an die Numerik


Eine Übersetzerimplementierung muß für die Genauigkeit und andere Anforderungen zwei unterschiedliche Modi bereitstellen, "strict mode" und "relaxed mode".

Beachte:
Welcher der beiden Modi "strict mode" oder "relaxed mode" der voreingestellte ist, bleibt der jeweiligen Implementierung überlassen, ebenso, ob beide Modi in der aktuellen Version des Übersetzers unterschiedliche Auswirkungen haben. Unterscheidet sich der Modus "strict mode" vom Modus "relaxed mode", so muß jener sich genau an die Vorgaben des Referenzhandbuches halten.

Das Modell für die Gleitpunktzahlen

Im Modus "strict mode" soll der Überlauf bzw. die Anzeige dieses in den Fällen vermieden werden, die als kanonische Form in Anlage A.5.3 des Refenzhandbuch beschrieben sind.
Außerdem werden in der Anlage A.5.3 die Funktionsweisen der Attribute von Gleitpunktzahlen beschrieben.

Eine Übersetzerimplementierung, die diesen Abschnitt verwirklicht, muß folgende zusätzliche
Anforderungen zu Attributen aus dem Referenzhandbuch Anlage A.5.3 "Attribute von Gleitpunktzahlen"
sowohl im "strict mode" wie auch im "relaxed mode" erfüllen.
Zu folgenden modellorientierten Attributen werden Bedingungen hinzugefügt:
  • Model_Mantissa
  • Model_Emin
  • Safe_First
  • Safe_Last
  • Model
Anlage A.5.3 spezifiziert zudem die Fälle, für die das Ergebnis von Funktionen oder Operationen nicht von dem Referenzhandbuch vorgegeben wird, sondern von der jeweiligen Übersetzerimplementierung abhängig ist.

In diesem Teil werden die Anforderungen an die Genauigkeit an die Arithmetik für Festpunktzahlen im Modus "strict mode" beschrieben. Außerdem wird spezifiziert, wann ein Überlauf vermieden und wann er angezeigt werden soll.
Die impliziten Konversionen zwischen verschiedenen Typen von Festpunktzahlen bei Operationen (Multiplikation, Division usw.) sowie die Genauigkeit des Ergebnisses werden festgelegt, ebenso, wenn einer der beiden Operanden vom Typ Gleitpunktzahl oder ganze Zahl ist.

Die hier angeführten Anforderungen müssen von einer Übersetzerimplementierung nur in dem Modus
"strict mode" erfüllt werden.
Die Genauigkeit der Ergebnisse von elementaren Funktionen wird ebenso spezifiziert, wie die Fälle, in denen es zu einem Überlauf kommen darf. Die maximalen relativen Fehler einer Instanz "EF" des Pakets der generischen elementaren Funktionen ("Numerics.Generic_Elementary_Functions") werden wie folgt festgelegt:
  • 2.0 * EF.Float_Type’Model_Epsilon bei der Wurzel- ("Sqrt"), der Sinus- ("Sin") und der Cosinusfunktion ("Cos").
  • 4.0 * EF.Float_Type’Model_Epsilon bei der Logarithmus- ("Log"), der Exponential- ("Exp"), der Tangens- ("Tan"), der Cotangensfunktion ("Cot") und den zugehörigen inversen Funktionen.
  • 8.0 * EF.Float_Type’Model_Epsilon bei den hyperbolischen Funktionen und ihren Inversen.
Der Typ "Float_Type" ist derjenige Gleitpunktzahlentyp, der als Parameter bei der Instantiierung "EF" angegeben wurde. Die angegebenen Fehler gelten, wenn der "Cycle"-Parameter angegeben wurde.
Wurde er weggelassen, so soll eine Übersetzerimplementierung nur dann den maximalen relativen Fehler einhalten, wenn der Wert des "X"-Parameters kleiner als eine implementierungsabhängige Größe namens "angle threshold" (etwa Winkelschwelle) ist. Diese Größe muß aber einen definierten minimalen Wert überschreiten.
Des weiteren werden im Refenzhandbuch in Anlage G.2.4 in Form einer Tabelle Genauigkeiten für Eckwerte von einigen elementaren Funktionen angegeben.


Die hier geforderten Genauigkeiten sind nur im Modus "strict mode" für die beiden Generatoren von Zufallszahlen verbindlich. Der Zufallszahlengenerator für Gleitpunktzahlen (Paket "Ada.Numerics.Float_Random") und der für diskrete Typen (Paket "Ada.Numerics.Discrete_Random") werden im Refenzhandbuch Anlage A.5.2 beschrieben.

Zufallszahlen werden verwendet, um Simulationen rechnergestützt durchzuführen. Die von Algorithmen produzierten Zahlen sind natürlich keine "echten" Zufallszahlen, da der Algorithmus immer dieselben Werte generiert, wenn die Initialwerte gleich sind. Die genaue Bezeichnung lautet Pseudozufallszahlengeneratoren und Pseudozufallszahlen (aus Bequemlichkeit hat sich die verkürzte Bezeichnung eingebürgert). Verfahren, die ihre Ergebnisse mittels Zufallszahlen gewinnen, werden Monte-Carlo-Methoden genannt. Eine bekannte Methode ist, den Inhalt einer durch eine oder mehrere vorgegebene Funktionen begrenzte Fläche oder das Volumen eines durch ein oder mehrere Flächen begrenzten Körpers zu bestimmen.

Beispiel: Zur Bestimmung des Inhalts einer Kreisfläche wird diese so in ein Quadrat eingebettet, daß sie vollständig von dem Quadrat umschlossen wird. Dann wird der Zufallszahlengenerator so abgestimmt, daß er nur Punkte generiert, die im Inneren des Quadrates liegen. Nun wird bei jedem generierten Punkt geprüft, ob er zufällig auch innerhalb der Kreises liegt. Ein solches Ereignis wird dann Treffer genannt. Aus dem Verhältnis Anzahl generierter Punkte zu Treffern multiplizert mit der einfach zu bestimmenden Fläche des Quadrates läßt sich dann die Kreisfläche abschätzen. Dieser Versuch wurde übrigens tatsächlich einmal real durchgeführt, es wurde eine Münze in ein einen Kreis umfassendes Quadrat geworfen. Das Experiment wurde dazu benutzt, die Zahl Pi experimentell zu bestimmen.

Die Güte von Zufallszahlen hängt zum einen von der Periode ab, mit der sich die Zahlen wiederholen.
Eine Übersetzerimplementierung soll mindestens eine Periode von 231-2 haben, d. h. frühestens nach dieser Anzahl generierter Zahlen darf sich ihre Reihenfolge wiederholen. Da aber die Zahlen wie oben ausgeführt nicht tatsächlich zufällig sind, werden nicht alle möglichen Zahlen bzw. Zahlenabfolgen generiert sondern nur bestimmte. Dadurch kann sich ein Fehler ergeben. Wird nun das Experiment sehr lange durchgeführt und werden dabei mehrere Perioden durchlaufen, so wird die Genauigkeit des Experiments nicht erhöht, wie dies bei "echten" Zufallszahlen der Fall wäre, der Fehler kann sich außerdem akkumulieren, was die Aussagekraft des Computerexperiments stark reduziert. Die Zufallszahlengeneratoren müssen zudem einen Chi-Quadrat-Test bestehen, der eine minimale Gleichmäßigkeit der Verteilung der generierten Zahlen garantiert. Die Gleichmäßigkeit der Verteilung bestimmt als zweiter Parameter die Güte eines Zufallszahlengenerators. Die Gleichmäßigkeit wird wesentlich durch die Anzahl der verschiedenen Zahlen beeinflußt, die generiert werden. Sollen z. B. in dem Intervall 0.0 bis 1.0 Gleitpunktzahlen mit einer Genauigkeit von drei Nachkommastellen generiert werden, so sind insgesamt 1001 verschiedene Zahlen möglich. Werden nur 100 verschiedene Zahlen generiert, so ist die Güte wesentlich geringer, als wenn 800 verschiedene Zahlen generiert werden. Ein Chi-Quadrat-Test ist ein Maß für diese Güte.

Die zeitabhängige Prozedur "Reset", die den Zufallszahlengenerator in einen neuen Anfangszustand versetzt, muß nur dann einen neuen Anfangszustand initiieren, wenn zwischen zwei aufeinanderfolgenden Aufrufen mindestens 1 Sekunde aber höchstens 50 Jahre liegen. Neue Anfangszustände ermöglichen (eventuell nur anfänglich) unterschiedliche Abfolgen von Zufallszahlen während eines Programmlaufs.


Die hier angeführten Anforderungen an die Genauigkeit der komplexen Arithmetik müssen nur im Modus "strict mode" eingehalten werden.
Wird keine Ausnahme ausgelöst, so sollen die Resultate jeder Funktion einer Instanz CT von
"Numerics.Generic_Complex_Types" mit reellem Rückgabewert die Anforderungen an die Genauigkeit erfüllen, wie sie für die reellen elementaren Funktionen definiert sind, siehe "Anforderungen an die Genauigkeit der elementaren Funktionen". Das sind solche Funktionen, die entweder einen Untertyp von CT.Real’Base oder CT.Imaginary als Rückgabetyp aufweisen.
Für verschiedenen Funktionen aus dem Paket "Numerics.Generic_Complex_Elementary_Functions" werden in Form einer Tabelle maximale relative Fehler spezifiziert, siehe Referenzhandbuch Anlage G.2.6. Die Angaben in dieser Tabelle unterscheiden zwischen maximalen relativen Fehlern für jede Komponente einer komplexen Zahl und maximalen Box-Fehlern (maximum box error) für den Fehler der komplexen Zahl als Ganzes ohne Unterscheidung nach Komponenten.

Definition des maximalen relativen Fehlers:

Der maximale relative Fehler gilt jeweils für den reellen und imaginären Teil des komplexen Resultats als relative Abweichung vom exakten,
mathematischen Wert wiederum bezogen auf den reellen und imaginären Teil dieses Wertes.

Definition des maximalen Box-Fehlers:

Der maximale Box-Fehler b wird als Abweichung f * ( 1.0 + d ) vom exakten, mathematischen Wert f beschrieben, wobei d alle komplexe Zahlen durchläuft, die auf der Kreislinie eines Kreises um den Ursprung mit Radius kleiner gleich b liegen.


<Ein weiterführender Hinweis zur geometrischen Interpretation:>

Die geometrische Interpretation ist wie folgt:
Der maximale relative Fehler beschreibt ein Rechteck. Auf der reellen wie imaginären Achse wird je ein Intervall (um den exakten Wert) markiert und diese Intervalle definieren jeweils einen Streifen senkrecht zu den jeweiligen Achsen. Wo beide Streifen sich schneiden, entsteht ein Rechteck.
Dieses Rechteck enthält sowohl den exakten, mathematischen wie auch den durch die Funktion berechneten Wert.
Der maximale Box-Fehler beschreibt einen Kreis. Der Mittelpunkt dieses Kreises ist der exakte, mathematische Wert und der Radius der Betrag des maximalen Box-Fehlers. Der durch die Funktion berechnete Wert liegt in dem Kreis.

Veranschaulichung dieser geometrischen Interpretation:
Funktion F habe den maximalen, relativen Fehler d und Funktion G habe als Betrag des maximalen Box-Fehlers ebenfalls den Wert d. Wird der Inhalt der Fläche (Rechteck und Kreis) als Fehler interpretiert und sind F und G zwei verschiedene Näherungen für ein und dieselbe mathematische Funktion, so kann ein Vergleich beider Flächen Aufschluß darüber geben, welche Funktion (im Mittel) genauer ist. Eine solche Vorgehensweise ist allerdings eine Vereinfachung des ursächlichen
Problems, überhaupt Näherungen für mathematische Funktionen zu finden, das in der systematischen Konstruktion solcher Näherungen und der Bestimmung bzw. Abschätzung ihrer Fehler besteht.


 
zurück
 Index   Ada Tour - Dokumentation  
© 2003 Förderverein Ada Deutschland e.V.