PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Genauigkeit der Rechenbefehler bei Bascom



10.01.2005, 16:34
Hallo,

wie genau ist Bascom beim Rechnen?
Folgender Code berechnet den arctan von 1. Der wäre natürlich 45.0 Grad.


Dim A As Single , B As Single , C As Single , D As Single , E As Single

A = 1 - 0
B = 1 - 0
C = A / B
D = Atn(c)
E = Rad2deg(d)
Do
Print E

Loop
Das Ergebnis ist aber ab der 3. Nachkommastelle falsch. Dies ist in diesem Beispiel nicht so wild, aber in meinem Programm sind A und B Variablen ,die bis auf die 5 Nachkommastelle genau sind und es auch bleiben sollen. Sonst wäre der Fehler zu groß.

Kann mir jemand helfen die Genauigkeit zu steigern?
Danke Arne

x-ryder
10.01.2005, 17:45
es gibt ne Floating Point Library in Bascom die von jemand anderem geschrieben wurde, die heißt "fp-trig.lbx" und dann musste die nur noch einbinden und schon soll alles bis auf ne 23stellige mantisse genau sein!

musst mal inner hilfe (bascom) nach "fp" suchen dann wirste mit nem beispielproggi beraten!

MArtin

oe9vfj
11.01.2005, 07:21
Das Beispiel liefert als Ergebnis 45.000373839 Grad, das ist ein relativer Fehler von 8,3E-6 (8,3 Millionstel).

Bei der Entwicklung der trigonometrischen Funktionen für BASCOM-AVR wurde ein Kompromiss gewählt zwischen der Ergebnis-Genauigkeit auf der einen Seite und der Code-Größe und Rechenzeit auf der anderen Seite. Eine höhere Genauigkeit braucht einen größeren Code zur Berechnung und auch eine längere Rechenzeit.

Könntest Du mal bitte die Art der Applikation angeben, bei welcher eine Abweichung von weniger als einem Tausendstel Grad in Gewicht fällt.

beste Grüße
Josef