Re: Berechnungs fehler bei Horizonthöhe und Azimut
> nur macht mir Azimut noch kein Spaß. Da ist noch ein großer fehler ,je nach wert kann ich von 360°
> oder 180° abziehen um an den richtigen wert zu kommen .
> Zum Beispiel ist mein errechneter wert -78 , muß ich 360+(-78) rechnen um den richtigen wert zu
> haben,
Hier ist ja alles in Ordnung, und dein Ergebnis ist nicht falsch. Bitte beachte, dass
die Winkel sich nach 360° wiederholen, d.h. ein Winkel von z.B. 370° ist physikalisch und
mathematisch dasselbe wie ein Winkel von 10°. Wir können also nach Belieben zu jedem Winkel
360° (oder auch 720° oder 1080°...) addieren und bekommen wieder denselben Winkel,
der jetzt nur durch einen anderen Zahlenwert ausgedrückt ist. Ebenso dürfen wir von jedem
Winkel beliebige Vielfache von 360° abziehen.
Da es bequemer ist, mit Winkeln zwischen 0° und 360° zu arbeiten, macht man sich das gerne
zunutze und addiert oder subtrahiert so lange 360°, bis der Winkel in jenem Bereich liegt.
Übrigens hast du nicht den Winkel von 360° abgezogen (das wäre falsch), sondern (richtig) 360°
zum Winkel addiert, denn du hast ja gerechnet 360 + (-78).
> ist mein wert 78, muß ich 180 - 78 rechnen .
Dann bekommst du den Winkel im falschen Quadranten. Ich kopiere mal meine
Erklärung aus einem anderen Forum hier herein, wo es um einen ähnlichen
Fall ging. In deinem Fall mit dem Azimut geht es um eine etwas andere
Formel, das mit dem Arcustangens verbundene Problem ist aber dasselbe, so
dass du die Lösung leicht auf deinen Fall übertragen kannst:
> l=acos(cos(u)/cos(b))+Knotenlaenge=133.4627309 grad
Brööööp. Falscher Quadrant.
=====================================================================================
Exkurs: Winkelfunktionen und Quadranten.
Der volle Winkel von 360° läßt sich in vier Quadranten aufteilen:
I: 0.. 90°
II: 90..180°
III: 180..270°
IV: 270..360°
Die Winkelfunktionen sin, cos, tan (und andere) liefern jeweils
für Winkel aus zwei verschiedenen Quadranten dasselbe Ergebnis.
Beispiele:
cos(10°) = cos(350°)
sin(40°) = sin(140°)
tan(50°) = tan(230°) etc.
Konsequenz: bei der Ausführung der Umkehrfuktion gibt es stets
_zwei_ Winkel als Lösung. Die normalen Implementationen der
Winkelfunktionen liefern _einen_ davon, das kann aber gerade
der falsche sein. Der arcsin z.B. liefert standardmäßig Winkel
zwischen -90° und 90°, also aus dem I. und IV. Quadranten.
Wenn nun der Sinus des Winkels 150° gegeben ist und der Winkel
rekonstruiert werden soll, dann liefert der arcsin stattdessen
arcsin(0.5) = 30°.
Die Sinusse der Winkel aus dem I. und II. Quadranten haben
positives Vorzeichen, die Sinusse der Winkel aus dem III.
und IV. Quadranten haben negatives Vorzeichen. Ist ein positiver
Sinuswert gegeben, so stammen die beiden zugehörigen Winkel
also aus dem I. und II. Quadranten, aber es läßt sich nicht
entscheiden, welcher der richtige ist.
Entsprechend gehört zu negativen Sinuswerten je ein Winkel
aus dem III. und einer aus dem IV. Quadranten.
Die Cosinusse der Winkel aus dem I. und IV. Quadranten haben
positives Vorzeichen, die Cosinusse der Winkel aus dem II.
und III. Quadranten haben negatives Vorzeichen. Ist ein positiver
Cosinuswert gegeben, so stammen die beiden zugehörigen Winkel
also aus dem I. bzw. IV. Quadranten. Zu negativem Cosinuswert
gehören zwei Winkel aus dem II. bzw. III. Quadranten.
Der Sinuswert eines Winkels genügt also nicht, den Winkel eindeutig
zu rekonstruieren, es gibt stets zwei Lösungen; dasselbe gilt
für gegebene Cosinuswerte.
Ist aber sowohl der Sinus als auch der Cosinus eines Winkels
gegeben, dann läßt sich der gemeinte Winkel anhand der Vorzeichen
der gegebenen Werte eindeutig bestimmen.
Sei z.B. der Sinuswert negativ, der Cosinuswert positiv.
Negativer Sinus bedeutet: der Winkel stammt aus dem III. oder
IV. Quadranten; positiver Cosinuswert bedeutet: der Winkel
stammt aus dem I. oder IV. Quadranten. Insgesamt kann der Winkel
also nur aus dem IV. Quadranten stammen.
Übersicht: sin cos: Quadrant
+ + : I
+ - : II
- - : III
- + : IV
Anwendung: die Transformationsformeln aus den Bahnkoordinaten in
heliozentrische ekliptikale Koordinaten lauten:
cos(b) cos(L) = cos(u)
cos(b) sin(L) = sin(u) cos(i)
sin(b) = sin(u) sin(i)
l, b, r: heliozentrische ekliptikale Koordinaten
u, r : Bahnkoordinaten
K : aufsteigender Knoten,
L := l-K
Du hast nun die erste Gleichung genommen und umgestellt:
cos(L) = cos(u)/cos(b),
und kannst den Cosinuswert von L aus den bekannten u und b bestimmen.
Aber: es gibt zwei Winkel, die diesen Cosinuswert haben, und du
weißt nicht, welcher der richtige ist. Im Fall der Erde hat dir der
Arccos zielgerichtet den falschen der beiden möglichen Winkel
untergeschoben.
Glücklicherweise liefern dir die Transformationsformeln aber auch
den Sinus des Winkels und damit hinreichende Information, um den
Winkel eindeutig zu bestimmen:
sin(L) = sin(u) cos(i) / cos(b).
Im Prinzip könntest du jetzt sowohl für den Sinus- als auch für den
Cosinuswert jeweils die beiden möglichen Winkel bestimmen, und der
Winkel, der in beiden Fällen auftritt, ist der richtige.
In der Praxis geht man folgendermaßen vor: man merkt sich die
Vorzeichen von sin(L) und cos(L) und dividiert dann beide durch-
einander:
tan(L) = sin(L)/cos(L) = (sin(U) cos(i)/cos(b))/(cos(u)/cos(b))
= tan(u) cos(i).
Mit dem Arcustangens bestimmt man dann _einen_ Winkel, der diesen
Tangenswert hat:
L = arctan( tan(u) cos(i) )
und benutzt dann die gemerkte Information in den Vorzeichen, um
diesen Winkel in den richtigen Quadranten zu bringen. Das kann
man entweder so machen:
Sei A = sin(L) und B = cos(L). Berechne den Arcustangens von A/B
(das Ergebnis wird konventionellerweise zwischen -90° und +90°
ausgegeben) und addiere zum Ergebnis 180°, wenn B<0 (vgl. J. Meeus:
Astronomical Algorithms, Kap. 1).
Oder du benutzt die folgende "arctan2"-Prozedur, die alles
automatisch macht (vgl. Montenbruck/Pfleger: Astronomie mit
dem Personal Computer):
(*-------------------------------------------------------------------------*)
(* atn2: Arcustangens von y/x fuer zwei Argumente *)
(* (quadrantenrichtig mit -180° <= atn2 <= +180°) *)
(*--------------------------------------------------------------------MoPfl*)
function atn2(y, x: extended): extended;
const raddeg = 180/pi;
var ax, ay, phi: extended;
begin
if (x=0) and (y=0)
then atn2 := 0
else
begin
ax := abs(x); ay := abs(y);
if (ax>ay)
then phi := arctan(ay/ax) * raddeg
else phi := 90 - arctan(ax/ay) * raddeg;
if (x<0) then phi := 180-phi;
if (y<0) then phi := -phi;
atn2 := phi;
end
end;
Man beachte, daß der Sinus- und der Kosinuswert als _getrennte_ Parameter
übergeben werden. Würdest du sie vorher durcheinander dividieren, so ginge
die Information über die einzelnen Vorzeichen teilweise verloren (am Vor-
zeichen des Quotienten könnte man nur noch sehen, ob sie gleiche oder
verschiedene Vorzeichen hatten).
Jetzt haben wir L quadrantenrichtig bestimmt, und daraus kannst du
nun die Länge l berechnen.
Von b weißt du nur den Sinus:
sin(b) = sin(u) sin(i)
aber da b nur zwischen -90° und +90° liegen kann, gibt es hier keine
Zweideutigkeiten, und der Arcsin liefert den Winkel eh in diesem
Bereich, so daß man nichts mehr weiter tun muß.
Auf dieselbe Weise behandelt man auch andere sphärische Transformationen:
wenn der Winkel uneingeschränkt irgendwo zwischen 0..360° liegen kann, isoliert
man immer den Sinus und den Cosinus des gesuchten Winkels und bestimmt den
Winkel selbst quadrantenrichtig mit den beschriebenen Methoden.
Wenn der Winkel nur in einem eingeschränkten Bereich liegen kann, reicht
i.A. eine Winkelfunktion aus.
Im vorliegenden Fall ist A = sin(u) cos(i) und B = cos(u).
Arctan(A/B) liefert 46.537433°, und wegen B<0 müssen wir 180 addieren,
das liefert 226.53743°. Die heliozentrische Länge der Erde war zu
jenem Zeitpunkt also praktisch identisch mit der des Merkur. Wie
ich mich heute mittag selbst überzeugen konnte, entspricht dieses
Ergebnis den Tatsachen und die Rechnung ist offenbar richtig.
Exkurs Ende
=====================================================================================
Tschau,
Thomas