Teilchenbewegungen in el./magn. Feldern (Visualisierung)
Teilchenbewegungen in el./magn. Feldern (Visualisierung)
Teilchenbewegungen in el./magn. Feldern (Visualisierung)
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