Einzelnen Beitrag anzeigen
  #5  
Alt 08.11.11, 23:57
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Verhulst und Kunst

Zitat:
(die Formel ist für Echtzeitanwendungen wohl nicht geeignet)
Ja, nicht unbedingt :-)

Aber schoen dass du so etwas ausprobiert hast. Ich hatte auch mal die Idee fuer einen iterierten Sinus. Und diese wie folgt geloest.
Man weiss ja : Die Ableitung der exp-Funktion ist wiederum die exp-Funktion
dexp(alpha*t)/dt = alpa*exp(alpha*t) Klaro oder ?

Als Elektolurch mache ich mir es jetzt einfach und verwende alpha=i*a
sowie exp(i*a*t)=cos(a*t)+i*sin(a*t) und setze das ein :

dcos(a*t)/dt+i*dsin(a*t)/dt=i*a*cos(a*t)+i*a*i*sin(a*t)
dcos(a*t)/dt+i*dsin(a*t)/dt=i*a*cos(a*t)-a*sin(a*t)

Imaginaer und Realteil getrennt betrachten :
dcos(a*t)/dt=-a*sin(a*t)
dsin(a*t)/dt= a*cos(a*t)

Wie in deiner Iteration erhalte ich ein System. Das ist auch logisch, da eine Schwingung immer eine DGL 2 ter Ordnung ist. Und ich substituiere wie du :

x(a*t)=cos(a*t)
y(a*t)=sin(a*t)

dx(a*t)/dt=-a*y(a*t)
dy(a*t)/dt= a*x(a*t)

Nun mache ich etwa aus numerischer Sicht grauenhaftes. Ich ersetze das Differential durch eine Differenz erster Ordung. In der Regel ist das viel zu ungenau, aber egal .... :

x(k+1)-x(k)=dt*-a*y(k)
y(k+1)-y(k)=dt* a*x(k)

mit c=a*dt =>

x(k+1)=x(k)-c*y(k), x(0)=1
y(k+1)=y(k)+c*x(k), y(0)=0

Implementation :
> y:=0; x:=1; c:=3.14*0.01; N:=800;
> for i from 1 to N do
> st:=x;
> x:=x-c*y;
> y:=y+c*st;
> fx[i]:=x;
> fy[i]:=y;
od:

Mit st sichere ich den Wert x(i)
Wohl aufgrund der ungenauen Differenz 1.ter Ordung ist das Ergebnis sehr bescheiden.



Vielleicht habe ich mich auch verrechnet ? Egal.

Jetzt implementiere ich die Gleichung mal falsch, indem ich den x Wert nicht sichere :

> for i from 1 to N do
> x:=x-c*y;
> y:=y+c*x;
> od:

Und die Iteration erzeugt nun seltsamerweise einen stabilen recht genauen Sinus :



Mit geringstem Aufwand nahezu perfekt.
Hmm, kannst du es erklaeren oder jemand anderes im Forum ?
Also ich im Moment nicht :-)
Gruesse

Ge?ndert von richy (09.11.11 um 03:34 Uhr)
Mit Zitat antworten