cos verrechnet sich.

OP #1903787
Lesenswert?

Hi,
ich will in meinem Programm den cosinus von einem Winkel berechnen.
Ich benutze einen ATmega128 und win-avr-gcc.
In meine h-File habe ich per
1
 #include <math.h>
 die Mathebibliothek eingebunden.
Ich will den Winkel von 53° berechnen. Laut Taschenrechner: 0,601815
aber nach mein µC ist
1
 cos(53);
, nachdem ich das per UART mittels
1
dtostrf(cos( 53 ), 15, 9, buffer)
 ausgebenen habe: -0.918282810

Kann mir mal jemand bitte nen Tipp geben! Dank!
Gast #1903805
Lesenswert?

Der Cosinus von 53 ist im Gradmaß ~0,6.
Im Bogenmaß ist das Ergebnis tatsächlich ~-9,2!

Man geht beim Bogenmaß nämlich nicht von einem Vollkreis mit 360°, 
sondern mit 2Pi aus. Das ist nämlich der Umfang des Einheitskreises.

Umrechnen kann man mit dem Umstellen der folgenden Gleichung:

Gradmaßwinkel / 180° = Bogenmaßwinkel / Pi

Da deine Funktion mit dem Bogenmaß rechnet, musst du den Gradmaßwinkel 
vorher in einen Bogenmaßwinkel umrechnen und dann erst den Cosinus 
ausrechnen:

Bogenmaßwinkel = Gradmaßwinkel / 180° * Pi
Persönliche Seite #1903854
Lesenswert?

Matze: Geh mal nicht immer davon aus dass sich millionenfach bewaehrte 
und getestete Hardware bzw. Software "verrechnet", nur weil Du nicht 
damit umgehen kannst. Es gehoert nen bissel zum Lernprozess dazu, sich 
klar zu  machen, dass der Fehler wahrscheinlich bei Dir selber zu suchen 
ist oder es an verstaendnis mangelt ;) In diesem Fall haette es z.B. 
geholfen, das manual zur Funktion zu lesen.
1
$ man 3 cos
2
...
3
DESCRIPTION
4
       The cos() function returns the cosine of x, where x is given in radians.

Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren