Einzelnen Beitrag anzeigen
  #1  
Alt 11.05.23, 19:09
ghostwhisperer ghostwhisperer ist offline
Guru
 
Registriert seit: 08.06.2009
Ort: Kronberg
Beitr?ge: 559
ghostwhisperer eine Nachricht ?ber ICQ schicken
Standard Entwicklung von Differential-Gleichungen simulieren

Hallo!
Ich hab mal ein grundlegend mathematisches Problem:

Wie simuliert man eine Differential-Gleichung? Sprich, wie funktioniert eine numerische Entwicklung?
Ganz einfaches Modell: eine linkslaufende (+k) und eine rechtslaufende Welle (-k)
sollten sich zu einer Stehwelle summieren.

Ich hab jetzt das Problem, dass die numerische zeitliche Entwicklung asymmetrisch ist. Und zwar egal ob in Excel oder in SciLab. Es liegt also am mathematisch-numerischen Ansatz. Entweder beide Wellen evolvieren in plus oder in minus-Richtung. Daran ist im folgenden Pseudocode nur ein Vorzeichen schuld. Ob ich erste und zweite Ableitung auf die "Integrale" addiere oder subtrahiere. Im Grunde sehen die Wellen in beiden Fällen ok aus, bis auf diese zeitliche Asymmetrie..
Der Pseudocode in SciLab (abgesehen von initialisieren und Schleifen usw):

DAs ganze ist nur eindimensional. Was mache ich falsch beim "integrieren"?
- das ganze auf einer "geschlossenen Kurve". Die Ränder sind verknüpft.

fi: erste Ableitung
ffi: zweite Ableitung
v: erste Summation "Geschwindigkeit"
s: zweite Summation "Elongation"


for i=1:nFrames

for j=2:1999
fi(j)=(u(j+1)-u(j-1))/2/0.006;
end
fi(1)=(u(2)-u(2000))/2/0.006;
fi(2000)=(u(1)-u(1999))/2/0.006;

for j=2:1999
ffi(j)=(fi(j+1)-fi(j-1))/2/0.006;
end
ffi(1)=(fi(2)-fi(2000))/2/0.006;
ffi(2000)=(fi(1)-fi(1999))/2/0.006;

for j=1:2000
v(j) = ffi(j)*0.006+fi(j);
end

for j=1:2000
s(j)= v(j)*0.006+s(j);
u(j)=s(j);
end
end


Hab bisher keine Arbeit in der Richtung gefunden.. DANKE!

GRüße, ghosti
__________________
Koordinatensysteme sind die Extremstform von Egoisten- sie beziehen alles auf sich selbst.

http://thorsworld.net/
Mit Zitat antworten