Hallo TurboMagic,
in der
Jedi Code Library wird
ArcCsc(X):= ArcSec(X / Sqrt(X * X -1));
verwendet. System.Math benutzt dagegen
ArcCsc(X):= ArcSin(1 / X);
, während AMath einen komplexeren Algorithmus unter Verwendung von
ArcTan(1/Sqrt(x^2-1))}
favorisiert.
Der Vorzeichenfehler rührt von folgendem Sachverhalte her: Die trigonometrischen Funktionen wie Sekans, Kosekans etc. sind
periodische Funktionen: d. h. für unendlich viele Argumente x erhalten wir unendlich oft denselben Funktionswert: z.B. für den Kosekans Csc(x) = Csc(x + 2*Pi).
Ihre Umkehrfunktionen ArkusSekans, ArkusKosekans etc. sind jedoch
nicht periodisch. Um eine exakte Zuordnung vornehmen zu können, müßten wir die beiden Terme (= diverse Längen am Einheitskreis) aus denen diese Quotienten bestimmt worden sind,
vorzeichengerecht kennen. Ansonsten ist eine Umkehrung der Funktion nur auf den Definitionsbereich der umzukehrenden Funktion beschränkt möglich.
Es ist also nicht gleich – um bei Deinem Beispiel zu bleiben – ob x:= -3.98 z.B. so entstanden ist: -3.98/1 = -3.98 oder +3.98/(-1) = = -3.98 etc. Im ersten Fall liegt der 3. Quadrant vor, im zweiten der 4. Quadrant. Je nach dem, über welche Funktion ArcSec(..), ArcSin(..) oder ArcTan(..) die Umkehrfunktion berechnet wird, landen wir mal im 1., mal im 4. Quadranten. Aber ist es kein Problem, schließlich ist z.B. der Arkuskosekans eine sogenannte
ungerade Funktion mit der Eigenschaft ArcCsc(+x) = -ArcCsc(-x). Bilde also einfach den Betrag Abs(..) davon, wenn das Minus stört!
Gruß, Andreas