Archiv verlassen und diese Seite im Standarddesign anzeigen : asin in AVR-GCC
Gottfreak
09.02.2005, 15:40
Hi
Ich verwende AVR-GCC und würde gern den ArcusSinus eines Wertes ausrechnen.
In der AVR-LIBC gibt's auch 'ne Bibliothek, in der so 'ne Funktion enthalten ist.
Bloß macht die Beschreibung für mich nicht so viel Sinn:
5.11.3.2 double asin (double x)
The asin() function computes the principal value of the arc sine of x. The returned
value is in the range [0, pi] radians. A domain error occurs for arguments not in the
range [-1, +1].
was kriege ich denn jetzt für negative Werte 'raus?
nochwas zum Thema "ausprobieren": Gibt's ne Bibliothek für AVR-GCC, die Methoden zur Verfügung stellt, mit denen man Zahlen(auch große und negative) formatiert über das UART ausgeben kann?
Zum Formatieren von irgendwas sind "printf" und seine derivate zuständig.
Die asn frage versteh ich nicht ganz. du schmeißt irgendwas von -1 bis +1 rein und kriegst 0-Pi raus. Es gibt immer zwei Lösungen, abgesehen von genau +1 u, -1, die kriegst du genausowenig wie beim Wurzelziehen.
bluebrother
09.02.2005, 17:12
vielleicht is der Knackpunkt einfach der: die Werte sind im Bogenmaß, nicht Gradmaß.
Meinst Du ?
aber zum Rechnen braucht er das sowieso in dieser Form.
Gottfreak
09.02.2005, 18:59
Die asn frage versteh ich nicht ganz. du schmeißt irgendwas von -1 bis +1 rein und kriegst 0-Pi raus. Es gibt immer zwei Lösungen, abgesehen von genau +1 u, -1, die kriegst du genausowenig wie beim Wurzelziehen.
Das ist genau das Problem: arcsin ist im Intervall [0;PI] nicht eindeutig definiert:
Für (0;1) gibt's mehrere Lösungen und für (-1;0) gibt's keine.
Die Sinusfunktion ist im Intervall [0;PI] ja gerade immer positiv(und wie kann es dann ein arcsin von negativen Werten in dem Intervall geben?).
Ich kenn die Funktion nur von [-1;1] auf [-Pi/2;Pi/2].
Zum Formatieren von irgendwas sind "printf" und seine derivate zuständig.
und wo find' ich die in AVR-GCC?
printf is, glaub ich, <stdio.h> da gibts auch irgendeine extended version
type "Help" for help
asn
wenn du -1 reinwirfst, soll er dir nun - PI/2 oder 3* PI/2 auswerfen ?
Den genauen Quadranten mußt du entscheiden
Genauso wie SQR(4) : ist das +2 oder -2 ?
mfg
Gottfreak
09.02.2005, 21:13
wenn du -1 reinwirfst, soll er dir nun - PI/2 oder 3* PI/2 auswerfen ?
Den genauen Quadranten musst du entscheiden
Das ist ja meine Frage: Laut Doku sollte er weder noch ausgeben(ist ja beides nicht im angegebenen Bereich).
type "Help" for help
Wo bitte soll ich das eingeben?
Gottfreak
09.02.2005, 22:19
Ich hab' die Ergebnisse jetzt einfach mal ausgegeben und siehe da: Sie sind im Bereich [-pi/2,pi/2]. Scheint so, als sei die Funktion lediglich falsch dokumentiert.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.