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
probier mal print math.sin(100) wenn dann 1 rauskommt rechnest Du in rad und nicht in grad
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).
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.
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
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
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
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)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.