Quanten.de Diskussionsforum  

Zur?ck   Quanten.de Diskussionsforum > Plauderecke

Hinweise

Plauderecke Alles, was garantiert nichts mit Physik zu tun hat. Seid nett zueinander!

Antwort
 
Themen-Optionen Ansicht
  #31  
Alt 16.12.11, 18:37
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Das Problem mit dem Index habe ich geloest. Fuer den Startindex 0 waehlt man einfach x(0)=1 und y(0)=0
Rein numerisch sieht es uebrigends so aus, dass das Verfahren fuer einen Dauerbetrieb bezueglich der Phase nicht so ganz stabil ist. Die Amplitude schon.
Und du kannst deinen Algorithmus nochmals um den Faktor 10-100 genauer gestalten !
Indem du fuer C2 auch direkt eine Taylorreihe verwendest :

Statt
c1:=1-m0^2/2;
c2:=sqrt(m0^2-m0^4/4);

besser
c2:= m0-m0^3/6;
(6=3!)

So gefaellt mir das :-)
Code :

N:=30; # Anzahl Abtastwerte
P:=10; # Anzahl Perioden
M:=P*N;
m0:=evalf(2*Pi/N);
c1:=1-m0^2/2;
c2:= m0-m0^3/6;
x[0]:=1;
y[0]:=0;

for n from 0 to M do
x[n+1]:=x[n]*c1 - y[n]*c2; # -> Cosinuswerte
y[n+1]:=y[n]*c1 + x[n]*c2; # -> Sinuswerte
od:

# DRUCKROUTINEN
druck1:=seq([i,y[i]],i=1..M):
druck2:=seq([i,y[i]-sin(i*2*Pi/N)],i=1..M):
#druck3:=seq([i,x[i]],i=1..M):
#druck4:=seq([i,cos(i*2*Pi/360)],i=1..M):
plot([[druck1],[druck2]]);

Ge?ndert von richy (16.12.11 um 18:45 Uhr)
Mit Zitat antworten
  #32  
Alt 16.12.11, 19:37
Benutzerbild von mermanview
mermanview mermanview ist offline
Profi-Benutzer
 
Registriert seit: 05.09.2011
Beitr?ge: 273
Standard AW: Math Schwingungs DZGL

Hi Män, there you are again,

ei froi mi

uff, jetzt aber:

Zitat:
Zitat:
um eine f(wasauchimmer) zu finden, welche die Sinuskurve als Funktionsgraph erzeugt.
Im Grunde haben wir das doch bereits gefunden.
hm, eine Sache verstehe ich nicht:

dein Quellcode erzeugt zweifelsfrei eine Sinuskurve, und er verwendet tatsächlich nicht mal für den Startwert eine implementierte sin()/ cos().
(Man hat dabei zwar die von mir eingebrachte Ungenauigkeit, durch Gleichsetzung von Sekanten- und Kreisbogenabschnitt zwecks Näherung, aber dies sei vorerst vernachlässigt).

Aber einen Sinuskurvengraph per Quellcode zu erzeugen ist doch nicht das gleiche wie einen Funktionsgraph per Funktionsgleichung zu erzeugen.


Bei der Funktionsgleichung soll sich in diesem Fall y -die verdammte gesuchte Höhe- aus x (und evtl. z) ergeben.

Verwirrend ist dabei (auch evtl. für Mitlesende), dass bisher zur Berechnung von cos/sin sowohl x(n) als auch y(n) iterativ genähert wurden, das dabei verwendete x hat aber nichts mit der x Achse eines Koordinatensystems zutun, in welchem die Sinuskurve abgebioldet ist.
In deinem all müsste sie i- Achse heißen:
Zitat:
# DRUCKROUTINEN
druck1:=seq([i,y[i]],i=1..M):
druck2:=seq([i,y[i]-sin(i*2*Pi/N)],i=1..M):
#druck3:=seq([i,x[i]],i=1..M):
#druck4:=seq([i,cos(i*2*Pi/360)],i=1..M):

Da mir auffiel, dass eine Helix (Schraubenlinie) auf einer Mantelfläche eines Zylinders, der Länge 2Pi bei Durchmesser 2 cm in Seitenansicht genau die Sinuskurve ergibt (quasi als Schatten), gedenke ich zunächst eine Funktionsgleichung für drei Achsen,
x, y, z zu schreiben.

Wobei y=wurzel(1-z²)
und z=x*1/Pi
und x = 0 -> Pi

EDIT: diese Vorgehensweise erzeugt eine dämliche Ellipse mit r1=1 und r2=Pi, kompletter Blödsinn

das wären dann mal wieder nur Werte für 1° - 90°, aber mir persönlich würde dass vorerst reichen (alle weiteren Werte leißen sich daraus ableiten).

Moment muss später weiterschreiben, die Damen fangen am liebsten mitten in Herrngesprächen an sich zu räkeln, ...verdammt ;-)

PS: google nicht nach doundoumba, das ist u.a. einer der vielen Namen für eine afrikanische Trommelform + ein Begleitbeat, den Afrobeat haste richtig interpretiert:

3/4 Takt

sieht wg. Formatierung übel aus, die senkrechten Trennbalken sind keine Rythmusklänge, sonder sollen zuordnen, sorry
1|2|3|4|5|6|7|8|9|10|11|12
x|x|x|_|x|x|x|_|x|x|x|_ Stickbeat, welcher ohne Rest verwirrt
O|_|O|O|'|'|O|_|O|O|'|_ Afroblue: Grundbeat, welcher Klarheit bringt
O|V|O|O|V|_|O|V|O|O|V|_ Doundoumba, treibender Begleitbeat

bis später, ich hoffe du hast noch Luft für d. Sinus

Gruß Merman

Ge?ndert von mermanview (17.12.11 um 05:26 Uhr)
Mit Zitat antworten
  #33  
Alt 16.12.11, 21:31
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Zitat:
dein Quellcode erzeugt zweifelsfrei eine Sinuskurve, und er verwendet tatsächlich nicht mal für den Startwert eine implementierte sin()/ cos().
Dein Quellcode erzeugt doch auch fast perfekt Sinus und Kosinus :-) Ich habe an deinem Code im Grunde kaum etwas geaendert, sondern versucht ihn mal etwas von deiner graphischen Anschuung zu loesen und zu verallgemeinern. Ueber die Algebra. Die Steigerung der Effizienz war u.A. nur ein Hilfmittel dazu um den Code uebersichtlicher zu gestalten.

Dazu gehoerte :

1) Vorziehen konstanter Ausdruecke vor die Schleife. (Anti galileo0815)
Damit sieht man auch sofort was denn nun Konstanten sind.

2) Ersetzen der Wurzelfunktion durch Uebergang zu einem Differenzengleichungssystem. D.h. simultanes Berechnen von cos(x) und sin(x). Hierzu ist es vorteilhaft folgende Identitaet im Kopf zu haben und in verschiedenen Varianten zu erkennen :

sin(x)^2+cos(x)^2=1

=>
sin(x)=Wurzel(1-cos(x)^2)
Das koennte man die trigonometrischen Identitaet des Pythagoras nennen und diese ist in deiner Ausgangsiteration an vielen Stellen gegeben und so lassen sich diese Ausdruecke vereinfachen und das DZGL System erstellen.

Vergleich zu Additionstheoremen :
*************************
3)
Zum Vergleich habe ich die Iteration mit der selben Zielsetzung aus den Additionstheoremen hergeleitet und auf eine vergleichbare Form gebracht.
Dazu gehoerte es auch beim Index Null statt Eins zu beginnen.
Und aufgrund der vergleichbaren Formen sieht man nun, dass sich deine Iteration nur innerhalb der zwei Konstanten C1,C2 von der exakten Form unterscheidet.
Wobei nochmals zu bemerken ist, dass die Iteration ueber die Additionstheoreme mit C1=cos(dx), C2=sin(dx) voellig exakt ist. Deine Iteration ist bis auf diese beiden Konstanten formal voellig identisch. Also kann sie nur eine Naeherung sein. Du naeherst die Konstanten C1,C2 durch eine sehr einfache Taylorrreihe an, die du aus einer graphischen Anschuung entnommen hat. Diese Naeherung ist lediglich 2 ter Fehlerordung. Also sehr schwach. Jeder Taschenrechner von ALDI wird fuer dein cos(r=dx=m0 ) eine bessere Approximation der Form cos(dx) oder sin(dx) liefern.
Zwei moeglichst exakte Zahlenwerte genuegen ! Zwei konstante Zahlenwerte !
Aproximationen deiner Art muessen aber keinen kompletten Beinbruch darstellen, sondern koennen zu neuen Einsichten fuehren. Wie sieht deine Naeherung konkret aus ? Das erkennt man sehr schnell anhand der Taylorreihen.

cos(x)= 1-x^2/2!+x^4/4!-x^6/6! ....
sin(x)=x-x^3/3!+x^5/5!-x^7/7! .....

Exakt:
c1=cos(dx)
Merman :
c1:=1-m0^2/2!
Ok merman verwendet hier eine Taylor (Potenz) Reihe zweiter Fehlerordung.

Und C2 ?
c1=sin(dx)
c2:=sqrt(m0^2-m0^4/4);
*Schulterzuck.
Das ist eine Merman (ich meine unguenstige) Approximation von sin(x).



Es ist eine interessante und keinsfalls schlechte Approximation. In der Praxis fuer kleine Winkel (die relevant sind) leider ungenauer als eine Taylor Approximation. Letzendlich nun doch eine eher schlechte Approximation. Selbst mit Taylor o(x^4) fuer C2 erhaelt man ein besseres Ergebnis. Und nochmals : Die Version mit den Konstanten C1=cos(dx) und C2=sin(dx) ist voellig exakt. Es genuegen mir 2 exakte Funktionspaare deren konstante Wert ich auch einfach speichern kann um daraus die Sin,Cos Funktion exakt zu rekonstruieren.
Gruesse

Ge?ndert von richy (17.12.11 um 03:07 Uhr)
Mit Zitat antworten
  #34  
Alt 16.12.11, 22:14
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Zitat:
hm, eine Sache verstehe ich nicht:

dein Quellcode erzeugt zweifelsfrei eine Sinuskurve, und er verwendet tatsächlich nicht mal für den Startwert eine implementierte sin()/ cos().
Um dich zu beruhigen.Ich verstehe es auch noch nicht so ganz. Obwohl ich meist nicht um Analogien und moeglichst anschauliche Beispiele verlegen bin.
Dein C2 ist wohl vor allem recht daneben.
EDIT
Nein, C2 ist gar nicht so kritisch.

Zum Startwert :
************
sin(0)=0 und cos(0)=1. Ok das kennzeichnet noch keine harmonische Funktion, ausser wir betrachten ein diskretisiertes System und das Nyquest Kriterium. Aber lassen wir so etwas mal weg. Betrachten wir alles pseudo kontinuierlich. Dann haben wir drei Informatorische Elemente fuer unser System :

1) Die Anfangswerte

Zum System :
**********
2) Die Konstanten C1( r=m0=dx)
3) Die Additionstheoreme

Die Information steckt vornehmlich in den Konstanten C1,C2.Aber nur in Verbindung mit dem Additionstheorem. Ja es ist irgendwe verblueffend.
Bei der Expo Funktion waere es einfacher zu verstehen. Deren Kennzeichen
ist die Aequivalenz (Proportionalitaet) der Steigung / Ableitung zum Funktionswert :
df(x)/dx=(p)*f(x)
Auch hier genuegt dann ein Funktionswertepaar um die komplette Funktion zu rekonstruieren. Und auch hier existiert ein noch einfacheres Additionstheorem. Beim Sinus und Kosinus wird es alleine daher etwas schwieriger da der Zusammenhang ueber eine DGL 2 ten Grades gegeben ist :
d^2f(x)/dx^2=f(x)
Dieser zweite Grad laest sich auf einen ersten Grad zurueckfuehren indem man statt einer Gleichung ein Gleichungssystem betrachtet.

Zitat:
Da mir auffiel, dass eine Helix (Schraubenlinie) auf einer Mantelfläche eines Zylinders, der Länge 2Pi bei Durchmesser 2 cm in Seitenansicht genau die Sinuskurve ergibt (quasi als Schatten), gedenke ich zunächst eine Funktionsgleichung für drei Achsen,
x, y, z zu schreiben.
Das ist mir der eleganten Merman DZGL doch schon laengst erledigt. Und schau mal wie einfach es war. Eine dimensionale Erweiterung fuehr meist zu einem einfacheren Ergebnis. So ist es auch in der Quantenmechanik.

Ge?ndert von richy (17.12.11 um 22:07 Uhr)
Mit Zitat antworten
  #35  
Alt 16.12.11, 23:09
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Noch ein kurzer Gedanke zur Musik.
Ich besuche neben kostenguenstigen Workshops nur ganz wenige musikalische Events in einem Jahr. Ein Highlight 2011 war fuer mich in einem Club in Karlsruhe Raul Midon :
Trompetensolo nicht verpassen !!! :-)
http://www.youtube.com/watch?v=zzaClXAt3aY
zusammen mit Richard Bona Und das fuer 25 EUR :-)
http://www.youtube.com/watch?v=3BfEUDGsYW4
Das war echt geil :-)

Ge?ndert von richy (17.12.11 um 01:47 Uhr)
Mit Zitat antworten
  #36  
Alt 17.12.11, 07:16
Benutzerbild von mermanview
mermanview mermanview ist offline
Profi-Benutzer
 
Registriert seit: 05.09.2011
Beitr?ge: 273
Standard AW: Math Schwingungs DZGL

Hm,

???

du vergleichst in deinem letzten Diagramm meine Konstante für y1: c2=wurzel(x²-(x⁴/4)) (als auch deine c2=x-x³/6) mit der gesamten Sinusfunktion ?,
wo doch beide nur ein Teil des algebr.Sinus sind, dabei müssen starke Abweichungen entstehen.

Um Doppeldeutigkeiten auszuräumen, müssen wir von meiner x, y -Benennung weg,
da ich eine y=f(x) anstrebe, die als Koordinatenreihen x und y enthält, wobei x die Werte von Null bis mindestens Pi/2 sind (entspricht 90°) und y sollen die Sinuswerte sein, die sich mathematisch aus den x-Werten ergeben.


Beim Programmieren incrementiert man schnell mal einen Zähler i o.ä. und verwendet diesen aber auch als x-Koordinate, obwohl i mit y nicht mathematisch verknüpft ist, dabei erhält man Kurven aller Art.

Vielleicht hab ich irgendetwas völlig falsch verstanden, vielleicht ist mein Vorhaben nicht möglich (wie mein Mathelehrer damals erklärte), aber bisher ergibt die Mermansinus Formel lediglich Sinuswerte nicht aber einen Funktionsgraphen durch y=f(x).

Deine Optimierung macht den algebr.Sinus schneller und eleganter und genauer, da Wurzelterme vermieden werden und weil die sin() zur Genauigkeit verwendet wird (aber nur einmal vor der Programmschleife).




Bisher haben wir:

_______________________________________
nach meiner Benennung:

Hilfsradius r = Pi/180

x1 = 1 - r²/2
y1= wurzel(1-x1²)

