ASM Projekt 13 - Spezifikation

 

Gliederung

  1. Grundlegende mathematische Überlegungen
  2. Grundlegende Überlegungen zur Umsetzung
  3. Der Algorithmus zum Berechnen des Cosinus
  4. Ausrüstung und Umfeld


Projektüberblick ASM Frames anzeigen
Zurück zur Homepage

Grundlegende mathematische Überlegungen

Die Basis der Berechnung des Cosinus bildet folgende Reihe:

Reihendarstellung des Cosinus

Aus praktischen Überlegungen zur späteren Umsetzung ist die, mit Hilfe des Horner-Schema umgewandelte Formel zu bevorzugen. K bezeichnet hier das sogenannte Restglied.

Nach dem Horner-Schema umgewandelte Reihendarstellung

Das führt auf den Fehler, genauer gesagt den maximalen Fehler, der sich aus dem Restglied xn/(2n) ergibt. Dieses Restglied ist für ein bestimmtes n umso größer, je größer das Argument ist. Da ein größeres Restglied einen größeren Fehler bedeutet, muß, um die Anzahl der Iterationen zu minimieren, das Argument verkleinert werden.

Hierzu rechnet man:

Das Argument modulo zwei

In Worten: Division mit Rest des alten Argumentes xalt durch 2π; der Rest stellt dann aufgrund der Periodizität des Cosinus das neue Argument dar.Somit ergibt sich für das erste, nicht mehr zur Berechnung herangezogene Glied " ± x k/(2k)! " ein maximaler Fehler für den Cosinus von:

Fehlerabschätzung für die Cosinusfunktion

Dies ist zwar schon gut aber es geht noch besser .....

Man ermittelt von dem oben berechneten Argument den Absolutwert und zieht davon π ab. Nach der Taylorreihe stimmt alles bis auf das Vorzeichen → das Ergebnis wird invertiert und wir sind fertig. Der Maximale Fehler für den Cosinus beträgt nunmehr maximal:

Neue Fehlerabschätzung für die Cosinusfunktion




Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Grundlegende Überlegungen zur Umsetzung

Die Berechnung der Fakultäten bei jeder einzelnen Iteration benötigt, insbesondere für größere Zahlen, viel Rechenzeit. Um möglichst effizient vorzugehen, sollen die Zahlen 1 bis (-1)n/(2n)!, mit n=Anzahl der Iterationen, im Programmcode vorliegen und bei der Ausführung direkt in den Speicher geladen werden, wo das Programm sofort auf sie zugreifen kann.

Hierzu schreibt man eine Routine in Delphi, die ein Textfile im ASCII-Code erstellt, in dem die gewünschten Zahlen als 64-Bit Gleitkomma-Werte (LONGREAL-Format) stehen. Hieraus kann man sie dann direkt in den Assembler- Quellcode übernehmen.

Entsprechend geht man vor, um die Zahlen 2π und π in den Quellcode zu integrieren. Dies hat den Vorteil, daß 2π und π nicht mehr berechnet werden müssen, sondern ebenfalls zur Ausführungszeit im Speicher vorliegen.



Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Der Algorithmus zum Berechnen des Cosinus

Als erstes wird der Betrag gebildet, dann muß ein evtl. außerhalb des Bereiches von 0 und 2π liegendes Argument auf einen Wert innerhalb dieses Intervalls umgewandelt werden. Hierzu wird zunächst das ursprüngliche Argument durch 2π geteilt. Dann müßen alle Nachkommestellen des Zwischenergebnisses gelöscht werden, um die so erzeugte ganze Zahl wieder mit 2π zu multiplizieren. Dieser Wert wird dann von dem ursprünglichen Argument abgezogen. Abschließend wird noch π abgezogen.

Im zweiten Teil wird einleitend das neue Argument quadriert (x2) und an einer noch festzulegenden Stelle abgespeichert. Dann kann direkt mit der Abarbeitung des Hornerschemas fortgefahren werden. Hier "arbeitet" man sich sinnvollerweise von innen nach außen vor:

In einer Schleife multipliziert man x2 mit dem letzten Bruch (-1)n/(2n)!, den man zu berücksichtigen gedenkt. Dazu addiert man den darauffolgenden Bruch (-1)n/(2n-2)!. Dann wird wieder mit x2 multipliziert usw. bis zur Addition von 1, womit dann das Hornerschema vollständig ausgeführt wurde; der Wert muß nur mehr invertiert werden. In dem verwendeten Register liegt dann der Cosinus des zu Beginn gegebenen Argumentes.



Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage

Ausrüstung und Umfeld

Zur Realisierung der Aufgabe steht ein IBM-kompatibler PC mit K6-2 Prozessor von AMD mit 300MHz und einem Hauptspeicher von 128MB sowie ein Notebook mit PII-266 und 64MB zur Verfügung.

Die Implemetierung soll mit TurboAssembler/Delphi 4 von Borland erledigt werden. Die Software muß unter Windows 9x und Windows NT 4 (SP3 oder höher) laufen.



Projektüberblick ASM Frames anzeigen Zum Seitenanfang
Zurück zur Homepage