Umkehrfunktion fuer Cosinus und Sinus

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Umkehrfunktion fuer Cosinus und Sinus

Beitrag von Wolf »

Hallo Leute,

Mein Mathematik-Gedaechtnis laesst mich im Stich.
Im OpenOffice Basic gibt es die Umkehrfunktionen des Cosinus und des Sinus nicht mehr. Nur den Arcustangens.
Leider habe ich in der Fertigungstechnik eine Formel, die nur ueber die Umkehrfunktion des Cosinus (frueher im grandiosen StarOffice 5.2 war das ACOS) geloest werden kann.
Kann da jemand helfen?

Dank euch

Wolf
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Umkehrfunktion fuer Cosinus und Sinus

Beitrag von turtle47 »

Hallo Wolf,

auf folgender Seite habe ich das hier gefunden:
'############################################################
' Silly StarBasic doesn't include the classic ASIN() and ACOS() functions.
'############################################################

Function ArcSin( x )
ArcSin = Atn( x / Sqr(-x * x + 1) )
End Function

Function ArcCos( x )
ArcCos = ArcSin( Sqr( 1 - x^2 ) )
End Function
Hilft Dir das weiter?

Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Umkehrfunktion fuer Cosinus und Sinus

Beitrag von Stephan »

direkt in StarBasic wird das wohl nur gehen wenn Du es selbst umrechnest, beispielsweise:

Code: Alles auswählen

Sub sinus_in_winkel() 
sinuswert = 0.5
if sinuswert = 1 Then
		winkel = 90
	Else
		winkel = Atn(sinuswert/(-1*sinuswert^2 + 1)^0.5) * 180 / (4*Atn(1))
End if
Msgbox winkel
End Sub
ansonsten halt indirekt über die entsprechende Calc-Tabellenfunktion:

Code: Alles auswählen

Sub sinus_in_winkel2() 
sinuswert = 1
Msgbox funktionAufrufen(sinuswert)
End Sub

Function funktionAufrufen(x)
oFunktion = createUnoService("com.sun.star.sheet.FunctionAccess")
Dim aArgumente(0) As Variant
aArgumente(0) = x
aArgumente(0) = oFunktion.callFunction("ASIN", aArgumente() )
funktionAufrufen = oFunktion.callFunction("DEGREES", aArgumente() )
End Function



Gruß
Stephan
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Re: Umkehrfunktion fuer Cosinus und Sinus

Beitrag von Wolf »

Hallo Juergen, Hallo Stephan,

Meine ersten Berechnungen am Taschenrechner haben ergeben, dass das was ihr da geschrieben habt, richtig ist.
In Wikipedia bin ich nicht richtig fuendig geworden.

Wo finde ich die mathematische Grundlage dafuer?

Aber trotzdem, riesigen Dank. Das hilft weiter.

Wolf
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Umkehrfunktion fuer Cosinus und Sinus

Beitrag von Stephan »

Wo finde ich die mathematische Grundlage dafuer?
in:

Göhler, Formelsammlung höhere Mathematik, Verlag Harri Deutsch, 14. Auflage, Frankfurt a.M., 1999

findet sich auf Seite 42:

arcsin(x) = arctan(x/(1-x^2)^0,5)

und dieses Ergebnis ist im Bogenmaß und um das in Grad umzurechnen ist dann noch das 180/4*arctan(1) nötig, was natürlich ein ganz dämlicher Ausdruck ist den ich nur gestern übersehen habe umzuschreiben, denn das ist das Gleiche wie 180/PI()

Als Calc-Tabellenformel würde die gesamte Gleichung also beispielsweise so aussehen:

=DEG(ARCTAN(x/(1-x^2)^0,5))

was das Gleiche ist wie:

=ARCSIN(x)


Zweimal Sorry, ich bin jetzt zu faul zu überlegen ob/wie man:

arcsin(x) = arctan(x/(1-x^2)^0,5)

herleiten könnte und ich habe ebenfalls keine Lust eine Onlinequelle zu suchen, denke aber die wird sich finden lassen. Ich hatte es nur gestern aus dem Buch, weil ich dort solche Dinge bequemer finde als im Internet.





Gruß
Stephan
Antworten