{ (wurzel(r² - r⁴/4) -> ergibt sich, wenn ich den Term für x1 einsetze, in den Term für y1: wurzel( 1 - (1- (1 - r²/2)²) = (wurzel(r² - r⁴/4) }


x(n+1) = x(n) *x1 - y(n) * y1
y(n+1) = wurzel(1 - x(n+1)²)

{oder in ext.version: x(n+1) = x(n) * x1 - wurzel(1-x(n)²) * wurzel(r² - r⁴/4) }
__________________________________________________ _____________-

in deiner Benennung:

m0 = r = Pi/180 (oder 2Pi/360)
c1 = x1 = 1-m0²/2)
c2 = y1 = wurzel(m0² - m0⁴/4)

__________________________________________________ _____________


Da ich eine Sinuskurve, einen Graphen aus y=f(x) anstrebe,
sind meine oben aufgeführte x,y Benennungen irreführend.
Deine Benennungen sind köarer, bestehen aber überwiegend aus zwei Ziffern, was bei fehlendem svg-Code (Wurzelzeichen usw) die Formeln auch aufbläht.

Mist, muss später fotsetzen, habe hier mein nicht ganz 3 Jährigen neben mir mit den Worten:
"machsduda?" und "auchrichyschaimwill".

also, folgende Ziffern entsprechen dem Zufallsprinzip eines fast-Dreijährigen:

-z

, hm das sieht nach wenig aus, es waren aber ungefähr zweieinhalb Zeilen,
der Kleine kennt aber auch schon die Löschtaste, das "-z" ist nur das Ende einer langen Zeichenkette (ich vermute, es war eine Art Weltformel)


später weiter,

Danke dir

Gruß Merman

Ge?ndert von mermanview (17.12.11 um 11:38 Uhr)
Mit Zitat antworten
  #37  
Alt 17.12.11, 18:49
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Hi merman
Zitat:
du vergleichst in deinem letzten Diagramm meine Konstante für y1: c2=wurzel(x²-(x⁴/4)) (als auch deine c2=x-x³/6) mit der gesamten Sinusfunktion ?,
Ja, aber nur mal rein interessehalber. Wie sich die Funktion c2=wurzel(x²-(x⁴/4)) grob verhaelt :

Zitat:
wo doch beide nur ein Teil des algebr.Sinus sind, dabei müssen starke Abweichungen entstehen.
Da stimme ich dir vollkommen zu. Man spricht dabei von einem Konvergenzradius. Und dessen Zentrum kann man vorgeben und liegt in beiden Faellen bei Null. Man sagt : Die Funktion wurde um x0=0 entwickelt. D.h. dort ist die Approximation am genauesten. Ich haette somit die Funktion besser fuer kleine Werte nahe x0=0 vergleichen sollen. Und habe daher auch geschrieben :
Zitat:
Zitat von richy
Es ist eine interessante und keinsfalls schlechte Approximation. In der Praxis fuer kleine Winkel (die relevant sind) leider ungenauer als eine Taylor Approximation.
Meine letzte Aussage sieht man anhand der Grafik nicht.
EDIT
siehe dazu meinen letzten Beitrag "Vollstaendigkeitshalber"

Aber ich hatte dies auch in Versuchen numerisch getestet- Daher meine Aussage :
Zitat:
Zitat von richy
Und du kannst deinen Algorithmus nochmals um den Faktor 10-100 genauer gestalten ! Indem du fuer C2 auch direkt eine Taylorreihe verwendest :
Wobei es mir nicht darauf ankam deine Approximation c2=wurzel(x²-(x⁴/4)) zu kritisieren, sondern vor allem darauf, dass man diese auch durch eine einfache Taylorapproximation ersetzen kann. Das wollte ich einfach zeigen, weil diese Vorgehensweise eher in meine rein persoenliche, diesbezueglich noch nichtgeometrische, algebraische Vorstellung passt. Und man sollte nicht vergessen was wir zunaechst mit C1, C2 annaehern. Das ist das etwas Verrueckte. Lediglich einen (zwei) Funktionswerte. cos(dx),sin(dx). Und es zeigt sich, dass die Guete dieser Naeherung letztendich in die Guete der kompletten Sinus bzw Kosinus Funktion eingeht/ transformiert wird. Daher meine Bezeichnung : "Konvergenzradiustransformator"
Zitat:
Um Doppeldeutigkeiten auszuräumen, müssen wir von meiner x, y -Benennung weg, da ich eine y=f(x) anstrebe, die als Koordinatenreihen x und y enthält, wobei x die Werte von Null bis mindestens Pi/2 sind (entspricht 90°) und y sollen die Sinuswerte sein, die sich mathematisch aus den x-Werten ergeben.
Das sehe ich nicht so tragisch. In der Mathematik hat man hier voellige Freiheit. Ok, bei meiner Bezeichnung dx fuer m0,r koennte man kritisieren, dass dies zu Verwechselungen mit x(n) fuehrt. Dann wuerde ich aber nicht x aendern, denn das passt recht gut sondern statt dx z.B. ein dt waehlen. Unser laufender Parameter ist das ganzzahlige n. Und daraus bilden wir z.B das nichtganzzahlige Funktionsargument t=n*dt. Ok x=n*dx waere missverstaendlch. Das sehe ich ein. Ich werde somit ab diesem Beitrag dt statt dx verwenden. t sei ein Parameter t=n*dt. Der laufende Parameter ist n.
Zitat:
... aber bisher ergibt die Mermansinus Formel lediglich Sinuswerte nicht aber einen Funktionsgraphen durch y=f(x).
Einspruch ! Du hast deine Aufgabenstellung, Vorgabe doch bereits zumindestens naeherungsweise geloest. Und weist wie man sie exakt loest. (Additionstheoreme). Aber nur fuer ganz bestimmte Stuetzstellen n*dt. Wir berechnen y=f(n*dt)=sin(n*2*Pi/N) N=Anzahl Abtastwerte.
Und erhalten somit z.B folgende Grafik des angenaeherten (fast exakten) Merman Sinus/Kosinus :

Genuegt dir dies nicht ?
Du scheinst auch noch nicht zu sehen, dass die elegante Form genau deiner Federanschauung entspricht. Wie lautet denn die Parameterdarstellung eines Kreises ? Und wenn wir eine Darstellung (x(n),y(n),z(n)) waehlen wuerden, in der in jedem Iterationsschritt der ausgedruckte Punkt mit den Koordinaten fuer z um dt versetzt ist. Was wuerden wir erhalten ?

x(n)=cos(n*2*Pi/N),
y(n)=sin(n*2*Pi/N)
z(n)=n*2*Pi/N, (dt=2*Pi/N)

Eine Schraubenfeder in Parameterdarstellung.

Gruesse

Ge?ndert von richy (18.12.11 um 00:20 Uhr)
Mit Zitat antworten
  #38  
Alt 17.12.11, 19:10
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Die Parameterdarstellung der Schraubenlinie ist im Grunde selbsterklaerend. Du kannst dennoch z.B. hier auf Seite 23 nachschlagen :
http://www.google.de/url?sa=t&rct=j&...KtvOsQ&cad=rja



r ist die Amplitude der harmonischen Funktionen. Wir haben z.B r=1 gewaehlt.
Unserer Parameter ist n statt t.

Ge?ndert von richy (17.12.11 um 22:42 Uhr)
Mit Zitat antworten
  #39  
Alt 17.12.11, 21:36
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Vollstaendigkeitshalber :

Machen wir uns nochmals klar. Die Genauigkeit unserer kompletten Sinusfunktion haengt abgesehen von der Maschinengenauigkeit von den Konstanten C1 und C2 ab, wenn wir unsere Funktion bei t=0 starten. Denn x(t=0)=1 und y(t=0)=0 sind triviale Eigenschaften.
Und alle weiteren Betrachtungen koennten wir uns im Grunde sparen, denn wir wissen aus den Additionstheoremen wie wir C1 und C2 waehlen muessen, dass die Iteration unsere Sinus Koninussimulation sogar voellig exakt ist. (Ja, das ist etwas eigentuemlich)

C1=cos(2*Pi/N)
C2=sin(2*Pi/N)

N ist die Anzahl der Abtastwerte die wir verwenden. Im Gegenatz zu echten Simulationen ueber eine numerische Integration ist die Guete unserer Simulation so gut wie unabhaengig von der Anzahl Abtastwerten. Insbesonders wenn wir die oben angegebenen Werte verwenden, denn dann ist unsere Simulation sogar exakt. Wir sind einfach um Welten genauer als eine klasische numerische Integration. Naemlich exakt. Dass wir keine einfache numerische Integration verwenden sieht man daran, dass vor unserem x(n),y(n) ein Faktor ungleich eins steht.
Es ist voellig willkuerlich, dass wir den Kreisumfang 2*Pi in 360 Teile ,N=360 zerlegen. Dann erhalten wir mehr oder weniger anschaulich ein dt von einem Grad. Aber ok verwenden wir N=360

dt=2*Pi/360
dt=0.01745329252 ....

Jetzt verwenden wir irgendeine Methode um moeglichst genau zu berechnen :

C1_exakt=cos(0.01745329252)=0.9998476952 ...
C2_exakt=sin(0.01745329252)=0.01745240644 ...

Wir koennen beliebig aufwaendige Methoden verwenden um diese beiden Werte zu berechnen, denn es sind ja Konstanten, (nur abhaengig von N) die wir lediglich einmal in unserem Programmcode festlegen muessen. Wenn wir an Stuetzstellen von n*ein Grad interessiert sind legen wir einfach vor unserer Schleife fest :

C1_exakt=0.9998476952 ...
C2_exakt=0.01745240644 ...

Und wir erhalten eine nahezu exakte Sinus/ Kosinusfunktion. So exakt wie wir die Werte C1 und C2 bestimmt haben.
Tja das ist das scheinbar Eigentuemliche. Zwei Zahlen reichen aus um den Sinus/Kosinus vollstaendig widerzugeben. Und auch im Cordic Algo ist solche eine Konstante festgelegt.

Zusatzgedanken :
a) Was passiert wenn wir N irrational waehlen ?
b) Wir wollen mt der Methode eine sin-Funktion fuer einen Microprozessor implementieren. Nun kann das Argument natuerlich ausserhalb unserer Stuetzstellen liegen. Z.B sin(4.5 Grad). Wie wurden wir am geschicktesten vorgehen ? Waehlen wir dt=0.1 Grad und lassen die Schleife 45 mal durchlaufen ? Nein, wir kommen auch in 9 Schleifenschritten zum Erfolg.
c) Gibt es ein besonders einfach auszudrueckendes cos(dt), sin(dt) ?

