24.02.2014 Aufrufe

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

C.4 Prädiktor-Korrektur Methode Programme<br />

k 3 = hf<br />

(x ′ n + h 3 , y n + 1 )<br />

6 (k 1 + k 2 )<br />

k 4 = hf<br />

(x ′ n + h 2 , y n + 1 )<br />

8 (k 1 + 3k 3 )<br />

k 5 = hf<br />

(x ′ n + h , y n + 1 )<br />

2 (k 1 − 3k 3 + 4k 4 )<br />

und erhält für y n+1 = y n + 1 (k 6 1 + 4k 4 + k 5 ). Diese Annäherung ist von der gleichen<br />

Fehlergrößenordnung wie das Runge-Kutta Verfahren vierter Ordnung aber erlaubt<br />

gleichzeitig e<strong>in</strong>e Abschätzung über den gemachten lokalen Fehler, hierbei gilt<br />

e = 1 (<br />

k 1 − 9 15 2 k 3 + 4k 4 − 1 )<br />

2 k 5 . (C.1)<br />

Mit dieser Fehlervoraussage ist es möglich e<strong>in</strong>e adaptive Schrittweitensteuerung zu<br />

machen. Hierbei muss nur die Fehlerschranke festg<strong>el</strong>egt werden. Arbeitet man mit<br />

e<strong>in</strong>er festen Fehlerschranke, die <strong>in</strong> den Numerikprogrammen durch die Toleranz vorgegeben<br />

wird, dann arbeiten die Programme <strong>in</strong> den meisten Fällen mit der ”<br />

step<br />

doubl<strong>in</strong>g“-Methode.<br />

C.4 Prädiktor-Korrektur Methode<br />

Die <strong>in</strong> Abschnitt 3.3.4 vorgest<strong>el</strong>lte Methode um mitt<strong>el</strong>s e<strong>in</strong>es Prädiktionswertes<br />

und anschliessender Korrektur den nächsten Zustand verherzusagen, lässt sich <strong>in</strong><br />

MATLAB r○ durch die folgenden Funktionen implementieren. Hierbei hat man mehrer<br />

Prädiktor- und Korrektorfunktionen zur Auswahl. Je nach Problem müssen diese<br />

angepasst werden, an dieser St<strong>el</strong>le seien nur kurz das Euler-Verfahren, das Crank-<br />

Nicolson Verfahren und die Simpson Integration (als weitere Möglichkeit der Korrektur)<br />

vorgest<strong>el</strong>lt.<br />

C.4.1 MATLAB: Prädiktor-Korrektur<br />

E<strong>in</strong>e allgeme<strong>in</strong>e Form der Prädiktor-Korrektur Methode lässt sich wie folgt <strong>in</strong> MAT-<br />

LAB implementieren (siehe CD predcor.m).<br />

function [xout,yout] = predcorr(odefun,xspan,y0,M,pred,corr,varag<strong>in</strong>)<br />

% PREDCORR loest e<strong>in</strong>e gegebene ODE mitt<strong>el</strong>s der Praediktor-Korrektur<br />

% Methode, wobei x=[x0 xend] das Intervall ist, ueber der<br />

% die ODE g<strong>el</strong>oest werden soll. y0 ist dabei der Startwert,<br />

% M ist die Anzahl der aequidistanten Schrittweiten zur<br />

% Berechnung. Die Funktion ODEFUN(X,Y) liefert dabei nach<br />

% y’=f(x,y) die Werte fuer f(x,y). Pred und corr s<strong>in</strong>d die<br />

% verwendeten Praediktor und Korrektor Methoden, diesen werden<br />

% die zusaetzlichen Parameter P1, P2,... uebergeben.<br />

H=(xspan(2)-yspan(1))/M; xx=[tspan(1):H:tspan(2)];<br />

u=y0; [n,m]=size(u); if n~=m, u=u’; end<br />

for x = xx(1:end-1)<br />

y = u(:,end); fn = feval(odefun,x,y,vararg<strong>in</strong>{:});<br />

upre = feval(pred,x,y,H,fn);<br />

59

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!