Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Was macht der Taschenrechner bei sin()

Was macht der Taschenrechner bei sin()

Universität / Fachhochschule

Tags: Berechnung, einfach, Winkelfunktion

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
simplemath

simplemath aktiv_icon

09:54 Uhr, 02.10.2019

Antworten
Ist diese einfache Berechnung von Sinus- und Cosinuswerten
eine bekannte Herangehensweise:

Berechnung von beliebigen Sinus-, Cosinuswerten mit Grundrechtenarten mit Hilfe der Sehnensteigung (im Einheitskreis).

m(Sehne)=sin/(cos-1)

Iterartion von m(Sehne) (hier=x):

x(n+1)=x(n)x(1)-1x(n)+x(1)

Startwert x(1)=-114.5886501293.. (entspricht: tan=1°)

cos=(x²-1)/(x²+1)
sin=(-2x)/(x²+1)
tan=(-2x)/(x²-1)

Alles lässt sich mit Grunrechenarten berechnen,
sofern man den Startwert hat.

(Beim Startwert braucht man einmal eine Wurzelberechnung)
(den Startwert kann man auch für Winkel unter 1° berechnen).

Ich bin kein Mathe-Gelehrter, in sofern fehlt es mir häufig an Fachsyntax,
so dass ich nicht alle Erklärungen (z.B. bei Wikipedia a.) verstehe.


Gruß, Markus







Sehnensteigung1
Online-Nachhilfe in Mathematik
Antwort
Roman-22

Roman-22

12:20 Uhr, 02.10.2019

Antworten
Deine Überlegungen sind für mich leider nicht nachvollziehbar.
Wie du auf deine Iterationsformel (für sinx ??) kommst ist unklar und auch, was du etwa mit
> sin=(-2x)/(x²+1)
zum Ausdruck bringen möchtest. Letztere Formel erinnern (bis aufs Vorzeichen) an die Halbwinkelformeln wie etwa sinx=2t1+t2 mit t=tan(x2).

Beachte bei deiner Notation, dass es sin und cos allein nicht gibt, sondern dass immer die zusätzliche Angabe eines Arguments erforderlich ist, also sin(x) oder auch sinx.

Wenn du eine Iterationsformel gefunden zu haben glaubst, müsstest du eben noch ihr Konvergenzverhalten prüfen. Da ist zusätzlich zum Aufwand (wie viele und welche Rechenoperationen müssen pro Iterationsschritt durchgeführt werden) die Konvergenzgeschwindigkeit relevant.

Die Firmware von Taschenrechnern ist üblicherweise nicht veröffentlicht, aber wenn man Wikipedia glauben darf, dann verwenden die meisten TR den CORDIC Algorithmus von Jack E. Volder aus dem Jahr 1956, welcher typischerweise mit jedem Iterationsschritt eine zusätzliche signifikante Ziffer generiert. en.wikipedia.org/wiki/CORDIC


Antwort
HAL9000

HAL9000

15:51 Uhr, 02.10.2019

Antworten
Laut Additionstheorem ist cot(x+y)=cot(x)cot(y)-1cot(x)+cot(y).

Dein Wert x(1)=-114.588... passt zu x(1)=cot(-0.5). Unter Einbeziehung des eben genannten Additionstheorems berechnet diese Rekursion somit

x(n)=cot(-0.5n).

Damit ist

2x(n)(x(n))2+1=-sin(1n)

(x(n))2-11+(x(n))2=cos(1n) .

--------------------------------------------------------------------------------

Ich hätte da übrigens einen Alternativvorschlag: Angenommen, man will für gegebenes φ die Werte

a(n)=cos(nφ)
b(n)=sin(nφ)

für n=0,1, berechnen. Dann genügt die Berechnung eines einzigen Winkelfunktionswerts t=tan(φ2), aus dem bestimmt man s=2t1+t2 und c=1-t21+t2 (das sind nämlich s=sin(φ) und c=cos(φ)), und die eigentliche Iteration lautet dann so:

Start a(0)=1,b(0)=0

Iteration a(n+1)=a(n)c-b(n)s,b(n+1)=a(n)s+b(n)c.

Pro Iterationsschritt werden 4 Multiplikationen und 2 Additionen, aber KEINE EINZIGE (teure) Division benötigt. Man braucht lediglich initiale zwei Divisionen für die Berechnung von c und s.

simplemath

simplemath aktiv_icon

18:37 Uhr, 02.10.2019

Antworten
@Roman-22:

sin=(-2x)/(x²+1) bedeutet:

Angenommen ein Sinuswert ist 0,6
.. der dazu gehörende Cosinuswert wäre 0,8 (0,8²+0,6²)=1

die Sehnensteigung m(Sehne), die ich hier x nenne ist dann

0,60,8-1=-3

anders herum lässt sich jeder Cos-, Sin- und Tangens-Wert
mit der Sehnensteigung einfach berechnen:

sin=(-2x)/(x²+1): 0,6=(-2*-3)/(-3²+1)