Davon abgesehen :

Im Grunde haben wir alle Aufgaben schon geloest.
Nun ist es aber schon von Interesse zu verfolgen, ob unser erfolgreiches, exaktes Additionstheoremprinzip sich nicht fuer andere Aufgabenstellungen heranziehen laesst. (Ich weiss im Moment noch nichtmal genau fuer welche). Ein reines Brainstorming. Du hast, wohl ohne es selbst zu bemerken, die Taylorreihen oder allgemein Potenzreihen mit ins Spiel gebracht. Verwenden wir fuer C1 und C2 Potenzreihen als Naeherung, so bewirkt die Iteration, dass das Entwicklungszentrum dieser Potenzreihen an die Stellen t=n*dt verschoben wird. Hmmm ... Das kann man per Hand kaum nachrechnen und veranschaulichen, aber mit Maple geht das. Du haengst an dieser Wurzeldarstellung. In dem Fall waere diese sogar auch sinnvoll. Es ergaeben sich Kettenwurzeln, die das Entwicklungszentrum + Konvergenzradius der Potenzreihe nach n*dt transformieren.

Und der eigentliche Nachtrag des Threads sollte sein, dass du zu recht bemaengelt hast, dass meine graphische Darstellung der Potenzreihen
c2=wurzel(x²-(x⁴/4))
c2=x-x³/6
gar nicht darstellt wie diese sich fuer die kleinen interessierenden Werte verhalten. Was ist die Aufgabe dieser Reihen ? Sie sollen C1_exakt, C2_exakt fuer ein Argument
fuer z.B ein Grad approximieren. Ok, schauen wir uns an wie gut sie dazu in der Lage sind indem wir den absoulten Fehler in diesem Bereich, z.B 0..Pi/180 betrachten :

