Forum: PC-Programmierung Sinus berechnen Python


von Gerhard H. (oderlachs)


Lesenswert?

Hallo Freunde !

Irgendwie zweifele ich schon an mir selber. ich möchte in einer 
Pytonprogrammierung den Sinus berechnen, nur kommt da alles anderes, als 
wie gewohnt heraus:

Statt wie "1" von Sinus(90), kommt da 0.893996663601 herraus.

Hier der code :
#!/usr/bin/env python
....

import math
print math.sin(90)
....

>>>
0.893996663601
>>>

Was mache ich falsch ???

Kann bitte mir wer das Brett vorm Kopp entfernen ???

Gruss und Danke

Gerhard

: Verschoben durch Moderator
von Route_66 H. (route_66)


Lesenswert?

probier mal

print math.sin(100)

wenn dann 1 rauskommt rechnest Du in rad und nicht in grad

von Stephan W. (swal)


Lesenswert?

Nee, das stimmt schon. Der Sinus von 90 ist 0.893. Oder willst du den 
Sinus von 90° berechen? Das wäre sin (PI/2).

von Daniel A. (daniel-a)


Lesenswert?

Gerhard H. schrieb:
> Was mache ich falsch ???
>
> Kann bitte mir wer das Brett vorm Kopp entfernen ???

Die verwendete Winkeleinheit ist rad, nicht deg. Du musst es umrechnen. 
Ich glaube der Umrechnungsfaktor rad => deg war PI/180 oder so.

von Gerhard H. (oderlachs)


Lesenswert?

Hallo Leute !

Vielen Dank, ja ich habe mir schon ähnliches gedacht, das die Berechnung 
den Wert 90 nimmt und nicht 90°.
Nur bin ich mit 66 ein wenig lange schon aus der Schule bzw. Arbeit wo 
ich solches noch gebrauchen musste...
Werde sehen das ich ne passende Formel finde um das umzurechnen.
Wollen mal sehen was meine Gymnasium besuchende Enkelin dazu sagt, die 
müssten das ja aus dem Handgelenk wissen.. ;)

Danke, ich melde mich wieder. Es geht mir darum Linien und Kurven zu 
berechnen, zwecks Anzeige auf dem LCD Schirm.

Gerhard

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Gerhard H. schrieb:
> Werde sehen das ich ne passende Formel finde um das umzurechnen

wurde doch schon genannt,

WunschDEG * PI / 180 ergibt deine gewünschte

für 90°/180° = 1/2 -> Pi/2

sin(90 * PI /180) im RAD

weil Kreisfrequenz 2 Pi und 360° ist, Pi 180° ist und Pi/2 90° sind

: Bearbeitet durch User
von Gerhard H. (oderlachs)


Lesenswert?

Habe es nun so gelöst :

>>
import math

winkel = 90

print math.sin((2*math.pi*winkel)/360)
>>
nun kommt 1,0 herraus

Danke für Eure guten Hinweise !!!

Gerhard

von Joachim B. (jar)


Lesenswert?

Gerhard H. schrieb:
> Habe es nun so gelöst :
>
>>>
> import math
>
> winkel = 90
>
> print math.sin((2*math.pi*winkel)/360)
>>>
> nun kommt 1,0 herraus
>
> Danke für Eure guten Hinweise !!!
>
> Gerhard

der arme Compi muss zuviel rechnen

print math.sin(winkel*math.pi/180)

nimm doch das 2/360 kürze zu 1/180 und er spart eine Rechnung (falls es 
der preprozzi nicht macht)
wie schon geschrieben

Joachim B. schrieb:
> sin(winkel * PI /180)

von Sven B. (scummos)


Lesenswert?

Python hat keinen "preprozzi". Aber die eine Division wird den Rechner 
nicht umbringen. Wenn es der Lesbarkeit hilft, ist doch gut.

Da lohnt es sich noch eher zu überlegen, ob man mehrere Werte auf einmal 
mit np.sin berechnen kann. Das bringt nämlich im Gegensatz zu der 
gesparten Division durch 2 wirklich was.

: Bearbeitet durch User
von Yalu X. (yalu) (Moderator)


Lesenswert?

1
>>> from math import *
2
>>> sin(radians(90))
3
1.0

von Tom (Gast)


Lesenswert?

Man macht sich das Leben auf Dauer deutlich einfacher, wenn man sich 
angewöhnt,  ° ausschließlich bei der Ein- und Ausgabe zu verwenden (wenn 
nötig) und intern alle Winkel ausnahmslos im Bogenmaß zu behandeln. 
Durch die Periodizität von sin und cos fallen Fehler, bei denen man das 
*pi/180 vergessen hat, nicht sofort auf, oft kommen zufällig halbwegs 
plausible Werte heraus.
1
from math import *
2
winkel = radians(90)
3
bla = cos(winkel)
4
bla += radians(10)
5
winkel2 = atan2(y,x)
6
print("winkel2 ist %f Grad" % degrees(winkel2))

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.