arcsin

  • Hallo ^^

    Ich beschäftige mich momentan mit sin/cos/tan. Soweit habe ich das ja auch alles verstanden. Aber mein Problem liegt bei arcsin/arccos/arctan.

    Auf dem Taschenrechner klappt alles wunderbar, nur gibt es bei dem scripten keine Befehle für arcsin.i

    Daher muss man dass ja irgendwie ableiten.

    Also, hier habe ich mal ein Beispiel wie ich dass mit dem Taschenrechner lösen würde:

    a= 5cm
    b= 7cm
    c= a^2+b^2=c^2
    5cm^2+7cm^2=74
    Wurzel aus 74 = 8.60233 (gerundet)
    also ist c = 8.60233cm

    Nun möchte ich den Winkel haben, dass weiß ich auch wie man das auf dem TR berechnet ^^ (Hier liegt auch das Problem)

    sin(alpha) = a/c
    5cm/8.60233cm = 0.58124 (gerundet)

    Nun habe ich auf dem Taschenrechner eine Taste, die hat die Berschriftung SIN^-1 Damit komme ich auf: 35.538 (gerundet)
    Also ist der Winkel alpha = 35.358°

    Nun gibt es in autoit ja keine befehl sin^-1. Und wenn ich es mit sin^-1 versuche, ist das ergebnis falsch ^^

    Kann mir jemand also erklären, wie man den arcsin in autoit (Dass ja logischerweise dann überall so) berechnet? Ich habe schonmal gegoogelt aber kann mir daraus nichts ableiten ^^

    Hier mal ein script:

    [autoit]

    $a = 5
    $b = 7
    $c = Sqrt($a^2+$b^2)

    [/autoit][autoit][/autoit][autoit]

    $ac = $a/$c

    [/autoit][autoit][/autoit][autoit]

    $arcsin = Sin($ac)^-1

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0, "", $arcsin)

    [/autoit]

    Es wäre wirklich toll wenn mir das jemand mal erklärt :) Aber bitte so dass ich es verstehen kann, bin gerade mal in der 8. Klasse :/

    *g* Danke schonmal im Vorraus. Achso, falls das Thread am falschen platz ist, so verschiebt es doch bitte :)

    Einmal editiert, zuletzt von Yjuq (30. Juni 2012 um 14:34)

  • Tatsächlich oO Aber als ich in der hilfe geguckt hatte (in der suche > arcsin <) gab es keine treffer :/

    Naja, trotzdem finde ich es spannend, wie das berechnet wird ^^ daher wäre es auch toll wenn mir das einer erklärt ^^

    Dank dir AspirinJunkie

    Einmal editiert, zuletzt von Yjuq (30. Juni 2012 um 13:53)

  • Naja, trotzdem finde ich es spannend, wie das berechnet wird daher wäre es auch toll wenn mir das einer erklärt

    Mit ner einfachen Formel geht das nicht.
    Sin^-1 steht für das Reziproke also die Umkehrfunktion vom Sinus.
    Wenn man den Sinus folgendermaßen definiert: sin(x) = y dann soll eine Umkehrfunktion u(y) existieren für die x= u(y) gilt. Diese Funktion u(y) ist die Arcussinus Funktion.

    Ich denke was du gerne haben willst ist eine einfache Berechnung ohne eine explizite Arcussinus-Funktion?
    Das gibt es aber nicht.
    Wenn man z.B. x^2 = y hat dann ist die Umkehrfunktion x = Wurzel(y).
    Wurzel ist die Funktion - ohne diese Funktion kannst du die Umkehrung der Funktion x^2 nicht berechnen. Wurzel muss dir also bekannt sein (an die Besserwisser - ja ich weiß das es in dem Fall auch mit y^1/2 geht).
    So ist es auch bei der Arcussinus-Funktion.
    Die Funktion musst du einfach so hinnehmen wie sie ist - du kannst sie auf einfachem Wege nicht anders berechnen - geht ja auch mit Sinus nicht.
    Oder kennst du eine einfache Formel mit der man Sinus(x) ohne die trigonometrischen Funktionen berechnen kann?

    Was dann noch zusätzlich verwirrt ist diese dämliche Bezeichnung auf Taschenrechnern mit der Begrifflichkeit sin^-1.
    Das verleitet dazu zu denken dass arcsin(x) = 1/sin(x) gelten müsste. Aber mit sin^-1(x) ist nicht sin(x)^-1 gemeint!
    Vor allem wenn man Bezeichnungen wie sin^2(x) kennt wo tatsächlich sin(x)*sin(x) gemeint ist.
    Diese Bezeichnung ist arg irreführend.

  • Ah, Okey :D Jetzt durchblick ich hier garnichts mehr :DDD

    Scherz bei seite :) Danke für deine Antwort. Also muss ich es wohl so hinnehmen :]

    Dann wäre ja meine Frage geklärt...

  • Naja... Es gibt keine Fuktion die den Sinus/Arcussinus jedes Werts exakt berechnet. Man kann den Wert aber mit Taylorreihen beliebig genau annähern, soweit ich weiß. Hab da mal ein paar Programme für meinen Taschenrechner geschrieben die genau das tun.
    Allerdings ist das völlig unnötig, da die Sin/Cos/Tan etc. Funktionen in AutoIt wesentlich schneller und zuverlässiger sind. Abgesehen davon ist es nicht ganz einfach so eine Funktion selbst zu schreiben wenn man nicht so viel Ahnung davon hat.
    Bleib einfach bei dem was du hast, wie AspirinJunkie schon gesagt hat ;).

  • Man kann den Wert aber mit Taylorreihen beliebig genau annähern, soweit ich weiß


    Ich hab da mal was vorbereitet.... ;) :

    Arcus Sinus mit Taylorreihe berechnen
    [autoit]

    ConsoleWrite(StringFormat("% 4s\t% 6s\t% 6s\n", "i", "ASin", "MyASin"))
    For $i = -1 To 1 Step 0.1
    ConsoleWrite(StringFormat("% 4.1f\t% 6.3f\t% 6.3f\n", $i, ASin($i), MyArcSin($i)))
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func MyArcSin(Const $x, Const $eps = 1E-8)
    ;by AspirinJunkie
    Local $f_Sum = $x, $f_Muliplikand = 1, $f_Faktor = 1, $f_Summand

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $f_Muliplikand *= ($f_Faktor / ($f_Faktor + 1))
    $f_Faktor += 2
    $f_Summand = $f_Muliplikand * (($x ^ $f_Faktor) / $f_Faktor)
    $f_Sum += $f_Summand
    Until Abs($f_Summand) < $eps
    Return $f_Sum
    EndFunc ;==>MyArcSin

    [/autoit]
  • Ich bin mir nicht sicher, ob da überhaupt irgendwas geht, aber lässt sich das nicht auch über den Einheitskreis berechnen?
    Müsste ja zumindest bei Sinus, Cosinus und Tangens möglich sein...


    [OT]

    Wenn man z.B. x^2 = y hat dann ist die Umkehrfunktion x = Wurzel(y).
    Wurzel ist die Funktion - ohne diese Funktion kannst du die Umkehrung der Funktion x^2 nicht berechnen. Wurzel muss dir also bekannt sein


    Naja, es geht ja auch ohne zu "Wurzeln", mit Hilfe des Satzes vom Nullprodukt:
    z.B.:
    x^2 = 4
    x^2 - 4 = 0
    (x + 2) * (x - 2) = 0
    --> x1 = 2; x2 = -2
    [/OT]

  • Naja, es geht ja auch ohne zu "Wurzeln"


    Wie ich schon schrieb: es geht auch z.B. über x^1/2.
    Ich wollte ihm damit zum Ausdruck bringen dass es eine bestimmte Umkehrfunktion gibt die man nicht weiter zerlegen kann und daher einfach so hinnehmen muss.
    Sicherlich nicht das beste Beispiel weil man die Wurzel wie gesagt eben doch anders ausdrücken kann im Gegensatz zum Arcussinus.