Merman :


Taylor


Bitte die Skalierung beachten ! Beides ist ok, da der Fehler etwa im Bereich der Maschinengenauigkeit (10^-9) liegt. Aber nun sieht man zweifelsohne, dass die Taylorapproximation die gestellte Aufgabe um etwa den Faktor "10 000" genauer loest. Dazu enthaelt sie keine Wurzel und weniger Multiplikationen.
Dennoch hatte ich numerisch nur einen Genauigkeitsgewinn des Faktors 10-100 ermittelt. Warum das ? Naja. Schauen wir uns mal in dem Bereich den Fehler von C1 an. cos(t)-(1-t^2/2) :



Der Fehler liegt im Bereich 10^-9. Ich hatte einen hoeheren Fehler erwartet und kann daher den Faktor 100 im Moment nicht erklaeren. Numerik ist nunmal nicht ganz so einfach :-)

BTW: Vielleicht hat deine Tochter noch gewisse Probleme bei der Erstellung der Weltformel, da ihr Vater kein Maple benutzt. Das Christkind koennte dies doch aendern nicht ?
Und eine alte Version koennte dir auch der Weihnachsmann im Forum zur Verfuegung stellen.

Gruesse

Ge?ndert von richy (18.12.11 um 00:17 Uhr)
Mit Zitat antworten
  #40  
Alt 17.12.11, 22:43
Benutzerbild von Marco Polo
Marco Polo Marco Polo ist offline
Moderator
 
Registriert seit: 01.05.2007
Beitr?ge: 4.998
Standard AW: Math Schwingungs DZGL

Zitat:
Zitat von richy Beitrag anzeigen
BTW: Vielleicht hat deine Tochter noch gewisse Probleme bei der Erstellung der Weltformel, da ihr Vater kein Maple benutzt. Das Christkind koennte dies doch aendern nicht ?
Und eine alte Version koennte dir auch der Weihnachsmann im Forum zur Verfuegung stellen.
Er kann ja Graf Maple aus der Wurstfachabteilung fragen.
Mit Zitat antworten
Antwort

Lesezeichen


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beitr?ge zu antworten.
Es ist Ihnen nicht erlaubt, Anh?nge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitr?ge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
ScienceUp - Dr. Günter Sturm