Rechnung in Python?

3 Antworten

Die sin-Funktion, so wie sie in der math-Bibliothek in Python definiert ist, arbeitet mit Winkeln im Bogenmaß, statt mit Winkeln im Gradmaß.

https://de.wikipedia.org/wiki/Radiant_(Einheit)

Allgemein ist das auch ein Problem, welches viele Schüler im Mathematik-Unterricht häufig mit ihren Taschenrechnern haben, wenn es um Trigonometrie geht... Die Schüler haben ihre Taschenrechner teilweise aufs Bogenmaß eingestellt, wollen die Winkel aber im Gradmaß eingeben, was dann zu unerwarteten Ergebnissen führt.

======Lösung des Problems======

Rechne die Winkel vom Gradmaß ins Bogenmaß um (indem du mit π/180° multiplizierst), bevor du die Winkel in die sin-Funktion einsetzt.

Im konkreten Fall...

from math import sin, pi

alpha_deg = 40 # Winkel im Gradmaß
beta_deg  = 60 # Winkel im Gradmaß
c = 15 # Seitenlänge in cm

gamma_deg = 180 - alpha_deg - beta_deg # Winkel im Gradmaß

beta = beta_deg * pi/180 # Winkel im Bogenmaß
gamma = gamma_deg * pi/180 # Winkel im Bogenmaß

b = c * sin(beta)/sin(gamma) # Seitenlänge in cm

======Ergänzung======

Bzw. ist mir gerade aufgefallen, dass es in der math-Bibliothek auch die folgenden beiden Funktionen gibt, die man nutzen kann:

  • math.radians() rechnet vom Gradmaß ins Bogenmaß um.
  • math.degrees() rechnet vom Bogenmaß ins Gradmaß um.

Dementsprechend könnte man das Beispiel auch folgendermaßen umschreiben:

from math import sin, radians

alpha_deg = 40 # Winkel im Gradmaß
beta_deg  = 60 # Winkel im Gradmaß
c = 15 # Seitenlänge in cm

gamma_deg = 180 - alpha_deg - beta_deg # Winkel im Gradmaß

beta = radians(beta_deg) # Winkel im Bogenmaß
gamma = radians(gamma_deg) # Winkel im Bogenmaß

b = c * sin(beta)/sin(gamma) # Seitenlänge in cm

======Ergänzung======

Bzw. wenn du sowieso im Gradmaß rechnen möchtest, könntest du auch die sin-Funktion umdefinieren, sodass diese mit Winkeln im Gradmaß arbeitet. Beispielsweise so...

from math import sin as sin_rad
from math import radians
sin = lambda w : sin_rad(radians(w))

alpha = 40 # Winkel im Gradmaß
beta  = 60 # Winkel im Gradmaß
c = 15 # Seitenlänge in cm

gamma = 180 - alpha - beta # Winkel im Gradmaß

b = c * sin(beta)/sin(gamma) # Seitenlänge in cm

TimeTravel3 
Beitragsersteller
 26.12.2022, 20:32

Ah dankeschön, aber was macht dann die degrees() funktion?

0
mihisu  26.12.2022, 20:38
@TimeTravel3

Die degrees()-Funktion aus der math-Bibliothek rechnet Winkel vom Bogenmaß ins Gradmaß um.

Der Winkel π/6 (≈ 0,5236) im Gradmaß entspricht beispielsweise dem Winkel 30° im Gradmaß. Wenn man nun π/6 an die degrees()-Funktion übergibt, erhält man 30 als Ergebnis zurück. Der folgende Code...

from math import degrees, pi
alpha_rad = pi/6
alpha_deg = degrees(alpha_rad)
print(f"{alpha_rad} = {alpha_deg}°")

... liefert beispielsweise die folgende Ausgabe als Ergebnis...

0.5235987755982988 = 29.999999999999996°
1

Die Trigonometrischen Funktionen in Python arbeiten mit dem Bogenmaß, du gibst die Winkel aber im Gradmaß an. Du musst es also vorher umwandeln.

Entweder du machst es per Hand oder du nutzt math.radians(Winkel)

alpha, beta ist in Grad und sin akzeptiert Radiant, oder?


TimeTravel3 
Beitragsersteller
 26.12.2022, 20:14

Stimmt, das war der fehler

1