Einzelnen Beitrag anzeigen
  #9  
Alt 12.11.11, 03:47
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

Zu meiner Iteration :
Zitat:
Insofern erhälst du eine ungefähre Sinuskurve, sie müsste allerdings ungenau sein, da deine Konstante c=0.01 sehr belibieg scheint,
Sie ist zunaecht ungenau, weil ich erster Ordnung (Euler) integriere.



Und ich hab schon die Loesung waerum die zweite Methode stabil und relativ genau ist . In der Grafik ist die Iteration (rot) und die exakte Loesung (gruen) dargestellt :


Bis auf die roten Puenktchen fast deckungsgleich.
Hier einige Werte fuer 200 Abtastwerte pro 2*Pi:

Iteration := -.09699045186
Exakt := -.09410831333

Iteration := -.06569064212
Exakt := -.06279051954

Iteration := -.03432606403
Exakt := -.03141075908

Iteration := -.00292764181
Exakt := 0

Man kann das durch die Anzahl Abtastwerte, dt genauer haben :
dt=2*Pi/2000

Exakt := -.009424638434
Iteration := -.009462599264

Exakt := -.006283143966
Iteration := -.006322693191

Exakt := -.003141587486
Iteration := -.003182724778

An deine Genauigkeit reicht es nicht ran, dafuer ist die Iteration fast unverschaemt einfach und dennoch stabil:

> y:=0; x:=1; c:=3.14*0.01; N:=200;
>
> for i from 1 to N do
> x:=x-c*y; # Erzeugt den Cosinus
> y:=y+c*x; # Erzeugt den Sinus
> od:

c ist bei mir nicht beliebig sondern das ist dt*omega. Nach 100 Schritten bin ich im obigen Beispiel bei Pi und nach 200 Schriten bei 2*Pi

Zitat:
"sicherst" du x über st=x, allerdings steht diese Zuweisung innerhalb der Programmschleife, insofern wäre stets st = x(n-1)
So soll es gemaess Euler auch sein. Aber wie ich vermutete ist Euler fuer manche Faelle (Systeme) instabil.
Zitat:
Zitat von Wiki
The Euler method can also be numerically unstable, especially for stiff equations. This limitation—along with its slow convergence of error with h—means that the Euler method is not often used, except as a simple example of numerical integration. The instability can be avoided by using the Euler–Cromer algorithm.
http://en.wikipedia.org/wiki/Euler%27s_method


Schauen wir mal unter Euler-Cromer :

http://en.wikipedia.org/wiki/Euler%E...omer_algorithm



Siehst du das Detail ?

Zitat:
The difference with the standard Euler method is that the semi-implicit Euler method uses v(n+1) in the equation for x(n+1), while the Euler method uses v(n).
Die stabile Integration (ohne st) ist somit eine Euler Cromer-Integration und man kann diese weiter ohne numerischen Aufwand verbessern. Fuer musikalische Anwendungen (immer zeitkritisch) waere das vollkommen ausreichend. Fuer eine naturwissenschaftliche natuerlich nicht. Da verwendet man Runge Kutta oder Adam Bashford 4 ter Ordnung.

Anm:
Ah, du hast deine Iteration irgendwie fundamental geometrisch hergeleitet, nicht algebraisch. Das scheint mir auesserst interessant, weil sie so genau ist.

Viele Gruesse

Ge?ndert von richy (12.11.11 um 06:46 Uhr)
Mit Zitat antworten