cos=(-x²-1)/x²+1): 0,8=(-3²-1)/(-3²+1)

tan=(-2x)/(x²-1): 0,75=0,6/0,8=(-2*-3)/(-3²-1)

Die aufeinander folgenden Sehnensteigungen kann ich ebenfalls mit einfachen Mitteln
per Reihenberechnung (s.) herleiten.

Über HALs Antwort muss ich noch nachdenken, nach seinen Ausführungen, klingt es so,
als ginge es noch einfacher:
Ohne einmalige Wurzelfunktion für den Startwert und ohne Division, wow !

Dass man bei meinen Vorschlag ein Rechner viele Schritte iterieren ließe,
ist mir klar, und das es bei Verdopplung von Winkeln auch schneller geht ist auch klar.

Ich dachte bloß es gäbe bisher keinen einfach nachvollziehbaren Weg,
die Berechnung regelmäßiger Kreispunkte zu verstehen.
(Einen einfachen Weg für Nicht-Mathematiker.)
Bin aber nicht sicher ob mein Vorschlag einfach und nachvollziehbar ist.

Danke erst mal und Gruß,

Markus




Antwort
HAL9000

HAL9000

22:33 Uhr, 02.10.2019

Antworten
> Ohne einmalige Wurzelfunktion für den Startwert

Wieso Wurzelfunktion? Die brauchst du auch bei deinem Vorschlag nicht. Es wird EIN trigonometrischer Funktionswert zu Beginn benötigt, bei beiden Varianten.
simplemath

simplemath aktiv_icon

00:20 Uhr, 03.10.2019

Antworten
Hallo HAL9000

die Wurzelfunktion habe ich verwendet um Startwert x(1) bzw. m(Sehne)(1) zu berechnen.

Ich schlage einen Kreis um den Punkt (1|0) mit dem Radius Π180.

Aus dem Schnittpunkt dieses Kreises mit dem Einheitskreis
erhalte ich den genäherten Cosinuswert für 1°.

Daraus berechne ich per Wurzelfunktion entweder den Sinuswert für 1°, oder über
-1*Wurzel(1+cos/1-cos) direkt die Steigung der Sehne bei 1°.

Deine vorgeschlagene Vorgehensweise kenne ich,
ich hatte sie vor einiger Zeit ( einem anderem Forum hoffe ich) so vorgeschlagen:

cos(n+1)=cos(n)cos(1)-sin(n)sin(1) und
sin(n+1)=cos(n)sin(1)+sin(n)cos(1)

(habe damals auch noch die Buchstaben a und b verwendet,
.. du hast mir auch damals schon auf die Sprünge geholfen.

Ich habe viel um die Ohren und bin etwas vergesslich geworden.

Jedenfalls habe ich damals diese tatsächlich noch einfachere Reihenberechnung regelmäßiger Kreispunkte, wieder umgestellt nach der Steigung der Sehne.

Dabei kam das oben erwähnte heraus:

x(n+1)=x(n)x(1)-1x(n)+(x1)

Sie ist dadurch wieder komplexer geworden (Division),
enthält allerdings nur eine Variable nämlich m(Sehne) (bzw. 'x' wie ich sie nenne).

Verzeih die unbeholfene Ausdrucksweise bei mathematischen Ausdrücken.

Gruß Markus






Frage beantwortet
simplemath

simplemath aktiv_icon

00:23 Uhr, 03.10.2019

Antworten
...

Anlass für die Anfrage im Forum war,
dass ich als Laie viele Erklärungen z.B. vom Sinus-Wikipedia-Beitrag nicht verstehe,
ich vermute so geht es auch anderen Mathe-Interessierten Laien.

So habe ich mir selber diese hier beschriebenen Berechnungen hergeleitet,
durch simples Herumtüfteln mit simpler Vektorrechnung im Koordinatensystem.

Dabei entdeckte ich zuerst die Iteration des trig. Additionstheorem:

Dann fiel mir die Berechnung der Cosinus- Sinus- und Tangens-Werte über die Sehnensteigung auf.

Und am Ende stellte ich die Iteration der cos/sin-Werte um zur Iteration der Sehnensteigung.

Und vermutlich klingt all das hier mittlerweile für Laien ebenfalls verwirrend.

Tatsächlich könnte ein Laie wahrscheinlich die bildliche Darstellung der Berechnung nach

cos(n+1)=cos(n)cos(1)-sin(n)sin(1) und
sin(n+1)=cos(n)sin(1)+sin(n)cos(1)

am ehesten verstehen.

Zum Beispiel beim Aufstellen einer Leiter in gleichmäßigen Schritten:

NeuerAbstand = aktuellerAbstand AnfangsAbstand - AktuelleHöhe Anfagngshöhe

NeueHöhe = AktuelleHöhe AnfangsAbstand + AktuelleAbstand Anfangshöhe


Somit möchte ich meine Ausführungen hier vorerst abschließen und bedanke mich nochmal bei allen.

Gruß Markus