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.
<strong>Visualisierung</strong> der Bewegung g<strong>el</strong>adener<br />
Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
Bach<strong>el</strong>or-Arbeit<br />
Patrick Daum<br />
Fachbereich Physik<br />
August 2004
.<br />
MATLAB r○ is a registered trademark of<br />
The MathWorks Inc.<br />
For production <strong>in</strong>formation, please contact:<br />
The MathWorks Inc.<br />
3 Apple Hill Drive<br />
Natick, MA 01760-2098, USA<br />
Phone: (508) 647-7000<br />
EMail: <strong>in</strong>fo@mathworks.com<br />
www.mathworks.com
c○ NASA Space Science
Inhaltsverzeichnis<br />
1 E<strong>in</strong>leitung 1<br />
2 Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern 3<br />
2.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
2.2 Gyration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2.3 Driftbewegungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
2.3.1 Driften <strong>in</strong> homogenen Kraftf<strong>el</strong>dern . . . . . . . . . . . . . . . 6<br />
2.3.1.1 Grundlage des Führungszentrums . . . . . . . . . . . 6<br />
2.3.1.2 Ambipolare Drift . . . . . . . . . . . . . . . . . . . . 7<br />
2.3.1.3 Gravitationsdrift . . . . . . . . . . . . . . . . . . . . 9<br />
2.3.1.4 Dia<strong>magn</strong>etische (quasi)-Drift . . . . . . . . . . . . . 10<br />
2.3.2 Driften <strong>in</strong> <strong>in</strong>homogenen Kraftf<strong>el</strong>dern . . . . . . . . . . . . . . 11<br />
2.3.2.1 Gradientendrift . . . . . . . . . . . . . . . . . . . . . 11<br />
2.3.2.2 Krümmungsdrift . . . . . . . . . . . . . . . . . . . . 12<br />
2.3.2.3 Polarisationsdrift . . . . . . . . . . . . . . . . . . . . 13<br />
2.3.2.4 Adiabatische Invarianten . . . . . . . . . . . . . . . . 14<br />
2.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
3 Numerische Beschreibung der Bewegung 17<br />
3.1 Allgeme<strong>in</strong>e Bewegungsgleichung . . . . . . . . . . . . . . . . . . . . . 17<br />
3.2 Lösungsverfahren für DGL-Systeme . . . . . . . . . . . . . . . . . . . 18<br />
3.3 Angewandte Lösungsverfahren . . . . . . . . . . . . . . . . . . . . . . 18<br />
3.3.1 Euler Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
3.3.2 Runge-Kutta Verfahren . . . . . . . . . . . . . . . . . . . . . . 20<br />
3.3.2.1 Adaptive Schrittweite . . . . . . . . . . . . . . . . . 23<br />
3.3.3 Burlisch-Stoer Verfahren . . . . . . . . . . . . . . . . . . . . . 24<br />
3.3.4 Prädiktor-Korrektur Methode . . . . . . . . . . . . . . . . . . 25<br />
3.3.4.1 E<strong>in</strong>schrittverfahren . . . . . . . . . . . . . . . . . . . 26<br />
3.3.4.2 Mehrschrittverfahren . . . . . . . . . . . . . . . . . . 27<br />
3.3.4.3 Adams-Bashforth-Moulton Verfahren . . . . . . . . . 28<br />
3.4 MATLAB ODE Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
i
3.4.1 Implementierungen und Aufrufe der ODE-Solver“ . . . . . . ”<br />
29<br />
3.4.1.1 Aufruf e<strong>in</strong>es ODE Solvers . . . . . . . . . . . . . . . 30<br />
3.4.1.2 ode23 Methode . . . . . . . . . . . . . . . . . . . . . 31<br />
3.4.1.3 ode45 Methode . . . . . . . . . . . . . . . . . . . . . 32<br />
3.4.1.4 ode15s Methode . . . . . . . . . . . . . . . . . . . . 32<br />
3.4.1.5 ode113 Methode . . . . . . . . . . . . . . . . . . . . 32<br />
3.5 Geschw<strong>in</strong>digkeitskriterium . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
3.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />
4 <strong>Visualisierung</strong> <strong>in</strong> MATLAB 38<br />
4.1 Implementierung (GUI) . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />
4.2 Mathematische Umsetzung . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
4.3 Programmfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
4.3.1 Bedienung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />
4.3.2 Screenshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
4.3.2.1 Gyration . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
4.3.2.2 Driften . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
4.3.2.3 Bewegung im Dipolf<strong>el</strong>d . . . . . . . . . . . . . . . . . 46<br />
4.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
5 Zusammenfassung 49<br />
6 Abstract 50<br />
Literatur 51<br />
A Form<strong>el</strong>n, Tab<strong>el</strong>len, Erläuterungen 53<br />
A.1 Maxw<strong>el</strong>lsche Gleichungen . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />
A.2 Zeitkonstanten der Bewegungen <strong>in</strong> W<strong>el</strong>traumplasmen . . . . . . . . . 53<br />
A.3 Erläuterung: MATLAB/MEX . . . . . . . . . . . . . . . . . . . . . . 53<br />
B Ausgewählte Gleichungen 54<br />
B.1 Saha Gleichung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
B.2 Gyration verktori<strong>el</strong>l . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />
B.3 Gradientendrift (ausführlich) . . . . . . . . . . . . . . . . . . . . . . . 55<br />
B.4 Simpson (Trapez-)Integration . . . . . . . . . . . . . . . . . . . . . . 56<br />
ii
C Programme 57<br />
C.1 C-Programm: Runge-Kutta 4. Ordnung . . . . . . . . . . . . . . . . . 57<br />
C.2 MATLAB: Runge-Kutta 4. Ordnung . . . . . . . . . . . . . . . . . . 58<br />
C.3 Runge-Kutta-Merson Algorithmus . . . . . . . . . . . . . . . . . . . . 58<br />
C.4 Prädiktor-Korrektur Methode . . . . . . . . . . . . . . . . . . . . . . 59<br />
C.4.1 MATLAB: Prädiktor-Korrektur . . . . . . . . . . . . . . . . . 59<br />
C.4.2 MATLAB: Simpson . . . . . . . . . . . . . . . . . . . . . . . . 60<br />
C.5 V<strong>el</strong>ocity-Verlet Algorithmus . . . . . . . . . . . . . . . . . . . . . . . 60<br />
D MATLAB 61<br />
D.1 particles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
D.2 eqMotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />
D.3 solvercontrol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />
Abbildungsverzeichnis<br />
2.1 Gyrationsbewegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
2.2 Teilchenbahn und Führungszentrum . . . . . . . . . . . . . . . . . . . 6<br />
2.3 Teilchenbahn <strong>in</strong> e<strong>in</strong>em E ⃗ × B-F<strong>el</strong>d ⃗ . . . . . . . . . . . . . . . . . . . 8<br />
2.4 Schema e<strong>in</strong>er ambipoleren E ⃗ × B-Drift ⃗ . . . . . . . . . . . . . . . . . 8<br />
2.5 Gravitationsdrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
2.6 Dia<strong>magn</strong>etische Drift . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
2.7 Gradientendrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.8 Krümmungsdrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
2.9 Magnetischer Spieg<strong>el</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
2.10 Bewegung der Plasmateilchen im Magnetf<strong>el</strong>d . . . . . . . . . . . . . . 16<br />
3.1 Euler-Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
3.2 Schema Runge-Kutta (RK4) . . . . . . . . . . . . . . . . . . . . . . . 22<br />
3.3 Fehlerentwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
3.4 Burlisch-Stoer (Richardson Extrapolation) . . . . . . . . . . . . . . . 25<br />
3.5 Implizites Euler Verfahren . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3.6 Prädiktor Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
3.7 Adams-Bashforth-Moulton Integration . . . . . . . . . . . . . . . . . 28<br />
iii
3.8 Genauigkeit der ODE Verfahren . . . . . . . . . . . . . . . . . . . . . 35<br />
4.1 Layout des Programms . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />
4.2 Tokamak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />
4.3 Anfangsbildschrim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
4.4 Solver Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />
4.5 Simulierte Gyration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.6 Simulierte Driften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />
4.7 Simulierte Flugbahn <strong>in</strong> e<strong>in</strong>em Dipolf<strong>el</strong>d . . . . . . . . . . . . . . . . . 47<br />
B.1 Gyration vektori<strong>el</strong>l . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />
Tab<strong>el</strong>lenverzeichnis<br />
3.1 Laufzeiten von ”<br />
ODE-Solvern“ . . . . . . . . . . . . . . . . . . . . . 34<br />
A.1 Zeitkonstanten (Beweg. W<strong>el</strong>traumplasmen) . . . . . . . . . . . . . . . 53<br />
iv
E<strong>in</strong>leitung<br />
1 E<strong>in</strong>leitung<br />
Die <strong>Visualisierung</strong> von physikalischen Vorgängen st<strong>el</strong>lt <strong>in</strong> der modernen Physik e<strong>in</strong><br />
unverzichtbares Hilfsmitt<strong>el</strong> dar, sei es zur Darst<strong>el</strong>lung komplexer Sachverhalte oder<br />
um neue Erkenntnisse über Vorgänge bei unterschiedlichen Parametern zu erhalten.<br />
Die wichtigste Grundlage dieser <strong>Visualisierung</strong>en ist die Numerik. Diese ist das<br />
B<strong>in</strong>deglied zwischen e<strong>in</strong>er analytischen Gleichung, die e<strong>in</strong> naturwissenschaftliches<br />
Problem beschreibt, und den Berechnungen auf Computern. Numerische Verfahren<br />
liefern hierbei e<strong>in</strong>e approximative Lösung e<strong>in</strong>er mathematisch exakten Gleichung,<br />
die aus e<strong>in</strong>er physikalischen Fragest<strong>el</strong>lung erwachsen ist. Diese Verfahren beschreiben<br />
somit die Wirklichkeit durch Zahlen. Was für Computer und die Mathematik<br />
zweckmäßig ist, wird für Menschen aber schn<strong>el</strong>l unüberschaubar. Daher ist es nötig<br />
diese Datenmengen bzw. diese Ergebnisse entsprechend aufzubereiten. In Zeiten immer<br />
leistungsstärkerer Computer s<strong>in</strong>d Softwarepakete zum numerischen Rechnen, <strong>in</strong><br />
Wissenschaft und Lehre, nicht mehr wegzudenken. Hierbei bietet MATLAB r○ (für<br />
MATrix LABoratory) von der Firma MathWorks e<strong>in</strong> mächtiges numerisches Softwarepaket<br />
zur Lösung diverser mathematischer Probleme und zur graphischen Darst<strong>el</strong>lung<br />
der Ergebnisse. MATLAB r○ dient im Gegensatz zu Computeralgebrasystemen<br />
nicht der symbolischen, sondern primär der numerischen Lösung von Problemen.<br />
Alle vorgest<strong>el</strong>lten numerischen Pakete und ihre Optionen und Möglichkeiten<br />
beziehen sich auf das 13. und 14. R<strong>el</strong>ease (Versionen 6.5 und 7.0) von MATLAB r○ .<br />
Natürlich unterscheiden sich die numerischen Methoden <strong>in</strong> Genauigkeit, Konvergenz,<br />
Stabilität, Effizienz und Schn<strong>el</strong>ligkeit und müssen daraufh<strong>in</strong> genaustens geprüft<br />
werden. E<strong>in</strong> komplexes, physikalisches Problem besteht <strong>in</strong> der Reg<strong>el</strong> aus e<strong>in</strong>er<br />
sequenti<strong>el</strong>len oder verketteten Anwendung dieser Methoden. Die Methoden s<strong>el</strong>bst<br />
s<strong>in</strong>d meist Standardverfahren und der Literatur zu entnehmen. Es können allerd<strong>in</strong>gs<br />
durch die Berücksichtigung neuer physikalischer Effekte Komplikationen auftreten,<br />
die im e<strong>in</strong>fachsten Fall nur e<strong>in</strong>e Modifikation der Methode(n), im schwierigsten Fall<br />
e<strong>in</strong>en völlig neuen Zugang erfordern.<br />
Des weiteren wird es für Wissenschaftler immer wichtiger, ihre Forschungsergebnisse<br />
zu präsentieren, somit e<strong>in</strong>er breiten Öffentlichkeit Rechenschaft über ihr Tun<br />
abzulegen. Hierbei ist es auf der e<strong>in</strong>en Seite nötig, die Ergebnisse zu präsentieren<br />
und andererseits Erkenntnisse aus den Simulationen für eventu<strong>el</strong>l durchzuführende<br />
Experimente zu gew<strong>in</strong>nen.<br />
Hauptanwendungsgebiet dieser Arbeit s<strong>in</strong>d <strong>Visualisierung</strong>en von E<strong>in</strong>z<strong>el</strong>teilchenbewegungen<br />
<strong>in</strong> annähernd zeitlich konstanten Magnetf<strong>el</strong>dern. Dazu werden Erkenntnisse<br />
und bekannte Gleichungen aus der Plasma Physik verwendet und mit Hilfe von<br />
MATLAB r○ die virtu<strong>el</strong>le Flugbahn e<strong>in</strong>es Teilchens bei unterschiedlichen Parametern<br />
simuliert. E<strong>in</strong> Magnetf<strong>el</strong>d bee<strong>in</strong>flußt die Bewegung g<strong>el</strong>adener Teilchen durch die Lorentzkraft.<br />
E<strong>in</strong>e quantitative Beschreibung der Bewegungen geht von e<strong>in</strong>er Kräftebilanz<br />
für e<strong>in</strong> e<strong>in</strong>z<strong>el</strong>nes Teilchen aus. Mit Hilfe dieser Beziehung lassen sich die E<strong>in</strong>z<strong>el</strong>bewegungen<br />
durch Differentialgleichungen beschreiben. Dieses soll im ersten Teil<br />
dieser Arbeit geschehen. Es werden Bewegungsgleichungen für die unterschiedlichen<br />
E<strong>in</strong>z<strong>el</strong>teilchenbewegungen aufgest<strong>el</strong>lt und erläutert. Die beschreibenden Differentialgleichungen<br />
s<strong>in</strong>d nur <strong>in</strong> e<strong>in</strong>igen Fällen analytisch lösbar, für die weiteren werden<br />
im zweiten Teil dieser Arbeit unterschiedliche numerische Lösungsverfahren vorge-<br />
1
E<strong>in</strong>leitung<br />
st<strong>el</strong>lt und <strong>in</strong> Bezug auf ihre Genauigkeit h<strong>in</strong> verglichen. Die Resultate dieser beiden<br />
Abschnitte werden <strong>in</strong> e<strong>in</strong>em dritten Teil genutzt, um mit Hilfe von MATLAB r○ e<strong>in</strong>e<br />
<strong>Visualisierung</strong> der Flugbahnen zu simlieren.<br />
Den Abschluß dieser Arbeitet bildet e<strong>in</strong> Programm, w<strong>el</strong>ches die Bewegung der Teilchen<br />
<strong>in</strong> vorgegebenen <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern moduliert und e<strong>in</strong>en schematischen<br />
E<strong>in</strong>blick <strong>in</strong> die Wirkung dieser F<strong>el</strong>der auf die Teilchen ermöglicht. Es wird e<strong>in</strong>e<br />
Brücke zwischen den theoretisch errechneten Datenvolumen und e<strong>in</strong>er anschaulichen<br />
<strong>Visualisierung</strong> geschlagen.<br />
Graue Theorie wird zur bunten Praxis“ (Stephen William Hawk<strong>in</strong>g)<br />
”<br />
2
Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
2 Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen<br />
F<strong>el</strong>dern<br />
Um die Bewegungen von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern zu beschreiben,<br />
ist es zunächst nötig, sich e<strong>in</strong> wenig mit dem Begriff des Plasmas zu beschäftigen.<br />
Das Wort Plasma (griech.: das Formbare) bezeichnet <strong>in</strong> der Physik e<strong>in</strong> vollständig<br />
oder teilweise ionisiertes Gas aus Elektronen und Ionen. Der Begriff des Plasmas<br />
wurde 1929 von Tonks und Langmuir e<strong>in</strong>geführt [35]. Bei hohen Temperaturen werden<br />
die Atome <strong>in</strong> Ionen und Elektronen aufgespalten. Der größte Teil der Materie<br />
im W<strong>el</strong>tall – Sterne und protost<strong>el</strong>lare Wolken – ist im Plasmazustand. Hierbei gibt<br />
die Saha Gleichung (B.1) [32] den Betrag der Ionisation e<strong>in</strong>es Gases bei e<strong>in</strong>er Temperatur<br />
T im thermischen Gleichgewicht an. Von entscheidender Bedeutung für die<br />
folgenden Betrachtungen ist, dass das Plasma zwei unterschiedliche ”<br />
Charaktere“<br />
besitzt. Je nach Dichte des Plasmas ist es als Flüssigkeit anzusehen und auch so<br />
mathematisch zu beschreiben und auf der anderen Seite muss man E<strong>in</strong>z<strong>el</strong>teilchenbewegungen<br />
betrachten. Es wird hier weniger über den Begriff Plasma geredet sondern<br />
vi<strong>el</strong>mehr über Bewegungen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern ohne Rückkopplung.<br />
Zunächst werden die theoretischen Grundlagen der Bewegungen und die charakteristischen<br />
Gleichungen vorgest<strong>el</strong>lt. Diese führen zu der numerischen Berechnung<br />
von Teilchenbahnen und zu deren <strong>Visualisierung</strong> mit Hilfe von MATLAB r○ . Hierzu<br />
betrachtet man bei vorgegebenen <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern die Flugbahn e<strong>in</strong>es<br />
e<strong>in</strong>z<strong>el</strong>nen Teilchens. Hierbei wird die Rückwirkung der Teilchen – durch Raumladung<br />
und Ströme – auf die F<strong>el</strong>der außer Acht g<strong>el</strong>assen. Die betrachteten F<strong>el</strong>der<br />
unterliegen dabei den Maxw<strong>el</strong>lschen Gleichungen 1 .<br />
2.1 Grundlagen<br />
Ausgangspunkt ist die Betrachtung e<strong>in</strong>er Kräftebilanz, somit aller e<strong>in</strong>z<strong>el</strong>nen Kräfte<br />
die auf e<strong>in</strong> Teilchen wirken. Es lässt sich für e<strong>in</strong> Teilchen der Ruhemasse m und der<br />
vorzeichenbehafteten Ladung q folgende NEWTONsche Bewegungsgleichung formulieren<br />
(alle Beschreibungen gehen von e<strong>in</strong>er nicht r<strong>el</strong>ativistischen Betrachtung aus),<br />
es gilt<br />
(<br />
m˙⃗v = q ⃗v × B ⃗ )<br />
+ F ⃗ . (2.1)<br />
Hierbei ist ⃗ F e<strong>in</strong>e geschw<strong>in</strong>digkeitsunabhängige Kraft, ˙⃗v<br />
die zeitliche Ableitung der Geschw<strong>in</strong>digkeit und ⃗ B die <strong>magn</strong>etische<br />
Flußdichte, somit der <strong>magn</strong>etische Fluss (Φ =<br />
∫ ⃗B d ⃗ A) pro Flächene<strong>in</strong>heit.<br />
Die <strong>magn</strong>etische Flussdichte ⃗ B ist e<strong>in</strong>e vektori<strong>el</strong>le Größe,<br />
ihr Betrag gibt die Stärke des Magnetf<strong>el</strong>des an. Die Richtung<br />
der <strong>magn</strong>etischen Flussdichte ergibt sich aus der Ausrichtung (gleichnamige<br />
Pole stoßen sich ab) und der Bewegung (bed<strong>in</strong>gt durch die abstoßenden Kräfte) e<strong>in</strong>es<br />
Probe-Dipols. Dieses ist <strong>in</strong> Analogie zur Def<strong>in</strong>ition des <strong>el</strong>ektrischen F<strong>el</strong>des zu<br />
1 siehe Maxw<strong>el</strong>lsche Gleichungen Anhang A.1<br />
3
2.2 Gyration Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
sehen, w<strong>el</strong>ches durch die Kraft auf e<strong>in</strong>e Probe-Ladung ausgedrückt wird. E<strong>in</strong>e bewegte<br />
Ladung q erfährt e<strong>in</strong>e Kraft. Die Lorentzkraft, sie ist die Kraft, die auf e<strong>in</strong>e mit<br />
der Gewschw<strong>in</strong>digkeit ⃗v, durch e<strong>in</strong> Magnetf<strong>el</strong>d mit e<strong>in</strong>er <strong>magn</strong>etischen Flussdichte<br />
⃗B, bewegte Ladung wirkt. Der Betrag der Kraft ist gegeben durch die Geschw<strong>in</strong>digkeit<br />
der Ladung, die Größe der Ladung, die <strong>magn</strong>etische Flussdichte und dem<br />
W<strong>in</strong>k<strong>el</strong> zwischen Geschw<strong>in</strong>digkeit und <strong>magn</strong>etischer Flussdichte. Diese Beziehung<br />
ist <strong>in</strong> Gleichung (2.1) dargest<strong>el</strong>lt. Sie ist nur <strong>in</strong> e<strong>in</strong>fachen Fällen (homogene bzw.<br />
zeitunabhängige F<strong>el</strong>der) analytisch lösbar. Für schwache räumliche Gradienten bzw.<br />
langsam zeitveränderliche F<strong>el</strong>der sollen im weiteren die soweit vorhandenen analytischen<br />
Löungen bzw. numerischen Näherungslösungen kurz skizziert werden.<br />
2.2 Gyration<br />
Für e<strong>in</strong>e erste Betrachtung ist es s<strong>in</strong>nvoll nur e<strong>in</strong> konstantes homogenes Magnetf<strong>el</strong>d<br />
anzunehmen. Dann vere<strong>in</strong>facht sich Gleichung (2.1) zu<br />
(<br />
m˙⃗v = q ⃗v × B ⃗ )<br />
mit B ⃗ = const . (2.2)<br />
Nun lässt sich die Bewegung durch die f<strong>el</strong>dl<strong>in</strong>ienparall<strong>el</strong>e ⃗v ‖ und die f<strong>el</strong>dl<strong>in</strong>iensenkrechte<br />
⃗v ⊥ Komponente beschreiben, man erhält so<br />
m⃗v ˙ ‖ = 0 (2.3)<br />
m⃗v ˙<br />
(<br />
⊥ = q ⃗v ⊥ × B ⃗ )<br />
. (2.4)<br />
Die Teilchenbewegung parall<strong>el</strong> zum Magnetf<strong>el</strong>d ist konstant ( ⃗v ‖ = const. ) . Für die<br />
mit der senkrechten Komponente verbundene k<strong>in</strong>etische Energie erhält man<br />
dE k<strong>in</strong><br />
= d ( ) 1<br />
(<br />
dt dt 2 m⃗v2 ⊥ = ⃗v ⊥ · m · ⃗v ˙ ⊥ = q⃗v ⊥ · ⃗v ⊥ × B ⃗ )<br />
= 0 . (2.5)<br />
Die k<strong>in</strong>etische Energie des Teilchens bleibt somit erhalten.<br />
Um die Flugbahn des Teilchens bei der Gyration zu verstehen, ist es nötig sich<br />
die Kräftebilanz anzusehen. Aus der Sicht e<strong>in</strong>es außenstehenden Beobachters wirkt<br />
die Lorentzkraft als Zentripetalkraft und beschleunigt (Richtungsänderung ist Beschleunigung)<br />
das Elektron. Aus e<strong>in</strong>em auf dem Elektron sitzenden Beobachters<br />
(Platzproblem) herrschen <strong>in</strong> diesem beschleunigten Bezugssystem Kräftegleichgewicht<br />
zwischen Lorentzkraft und Zentrifugalkraft, damit ergibt sich e<strong>in</strong>e konstante<br />
Bahnkrümmung und demnach e<strong>in</strong>e Kreisbewegung (vgl. Abb. 1(a)) und wenn v ‖ = 0<br />
e<strong>in</strong>e geschlossene Kreisbahn. Der Radius r L dieser Kreisbahn lässt sich durch Gleichsetzen<br />
beider Kräfte bestimmen<br />
(<br />
⃗F Lorentz = |q| ⃗v ⊥ × B ⃗ ) (<br />
= |q|v ⊥ s<strong>in</strong> ⃗v ⊥ , B ⃗ )<br />
⃗e r = mv2 ⊥<br />
= F<br />
r ⃗ Zentripetal .<br />
L<br />
Damit gilt für den Gyro- oder Larmor-Radius<br />
4<br />
r L = mv ⊥<br />
|q|B . (2.6)
2.2 Gyration Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
Da die Richtung der Lorentzkraft vom Ladungsvorzeichen abhängt, ist die Umlaufrichtung<br />
für positiv und negativ g<strong>el</strong>adene Teilchen entgegengesetzt. Hierbei ist der<br />
Mitt<strong>el</strong>punkt dieser Gyration das im folgenden beschriebene Führungszentrum (engl.<br />
guid<strong>in</strong>g centre). Für die Kreisfrequenz der Gyration ergibt sich aus dem Larmorradius<br />
ω B = v ⊥<br />
= |q|B<br />
r L m . (2.7)<br />
Die Bewegung des Teilchens ist somit, für v ‖ ≠ 0, e<strong>in</strong>e Spiralbahn um e<strong>in</strong>e Führungsf<strong>el</strong>d-l<strong>in</strong>e<br />
(vgl. Abb. 1(b)).<br />
(a) Geschlossene Kreisbahn der Gyration<br />
von Elektronen und Ionen; v ‖ = 0<br />
(b) Orientierung der Gyration von Elektronen und Ionen<br />
<strong>in</strong> e<strong>in</strong>em homogenen konstanten Magnetf<strong>el</strong>d; v ‖ ≠ 0.<br />
Pr<strong>in</strong>zip der Führungs-f<strong>el</strong>d-l<strong>in</strong>e (Qu<strong>el</strong>le (übersetzt): [4])<br />
Abbildung 2.1: Gyrationsbewegung<br />
Die Newtonsche Bewegungsgleichung der Gyration ist analytsich lösbar. Hierzu betrachtet<br />
man e<strong>in</strong> kartesisches Koord<strong>in</strong>atensystem, dessen z-Komponente <strong>in</strong> Richtung<br />
des Magnetf<strong>el</strong>des zeigt, somit ⃗ B = (0, 0, B z ) ist. Es ergibt sich für Gleichung (2.2)<br />
<strong>in</strong> Koord<strong>in</strong>atenschreibweise folgendes Gleichungssystem<br />
˙v x<br />
= + q m v yB z<br />
˙v y<br />
= − q m v xB z<br />
˙v z = 0 . (2.8)<br />
Durch Komb<strong>in</strong>ation der ersten beiden Gleichungen erhält man die Gleichung e<strong>in</strong>es<br />
harmonischen Oszillators<br />
¨v x = −<br />
( ) 2 ( ) 2 qBz<br />
v x = −ωB 2 m<br />
v qBz<br />
x (2.9) ¨v y = − v y = −ωB 2 m<br />
v y , (2.10)<br />
hierbei ist die Frequenz des Oszillators, die im vorh<strong>in</strong>e<strong>in</strong> bestimmte Gyro-kreisfrequenz.<br />
Die allgeme<strong>in</strong>e Lösung dieser Differentialgleichungen haben die Form<br />
v x = v ⊥ cos (Ωt + φ 0 ) v y = −v ⊥ s<strong>in</strong> (Ωt + φ 0 )<br />
mit Ω als Gyrofrequenz Ω = +ω B für Ionen und Ω = −ω B für Elektronen, φ 0 ist die<br />
<strong>in</strong>itialisierende Phase.<br />
Die durch die Lorentzkraft hervorgerufene Gyration e<strong>in</strong>es g<strong>el</strong>adenen Teilchens <strong>in</strong><br />
e<strong>in</strong>em Magnetf<strong>el</strong>d ist <strong>el</strong>ementar, jede weitere Beschreibung von Bewegungen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen<br />
F<strong>el</strong>dern hat als Grundlage die Gyration des Teilchens um e<strong>in</strong>e<br />
Führungs-f<strong>el</strong>d-l<strong>in</strong>e (siehe auch W.H. Keg<strong>el</strong> [15]).<br />
5
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
2.3 Driftbewegungen<br />
2.3.1 Driften <strong>in</strong> homogenen Kraftf<strong>el</strong>dern<br />
Zusätzlich zur oben beschriebenen Lorentzkraft kann <strong>in</strong> der Bewegungsgleichung e<strong>in</strong>e<br />
weitere Kraft ⃗ F h<strong>in</strong>zutreten. In den <strong>in</strong> dieser Arbeit angest<strong>el</strong>lten Betrachtungen<br />
von <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern, tritt zum Magnetf<strong>el</strong>d die Kraft, die durch das<br />
<strong>el</strong>ektrische F<strong>el</strong>d auf e<strong>in</strong> Teilchen ausgeübt wird, somit ⃗ F = q ⃗ E. Es ergeben sich im<br />
allgeme<strong>in</strong>en ke<strong>in</strong>e geschlossenen Kreisbahnen mehr. Die Teilchen driften <strong>in</strong> diesen<br />
F<strong>el</strong>dern, dabei resultieren die Bewegungen aus e<strong>in</strong>er Änderung des Larmorradiusses<br />
während e<strong>in</strong>er Gyration, aus Änderungen der Teilchengeschw<strong>in</strong>digkeiten oder aus<br />
Änderungen im Magnetf<strong>el</strong>d. Um die Bewegungen <strong>in</strong> solchen F<strong>el</strong>dern zu beschreiben,<br />
macht man den sogenannten ”<br />
guid<strong>in</strong>g centre“ Ansatz. Dieser wird im folgenden<br />
dargest<strong>el</strong>lt.<br />
2.3.1.1 Grundlage des Führungszentrums<br />
Das ”<br />
guid<strong>in</strong>g centre“ wurde von H. Alfvén [1] e<strong>in</strong>geführt. Dieser Ansatz geht davon<br />
aus, dass die durch die Kraft ⃗ F verursachte Bewegung der Gyration überlagert<br />
wird. Es ergibt sich e<strong>in</strong>e Bewegung des Führungszentrums ⃗r gc (d.h. der Mitt<strong>el</strong>punkt<br />
des Gyrationskreises) diese wird mit der Gyrationsbewegung überlagert. Dieses wird<br />
ausgedrückt durch den Vektor ⃗r L , der vom Ort ⃗r des Teilchens zum Gyrationszentrum<br />
zeigt und dessen Betrag den Wert des Larmorradiusses hat. Somit kann man<br />
nach Abb. 2.2 schreiben<br />
⃗r gc = ⃗r + ⃗r L<br />
mit ⃗r L<br />
vgl.Glg.(2.6)<br />
=<br />
m<br />
|q|B 2 ⃗v × ⃗ B . (2.11)<br />
Dann st<strong>el</strong>lt ⃗r gc die über die Gyrationsbewegung gemitt<strong>el</strong>te Bahnkurve des Teilchens<br />
dar. Abb. 2.2 verdeutlicht die beschriebene Geometrie 2 .<br />
Abbildung 2.2: Aufspaltung der Bewegung e<strong>in</strong>es Teilchens im Magnetf<strong>el</strong>d mit äußerer<br />
Kraft <strong>in</strong> die Gyrationsbewegung ⃗r L und die Bewegung des Führungszentrums ⃗r gc (Qu<strong>el</strong>le:<br />
Max Planck Institut für Plasmaphysik)<br />
Die Geschw<strong>in</strong>digkeit des Führungszentrums ⃗v gc lässt sich nun mit Hilfe der Bewegungsgleichungen<br />
ausdrücken, hierbei ergibt sich unter Annahme e<strong>in</strong>es zeitlich<br />
konstanten Magnetf<strong>el</strong>des<br />
⃗v gc = ˙⃗r gc = ⃗v +<br />
m Glg.(2.1)<br />
˙⃗v × B = ⃗v + 1 ( )<br />
⃗F + q⃗v × B ⃗ × B<br />
|q|B 2 |q|B ⃗ (2.12)<br />
2<br />
2 genauere vektori<strong>el</strong>le Beschreibung siehe Anhang B.2<br />
6
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
der letzte Ausdruck lässt sich mit Hilfe der Vektoridentität<br />
(<br />
⃗v × B ⃗ )<br />
× B ⃗ (<br />
⃗B)<br />
= ⃗v · ⃗B − B 2 ⃗v = B 2 ⃗v ‖ − B 2 ⃗v = −B 2 ⃗v (2.13)<br />
weiter vere<strong>in</strong>fachen. Es ergibt sich<br />
⃗v gc = ⃗v + ⃗ F × ⃗ B<br />
|q|B 2 − ⃗v ⊥ = ⃗v ‖ + ⃗ F × ⃗ B<br />
|q|B 2 . (2.14)<br />
Somit kann man die Geschw<strong>in</strong>digkeit des Führungszentrums <strong>in</strong> zwei Anteile zerlegen.<br />
E<strong>in</strong>mal <strong>in</strong> die Parall<strong>el</strong>bewegung, diese ist durch m˙⃗v ‖ = F ⃗ (<br />
‖ wegen ⃗v × B ⃗ )<br />
⊥ B ⃗<br />
gegeben und <strong>in</strong> e<strong>in</strong>e Bewegung senkrecht zu ⃗ F und ⃗ B. Da diese trotz konstanter<br />
Kraft nicht beschleunigt, sondern mit konstanter Geschw<strong>in</strong>digkeit (solange ⃗ F ≠ ⃗ F(t)<br />
und ⃗ B ≠ ⃗ B(t)) erfolgt, wird sie ähnlich der mittleren Elektronenbewegung beim<br />
Transport als Driftgeschw<strong>in</strong>digkeit ⃗v FD bezeichnet. Sie ist gegeben durch<br />
⃗v FD = ⃗ F × ⃗ B<br />
|q|B 2 . (2.15)<br />
Im folgenden sollen verschiedene Driften erläutert werden die aufgrund von unterschiedlichen<br />
Kräften ⃗ F zustandekommen.<br />
2.3.1.2 Ambipolare Drift<br />
In e<strong>in</strong>em konstanten Magnetf<strong>el</strong>d wirkt auf e<strong>in</strong> g<strong>el</strong>adenes Teilchen die Lorentzkraft, es<br />
ensteht e<strong>in</strong>e Gyrationsbewegung. In e<strong>in</strong>em <strong>el</strong>ektrischen F<strong>el</strong>d, werden die g<strong>el</strong>adenen<br />
Teilchen durch die Coloumbkraft beschleunigt, hierbei werden positiv g<strong>el</strong>adene Teilchen<br />
<strong>in</strong> F<strong>el</strong>drichtung beschleunigt und negativ g<strong>el</strong>adene entgegen der F<strong>el</strong>drichtung.<br />
Betrachtet man nun e<strong>in</strong> senkrecht zum <strong>magn</strong>etischen F<strong>el</strong>d stehendes <strong>el</strong>ektrisches<br />
F<strong>el</strong>d, so wird die Ladungstrennung im <strong>el</strong>ektrischen F<strong>el</strong>d durch die Gyration im Magnetf<strong>el</strong>d<br />
aufgehoben. Es ensteht e<strong>in</strong>e Drift des Gyrationszentrums <strong>in</strong> der zu beiden<br />
senkrechten ⃗ E × ⃗ B-Richtung. Um diese Bewegung zu beschreiben, verwendet man<br />
den beschriebenen ”<br />
guid<strong>in</strong>g centre“-Ansatz. Beide F<strong>el</strong>der sollen dabei homogen und<br />
stationär se<strong>in</strong> ⃗ E = (0, 0, E z ) und ⃗ B = (0, B y , 0) (vgl. Abb. 2.3). Dann ergibt sich<br />
Gleichung (2.1) <strong>in</strong> Analogie zu den obigen Betrachtungen zu<br />
˙v x = − q m v zB y (2.16)<br />
˙v y = 0 (2.17)<br />
˙v z = q m (E z + v x B y ) . (2.18)<br />
Die Bewegung längs der Magnetf<strong>el</strong>dl<strong>in</strong>ie ist nun konstant beschleunigt, aber unabhängig<br />
von der x-z-Bewegung, somit lässt sich diese gesondert betrachten. Es<br />
ergibt sich für die Bewegung <strong>in</strong> der x-z-Ebene<br />
¨v x = −ω 2 B (v x + E z /B y ) ¨v z = −ω 2 Bv z . (2.19)<br />
Somit lässt sich die Bewegung <strong>in</strong> z-Richtung durch die schon bekannte harmonische<br />
Oszillation beschreiben und lösen. Für die x-Richtung ist e<strong>in</strong>e solche Beschreibung<br />
erst durch e<strong>in</strong> bewegtes Bezugssystem möglich ṽ x = v x + E z /B y , wobei sich dieses<br />
7
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
mit der Geschw<strong>in</strong>digkeit −E z /B y <strong>in</strong> negative x-Richtung bewegt. So erhält man<br />
auch hier e<strong>in</strong>e harmonische Oszillation. Analog zu den oben angeführten allgeme<strong>in</strong>en<br />
Lösungen, ergibt sich<br />
v x = v ⊥ cos (ω B t) − E z /B y (2.20)<br />
v z = v ⊥ s<strong>in</strong> (ω B t) . (2.21)<br />
Die Bahnkurve dieser Bewegung ist <strong>in</strong> Abb. 2.3 dargest<strong>el</strong>lt. Mathematisch betrachtet<br />
st<strong>el</strong>len sich im dreidimensionalen Fall Zykloide e<strong>in</strong>.<br />
Abbildung 2.3: ⃗ E × ⃗ B-Drift von Elektronen und Ionen, v EBD = E/B (Qu<strong>el</strong>le: [4])<br />
Diese Beschreibung ist identisch mit der aus Gleichung (2.15) gefolgerten vektori<strong>el</strong>len<br />
Schreibweise, wobei die Kraft ⃗ F = q ⃗ E ist und somit<br />
⃗v EBD = ⃗ E × ⃗ B<br />
B 2 . (2.22)<br />
Abbildung 2.4: Schema e<strong>in</strong>er ambipoleren<br />
⃗E × ⃗ B-Drift<br />
Die Driftgeschw<strong>in</strong>digkeit ist somit ladungsunabhängig<br />
und für Elektronen und Ionen<br />
gleich groß (vgl. Abb. 2.3). Dieses führt zu<br />
e<strong>in</strong>er ganzheitlichen Bewegung des Plasmas<br />
senkrecht zum <strong>el</strong>ektrischen und <strong>magn</strong>etischen<br />
F<strong>el</strong>d. Man kann sich das Zustandekommen<br />
der E ⃗ × B-Drift ⃗ auch anhand<br />
von energetischen Überlegungen klar<br />
machen. Auf der Seite hoher potenti<strong>el</strong>ler<br />
Energie ist die k<strong>in</strong>etische Energie der Teilchen<br />
kle<strong>in</strong> und der momentane Gyrationsradius<br />
kle<strong>in</strong>. Auf der Seite niedriger potenti<strong>el</strong>ler<br />
Energie hat das Teilchen k<strong>in</strong>etische<br />
Energie aus dem <strong>el</strong>ektrischen F<strong>el</strong>d<br />
aufgenommen und der Gyrationsradius ist<br />
entsprechend größer als der mittlere Gyrationsradius.<br />
Folglich ergibt sich für die Teilchen e<strong>in</strong> Versatz <strong>in</strong> x-Richtung. Der<br />
Umlaufs<strong>in</strong>n von Elektronen und Ionen ist entgegengesetzt und <strong>in</strong>folge der entgegengesetzten<br />
Ladung s<strong>in</strong>d Energiegew<strong>in</strong>n und -verlust gerade vertauscht. Somit folgt,<br />
dass die Drift für Elektronen und Ionen <strong>in</strong> dies<strong>el</strong>be Richtung weist. Die sich ergebende<br />
Drift ist damit weder von der Ladung, noch von der Masse der Teilchen abhängig.<br />
Das Plasma führt daher im ⃗ E-F<strong>el</strong>d e<strong>in</strong>e Drift aus, bei der sich alle Teilchen mit der<br />
gleichen Geschw<strong>in</strong>digkeit v EBD = E/B senkrecht zu ⃗ B und ⃗ E bewegen. Infolge dieser<br />
Bewegung verschw<strong>in</strong>det (mitbewegtes System) das <strong>el</strong>ektrische F<strong>el</strong>d gemäß der<br />
8
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
Transformationseigenschaft der Maxw<strong>el</strong>lschen-Gleichungen ⃗ E ′ = ⃗ E −⃗v × ⃗ B = 0 und<br />
das Teilchen führt nur e<strong>in</strong>e Gyrationsbewegung aus (vgl. Abb. 2.4). Die Drift führt<br />
allerd<strong>in</strong>gs aufgrund ihres ambipolaren Charakters (ke<strong>in</strong>e Trennung der Ladungen)<br />
zu ke<strong>in</strong>em Strom.<br />
2.3.1.3 Gravitationsdrift<br />
Bei der Gravitationsdrift kann analog zu der ambipolaren Drift vorgegangen werden.<br />
Die Teilchen erfahren <strong>in</strong> der Äquatorebene e<strong>in</strong>e ähnliche Situation gekreuzter F<strong>el</strong>der.<br />
Hier kreuzt das horizontale Erd<strong>magn</strong>etf<strong>el</strong>d die vertikale Gravitationskraft ⃗ F G = m⃗g,<br />
somit lässt sich Gleichung (2.1) schreiben als<br />
(<br />
m˙⃗v = q ⃗v × B ⃗ )<br />
+ m⃗g (2.23)<br />
mit g — Gravitationskonstante, hierbei ist die höhenabhängige Gravitationskonstante<br />
zu wählen g(h) = 0 g<br />
, mit g<br />
(1+h/R E ) 2 0 der mittleren Erdbeschleunigung <strong>in</strong> Meereshöhe<br />
≈ 9.81 m/s 2 , h der Höhe über Normal-Null und R E dem mittleren Erdradius.<br />
Dann lässt sich die Driftgeschw<strong>in</strong>digkeit analog zu Abschnitt 2.3.1.2 angeben,<br />
hierbei gilt<br />
⃗v GravD = m⃗g × ⃗ B<br />
qB 2 . (2.24)<br />
Die Driftgeschw<strong>in</strong>digkeit ist <strong>in</strong> diesem Fall von der Ladung und der Masse der Teilchen<br />
abhängig. Wie auch bei der ⃗ E × ⃗ B-Drift ändert sich der Larmorradius kont<strong>in</strong>uierlich,<br />
allerd<strong>in</strong>gs ist <strong>in</strong> diesem Fall die Gravitationskraft vom Vorzeichen der<br />
Ladung unabhängig. Somit s<strong>in</strong>d die Punkte der kle<strong>in</strong>en und großen Gyrationsradien<br />
die gleichen, aber aufgrund der unterschiedlichen Ladungen, s<strong>in</strong>d die Richtungen<br />
entgegengesetzt (vgl. Abb. 2.5, zur Veranschaulichung nur am Äquator).<br />
Abbildung 2.5: Gravitationsdrift<br />
Es kommt zu e<strong>in</strong>er Ladungstrennung, daher kann <strong>in</strong> äquatorialer Richtung e<strong>in</strong> Nettostrom,<br />
w<strong>el</strong>cher die Summe aus Elektronen- und Ionendrift darst<strong>el</strong>lt, festgest<strong>el</strong>lt<br />
werden<br />
mit n — Dichte der Teilchen.<br />
j GravD = n (m i + m e ) g B , (2.25)<br />
9
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
2.3.1.4 Dia<strong>magn</strong>etische (quasi)-Drift<br />
Vollständigkeitshalber sei an dieser St<strong>el</strong>le noch e<strong>in</strong>e weitere Drift, die <strong>in</strong> e<strong>in</strong>em homogenen<br />
Magnetf<strong>el</strong>d auftreten kann genannt. Diese ist die dia<strong>magn</strong>etische Drift. Die<br />
Namensgebung drückt aus, dass das durch den dia<strong>magn</strong>etischen Strom j D hervorgerufene<br />
Magnetf<strong>el</strong>d e<strong>in</strong> entgegengesetztes Vorzeichen zum äußeren Magnetf<strong>el</strong>d hat<br />
und das gesamte Magnetf<strong>el</strong>d daher absenkt. Die dia<strong>magn</strong>etische Drift wird durch<br />
e<strong>in</strong>en Druckgradienten hervorgerufen. Die dia<strong>magn</strong>etische Drift gehört streng genommen<br />
zur Magnetohydrodynamik. Hierbei wird der Plasmastrom nicht als E<strong>in</strong>z<strong>el</strong>teilchenbewegungen<br />
aufgefasst sondern der Strom als Flüssigkeit angesehen. Unter<br />
bestimmten Voraussetzungen, lässt sich aber zeigen, dass die Lorentzkraft gleich<br />
dem Druckgradienten und der <strong>el</strong>ektrischen Kraft ist.<br />
Diese Drift kann somit unter die E<strong>in</strong>z<strong>el</strong>teilchenbewegungen<br />
subsumiert [7] werden. Hierzu geht man davon<br />
aus, dass die (gerichtete) Flüssigkeitsgeschw<strong>in</strong>digkeit<br />
⃗v von der Größenordnung e<strong>in</strong>er Teilchendriftgeschw<strong>in</strong>digkeit<br />
ist. Des weiteren werden nur Zeitskalen<br />
ω/ω B ≪ 1 betrachtet. Somit muss man nur die<br />
Kraft betrachten, w<strong>el</strong>che auf e<strong>in</strong> Teilchen wirkt. Damit<br />
ergibt sich, dass die Lorentzkraft alle<strong>in</strong> durch die<br />
<strong>el</strong>ektrostatische Kraft und den Druckgradienten kompensiert<br />
wird. Die <strong>el</strong>ektrostatische Kraft st<strong>el</strong>lt sich als<br />
die oben beschriebene E ⃗ × B-Drift ⃗ dar. Im folgenden<br />
soll nur der Teil der Drift besprochen werden, der<br />
durch den Druckgradienten hervorgerufen wird. Dieser<br />
Teil lässt sich ausdrücken als die Kraft, w<strong>el</strong>che<br />
auf e<strong>in</strong> Volumen<strong>el</strong>ement ∆V wirkt. Diese ist gegeben<br />
Abbildung 2.6: Dia<strong>magn</strong>etische<br />
Drift<br />
durch die Druckdifferenz. Daraus folgt F/∆V = −∇p. Im Volumen<strong>el</strong>ement bef<strong>in</strong>den<br />
sich ∆N = n∆V Teilchen, so dass pro Teilchen die Kraft −∇p/n ausgeübt wird.<br />
Verwendet man Gleichung (2.15) so ergibt sich<br />
⃗v DD = − ⃗ ∇p × ⃗ B<br />
nqB 2 . (2.26)<br />
Diese Drift ist <strong>in</strong> Abb. 2.6 dargest<strong>el</strong>lt, zur Vere<strong>in</strong>fachung wird nur der Fall für Elektronen<br />
dargest<strong>el</strong>lt. Man erkennt, dass der Druckgradient durch die Dichte n e der<br />
Teilchen verursacht wird (T e = const.). Dann nimmt längs des Druckgradienten<br />
die Zahl der gyrierenden Teilchen zu. An e<strong>in</strong>em b<strong>el</strong>iebigen Punkt im Plasma bewegen<br />
sich also mehr Teilchen <strong>in</strong> positive y-Richtung; die Elektronen sche<strong>in</strong>en <strong>in</strong><br />
y-Richtung zu driften. Hierbei ist allerd<strong>in</strong>gs zu beachten, dass es sich nicht um e<strong>in</strong>e<br />
Massenbewegung hand<strong>el</strong>t, die Teilchen s<strong>el</strong>bst bleiben an ihrem Ort, es entsteht<br />
jedoch e<strong>in</strong> Strom<br />
⃗j D = ⃗ ∇p × ⃗ B<br />
B 2 . (2.27)<br />
Dieser ist so gerichtet, dass das von ihm erzeugte Magnetf<strong>el</strong>d das ursprüngliche<br />
Magnetf<strong>el</strong>d im Gebiet hohen Druckes schwächt.<br />
10
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
2.3.2 Driften <strong>in</strong> <strong>in</strong>homogenen Kraftf<strong>el</strong>dern<br />
In den vorherigen Beschreibungen wurde angenommen, dass es sich bei den Kraftf<strong>el</strong>dern<br />
um konstante homogene F<strong>el</strong>der hand<strong>el</strong>t. Im folgenden sollen Bewegungen<br />
<strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern beschrieben werden, die zeitlich und räumlich nicht<br />
konstant s<strong>in</strong>d. Hierzu werden die e<strong>in</strong>z<strong>el</strong>nen Aspekte der Inhomogenitäten genauer<br />
untersucht. Im allgeme<strong>in</strong>en Fall wenn das Magnetf<strong>el</strong>d ⃗ B = B(⃗r, t), sowie das <strong>el</strong>ektrische<br />
F<strong>el</strong>d ⃗ E = E(⃗r, t) raum- und zeitabhängig s<strong>in</strong>d, kann man die Bewegungsgleichung<br />
nicht mehr geschlossen lösen. Dennoch lässt sich an dieser St<strong>el</strong>le e<strong>in</strong> Ansatz<br />
mit dem ”<br />
guid<strong>in</strong>g centre“ machen. Hierzu nimmt man an, dass die räumliche Ausdehnung<br />
der Inhomogenität bzw. die zeitliche Variation kle<strong>in</strong> gegen die typischen<br />
Skalen der Gyrationsbewegung s<strong>in</strong>d. Man betrachtet dann nicht mehr die schn<strong>el</strong>le<br />
Gyration sondern stützt sich gemäß dem ”<br />
gud<strong>in</strong>g centre“-Ansatz auf das langsamere<br />
Fortschreiten des Führungszentrums und somit e<strong>in</strong>e Kreisbahn des Teilchens. Somit<br />
lässt sich die Bewegung auf die Gleichungen der Gyration zurückführen.<br />
2.3.2.1 Gradientendrift<br />
Zunächst wird e<strong>in</strong> Magnetf<strong>el</strong>d betrachtet, dass e<strong>in</strong>en Intensitätsgradienten aufweist,<br />
der senkrecht zur F<strong>el</strong>dl<strong>in</strong>ienrichtung weist. Die Bewegung g<strong>el</strong>adener Teilchen <strong>in</strong> e<strong>in</strong>em<br />
solchen F<strong>el</strong>d ist <strong>in</strong> Abb. 2.7 dargest<strong>el</strong>t.<br />
Abbildung 2.7: Teilchenbewegung im <strong>in</strong>homogenen Magnetf<strong>el</strong>d. Betrachtet wird e<strong>in</strong> Magnetf<strong>el</strong>d,<br />
bei dem der Gradient des F<strong>el</strong>des senkrecht auf den F<strong>el</strong>dl<strong>in</strong>ien steht (Qu<strong>el</strong>le<br />
(geändert): [30])<br />
In Analogie zu den Beschreibungen der ⃗ E × ⃗ B-Drift erwartet man, dass der <strong>in</strong>stantane<br />
Gyrationsradius im Bereich e<strong>in</strong>esschwächeren Magnetf<strong>el</strong>des größer ist und daher<br />
e<strong>in</strong>e Drift senkrecht zu ⃗ B und zu ∇ ⃗ B erfolgt. Um diese Drift zu beschreiben ist es<br />
nötig nach Gleichung (2.15) die Kraft zu beschreiben w<strong>el</strong>che auf e<strong>in</strong> Teilchen wirkt.<br />
Im <strong>in</strong>homogenen Magnetf<strong>el</strong>d erfahren die Teilchen e<strong>in</strong>e Kraft durch den Gradienten<br />
der F<strong>el</strong>dstärke. Diese lässt sich durch das <strong>magn</strong>etische Moment µ (siehe 2.3.2.4) und<br />
11
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
dem Gradienten beschreiben 3 . Für die Kraft gilt<br />
⃗F = ±µ ∇B ⃗ √<br />
mit B = Bx 2 + By 2 + Bz 2 . (2.28)<br />
Hierbei ergibt sich das <strong>magn</strong>etische Moment des Teilchens aus dem Produkt des mit<br />
der Gyrationsbewegung vebundenen Kreisstroms und der vom Strom umrandeten<br />
Fläche, es gilt<br />
µ = IA = q ω B<br />
2π πr2 L = mv2 ⊥<br />
2B . (2.29)<br />
Setzt man diese Beziehung <strong>in</strong> Gleichung (2.15) e<strong>in</strong>, so ergibt sich für die Driftgeschw<strong>in</strong>digkeit<br />
<strong>in</strong> e<strong>in</strong>em Gradientenf<strong>el</strong>d<br />
⃗v GD = ± µ⃗ ∇B × ⃗ B<br />
qB 2<br />
= ± mv2 ⊥<br />
2qB 3 ⃗ ∇B × ⃗ B . (2.30)<br />
Die Teilchen driften somit senkrecht zur Magnetf<strong>el</strong>drichtung und senkrecht zum<br />
Magnetf<strong>el</strong>dgradienten. Anschaulich läuft das Teilchen bei der ausgeführten Gyration<br />
<strong>in</strong> Bereiche unterschiedlicher Magnetf<strong>el</strong>dstärke und dadurch ändert sich <strong>in</strong>nerhalb<br />
der Gyration der Radius. Als Beispi<strong>el</strong> kann man sich e<strong>in</strong>e diskrete Sprungst<strong>el</strong>le <strong>in</strong> der<br />
Magnetf<strong>el</strong>dstärke vorst<strong>el</strong>len. Oberhalb der Sprungst<strong>el</strong>le sei e<strong>in</strong> starkes Magnetf<strong>el</strong>d<br />
und unterhalb e<strong>in</strong> schwaches, so lässt sich die Bewegung dadurch beschreiben, dass<br />
sich der Larmorradius antiproportional zur Stärke des Magnetf<strong>el</strong>des verhält. In dem<br />
Beispi<strong>el</strong> der Sprungst<strong>el</strong>le wird das Teilchen somit im Bereich unterhalb größere und<br />
oberhalb kle<strong>in</strong>ere Kreisbahnen beschreiben. Somit bewegt sich das Teilchen an der<br />
gedachten Sprungst<strong>el</strong>le entlang, nach dem Pr<strong>in</strong>zip ”<br />
zwei vor e<strong>in</strong>en zurück“. Gleiches<br />
gilt für e<strong>in</strong>en kont<strong>in</strong>uierlichen Gradienten der Magnetf<strong>el</strong>dstärke. Hier kann man sich<br />
den Gradienten als <strong>in</strong>f<strong>in</strong>itisimal kle<strong>in</strong>en Abstand der Sprungst<strong>el</strong>le denken.<br />
2.3.2.2 Krümmungsdrift<br />
Abbildung 2.8: Krümmungsdrift<br />
(Qu<strong>el</strong>le<br />
(geändert): [27])<br />
In zweiten Fall sollen gekrümmte Magnetf<strong>el</strong>dl<strong>in</strong>ien betrachtet<br />
werden. Diese Krümmung wird im allgeme<strong>in</strong>en<br />
durch den Gradienten der <strong>magn</strong>etischen F<strong>el</strong>dstärke hervorgerufen.<br />
Folgen die Teilchen den Magnetf<strong>el</strong>dl<strong>in</strong>ien, so<br />
erfahren sie im gekrümmten Magnetf<strong>el</strong>d aufgrund ihrer<br />
Parall<strong>el</strong>geschw<strong>in</strong>digkeit e<strong>in</strong>e Zentrifugalkraft. Die Driftgeschw<strong>in</strong>digkeit<br />
der Teilchen <strong>in</strong> diesem gekrümmten F<strong>el</strong>d<br />
setzt sich somit zu e<strong>in</strong>em Anteil aus der noch zu bestimmenden<br />
Krümmungsdrift und zum anderen aus der<br />
Gradientendrift zusammen. Um die Krümmungsdrift zu<br />
bestimmen, geht man zunächst von e<strong>in</strong>em Magnetf<strong>el</strong>d<br />
ohne Gradienten aus. Zunächst muss die mittlere Zentrifugalkraft<br />
beschrieben werden, die e<strong>in</strong> Teilchen aufgrund<br />
se<strong>in</strong>er Parall<strong>el</strong>geschw<strong>in</strong>digkeit erfährt. Hierbei gilt<br />
3 Beschreibung der Näherung siehe Anhang B.3<br />
¯⃗F C = mv2 ‖<br />
R C<br />
⃗e RC . (2.31)<br />
12
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
Mit dieser mittleren Kraft, lässt sich nach Gleichung (2.15) die Geschw<strong>in</strong>digkeit der<br />
Krümmungsdrift bestimmen, es ergibt sich<br />
⃗v CD = mv2 ‖<br />
qR 2 C<br />
⃗R C × ⃗ B<br />
B 2 . (2.32)<br />
Um nun e<strong>in</strong> reales F<strong>el</strong>d zu beschreiben ist es nötig auch die Gradientendrift zu<br />
beschreiben. ( Unter Vakuumbed<strong>in</strong>gungen lässt sich sagen, dass das F<strong>el</strong>d wirb<strong>el</strong>frei<br />
ist ∇ × B ⃗ )<br />
= 0 . Aus Abb. 2.8 ergibt sich<br />
ds<br />
= − dB r<br />
⇒ 1 = − 1 ∂B r<br />
R C B φ R C B φ ∂s<br />
(2.33)<br />
Damit lässt sich der F<strong>el</strong>dgradient aus dem Krümmungsradius der Magnetf<strong>el</strong>dl<strong>in</strong>ien<br />
abschätzen. Unter Verwendung des Vektors ⃗ R C lässt sich nun e<strong>in</strong> r<strong>el</strong>ativer Gradient<br />
angeben. Es gilt<br />
∇|B|<br />
|B|<br />
R<br />
= − ⃗ C<br />
. (2.34)<br />
RC<br />
2<br />
Mit Hilfe dieser Abschätzung lässt sich nun die Gradientendrift angeben<br />
⃗v GD = ∓ v ⊥r L<br />
B 2<br />
B ⃗ × RC ⃗<br />
|B|<br />
. (2.35)<br />
RC<br />
2<br />
Um e<strong>in</strong>e realitätsnahe Aussage über die Krümmungsdrift machen zu können, komb<strong>in</strong>iert<br />
man beide Komponenten. Somit lässt sich abschließend schreiben<br />
⃗v CD + ⃗v GD = m q<br />
(<br />
v‖ 2 + 1 ) ⃗RC × B ⃗<br />
2 v2 ⊥ , (2.36)<br />
RC 2 B2<br />
Durch die Abhängigkeit von dem Quadrat der Geschw<strong>in</strong>digkeiten, verstärken sich<br />
die beiden Driften. In der Ionosphäre überwiegt die Krümmungsdrift gegenüber der<br />
Gravitationsdrift.<br />
2.3.2.3 Polarisationsdrift<br />
Bisher wurden F<strong>el</strong>der mit e<strong>in</strong>er Inhomogentität der <strong>magn</strong>etischen F<strong>el</strong>d<strong>in</strong>tensität betrachtet,<br />
nun soll die Bewegung <strong>in</strong> e<strong>in</strong>em zeitlich veränderlichen <strong>el</strong>ektrischen F<strong>el</strong>d<br />
genauer beschrieben werden. Hierzu nimmt man e<strong>in</strong> <strong>el</strong>ektrisches F<strong>el</strong>d an, w<strong>el</strong>ches<br />
mit ω 0 oszilliert, somit E(t) = E 0 cos (ω 0 t) ist. Zur Beschreibung, bietet sich e<strong>in</strong><br />
<strong>el</strong>ektrisches F<strong>el</strong>d, w<strong>el</strong>ches senkrecht zu den Magnetf<strong>el</strong>dl<strong>in</strong>ien liegt, an. Des weiteren<br />
lässt sich Gleichung (2.1) mit F(t) ⃗ = qE(t) ⃗ annehmen und man erhält m˙⃗v =<br />
q<br />
(<br />
⃗v × ⃗ B<br />
)<br />
+ F(t) ⃗ = q<br />
(<br />
⃗v × ⃗ B<br />
)<br />
+ qE(t). ⃗ Betrachtet man zunächst e<strong>in</strong> <strong>el</strong>ektrisches<br />
F<strong>el</strong>d E(t) ⃗ = (E x (t), 0, 0) das senkrecht zum Magnetf<strong>el</strong>d orientiert ist, lassen sich<br />
die Gleichungen für die x- und y-Komponente wieder entkopp<strong>el</strong>n und man erhält<br />
für das Fortschreiten <strong>in</strong> x-Richtung<br />
( )<br />
¨⃗v x = −ωB<br />
2 v x ∓ 1 Ė x<br />
. (2.37)<br />
ω B B z<br />
13
2.3 Driftbewegungen Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
Führt man nun die schon oben beschriebene Koord<strong>in</strong>atentransformation e<strong>in</strong>, so<br />
erhält man ¨v x = v x ∓Ėx/ω B B z . Somit ist die Gyrationsbewegung mit e<strong>in</strong>er Polarisationsdrift<br />
überlagert. Für die Geschw<strong>in</strong>digkeit dieser Polarisationsdrift gilt allgeme<strong>in</strong><br />
⃗v PD = ± 1<br />
ω B<br />
˙⃗E<br />
B , (2.38)<br />
sie ist <strong>in</strong> Richtung des <strong>el</strong>ektrischen F<strong>el</strong>des gerichtet, gleichzeitig f<strong>in</strong>det noch e<strong>in</strong>e<br />
ambipolare Drift im <strong>el</strong>ektrischen F<strong>el</strong>d statt.<br />
2.3.2.4 Adiabatische Invarianten<br />
Aus der Mechanik ist bekannt, dass bei e<strong>in</strong>er periodischen Bewegung, zusätzlich zu<br />
den Erhaltungsgrößen Energie, Impuls und Drehimpuls, weitere Invarianten der Bewegung<br />
vorhanden s<strong>in</strong>d. Somit die Größen nicht mehr konstant bleiben sondern nur<br />
noch im S<strong>in</strong>ne der verschiedenen Ordnungen der Störungstheorie konstant s<strong>in</strong>d. So<br />
bleiben die e<strong>in</strong>z<strong>el</strong>nen Größen nur noch im S<strong>in</strong>ne e<strong>in</strong>er Betrachtungsweise konstant.<br />
Zunächst betrachtet man das Wirkungs<strong>in</strong>tegral um im folgenden mit Hilfe der adiabatischen<br />
Invarianten die Periodizität von Bewegungen der Teilchen zu beschreiben.<br />
Für das Wirkungs<strong>in</strong>tegral gilt ∮<br />
I = p dq (2.39)<br />
wobei q e<strong>in</strong>e verallgeme<strong>in</strong>erte Koord<strong>in</strong>ate und p der zugeordnete Impuls ist. Das<br />
Integral ist über die Periode der Bewegung auszuführen. Diese Invarianten haben<br />
die Dimension e<strong>in</strong>er Wirkung. Die Def<strong>in</strong>ition durch Gleichung (2.39) hat den Vorteil,<br />
dass sie auch bei kle<strong>in</strong>en Störungen der Periodizität unbee<strong>in</strong>flusst bleibt. E<strong>in</strong>e kle<strong>in</strong>e<br />
Störung ist <strong>in</strong> diesem System derart zu sehen, dass e<strong>in</strong> Teilchen nach e<strong>in</strong>em Umlauf<br />
nicht mehr an den s<strong>el</strong>ben Ort zurückkehrt. Die Invariante wird dann als adiabatische<br />
Invariante des Systems bezeichnet.<br />
Abbildung 2.9: Bewegung e<strong>in</strong>es Teilchens<br />
im <strong>magn</strong>etischen Spieg<strong>el</strong> (Qu<strong>el</strong>le<br />
(geändert): [13])<br />
∮<br />
p dq =<br />
∫ 2π<br />
0<br />
mω B r 2 L dΦ = 4π m q<br />
Dieses System lässt sich nun auf die Bewegung<br />
e<strong>in</strong>es Teilchens im Magnetf<strong>el</strong>d übertragen.<br />
Wenn man unter der periodischen<br />
Bewegung des Teilchens die Kreisbahn versteht,<br />
w<strong>el</strong>che e<strong>in</strong> gyrierendes Teilchen ausführt,<br />
so bedeutet e<strong>in</strong>e Störung, dass ∇B ≪<br />
B/r L . Dann kann man als verallgeme<strong>in</strong>erte<br />
Koord<strong>in</strong>ate die W<strong>in</strong>k<strong>el</strong>koord<strong>in</strong>ate der Gyrationsbewegung<br />
wählen und der zugehörige<br />
Impuls ist der senkrechte Drehimpuls<br />
des Teilchens. Es ergibt sich somit auf der<br />
Kreisbahn<br />
mv 2 ⊥<br />
2B = 4πm q µ . (2.40)<br />
Für e<strong>in</strong> festes m/q ist somit das <strong>magn</strong>etische Moment µ e<strong>in</strong>e adiabatische Invariante<br />
der Bewegung. Man bezeichnet µ auch als die erste adiabatische Invariante.<br />
14
2.4 Zusammenfassung Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
Diese erste Invariante wird dazu verwendet, die Bewegung e<strong>in</strong>es Teilchens <strong>in</strong> e<strong>in</strong>em<br />
sogenannten <strong>magn</strong>etischen Spieg<strong>el</strong> zu beschreiben. Darunter versteht man die Reflexion<br />
e<strong>in</strong>es Teilchens im Gebiet höherer Magnetf<strong>el</strong>dstärke. Kommt e<strong>in</strong> Teilchen <strong>in</strong><br />
den Bereich höherer Magnetf<strong>el</strong>dstärke, so nimmt wegen der Invarianz des <strong>magn</strong>etischen<br />
Momentes µ = mv⊥ 2 /2B = const. die senkrechte Energie 1/2 mv2 ⊥ im gleichen<br />
Maße wie B zu. Da gleichzeitig Energieerhaltung gilt, muss die parall<strong>el</strong>e Komponente<br />
der Geschw<strong>in</strong>digkeit abnehmen. Bei e<strong>in</strong>er völligen Abnahme der parall<strong>el</strong>en<br />
Geschw<strong>in</strong>digkeit, kann das Teilchen nicht weiter <strong>in</strong> die Richtung höherer F<strong>el</strong>dstärke<br />
vordr<strong>in</strong>gen, die Flugbahn dreht an der sogenannten Reflexionsebene um. Dieses ist<br />
<strong>in</strong> Abb. 2.9 dargest<strong>el</strong>lt. Wenn man zwei <strong>magn</strong>etische Spieg<strong>el</strong> komb<strong>in</strong>iert, erhält man<br />
e<strong>in</strong>e <strong>magn</strong>etische Flasche. Die Teilchen werden zwischen den beiden Enden der <strong>magn</strong>etischen<br />
Flasche h<strong>in</strong> und her reflektiert, diese Situation herrscht im Dipolf<strong>el</strong>d der<br />
Erde vor. Mit dieser Bewegung ist die zweite Invariante verknüpft, die longitud<strong>in</strong>ale<br />
Invariante. Wenn e<strong>in</strong> g<strong>el</strong>adenes Teilchen zwischen den zwei Spieg<strong>el</strong>punkten gefangen<br />
ist, vollführt es e<strong>in</strong>e Oszillation (vgl. Abb. 2.10).<br />
In Abb. 2.10 ist die Besonderheit des Erd<strong>magn</strong>etf<strong>el</strong>des aufgezeigt. Dieses erzeugt<br />
durch se<strong>in</strong>e Geometrie <strong>magn</strong>etische Flaschen, so dass Teilchen aus der äquatorialen<br />
Ebene zu den Polen wandern. Diese Bewegung wird allerd<strong>in</strong>gs noch durch die<br />
Driften überlagert. E<strong>in</strong>e dritte adiabatische Invariante ist die Fluss<strong>in</strong>variante, auch<br />
diese ist verknüpft mit der ”<br />
guid<strong>in</strong>g centre“-Drift. Diese Invariante besagt, dass der<br />
<strong>magn</strong>etische Fluss, w<strong>el</strong>cher durch e<strong>in</strong>e Kreisbahn läuft, konstant ist.<br />
2.4 Zusammenfassung<br />
Die <strong>in</strong> diesem Abschnitt gemachten Beschreibungen der Bewegungen dienen dazu,<br />
e<strong>in</strong> genaueres Verständnis der Bewegungen von g<strong>el</strong>adenen Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen<br />
F<strong>el</strong>dern zu erlangen und die physikalischen Grundlagen zu erläutern. Über die<br />
beschriebenen Grundlagen ist e<strong>in</strong>e numerische Behandlung der Bewegungsgleichungen<br />
möglich. Für die Beschreibung wurde die Bewegung e<strong>in</strong>es e<strong>in</strong>z<strong>el</strong>nen Teilchens<br />
ohne Wechs<strong>el</strong>wirkungen betrachtet. Jedes Teilchen führt als e<strong>in</strong>e Art ”<br />
Basisbewegung“<br />
die Gyration um die lokale F<strong>el</strong>dl<strong>in</strong>ie aus. Diese kann man durch den Larmorradius<br />
und die Gyrationsfrequenz charakterisieren. Des weiteren wurde für die<br />
Beschreibungen der Ansatz gemacht, dass sich die Bewegung e<strong>in</strong>es Teilchens durch<br />
e<strong>in</strong> ”<br />
guid<strong>in</strong>g centre“ annähern lässt. Hierbei wird die Bewegung aufgeteilt <strong>in</strong> die<br />
eigentliche Gyration und die Bewegung des Mitt<strong>el</strong>punktes. Die Teilchen werden wie<br />
oben beschrieben durch die Kräfte des <strong>magn</strong>etischen- sowie des <strong>el</strong>ektrischen F<strong>el</strong>des<br />
bee<strong>in</strong>flusst und auf ihre Flugbahnen gedrängt. Diese Kräfte spieg<strong>el</strong>n sich <strong>in</strong> Gleichung<br />
(2.1) wieder. Alle Bewegungen von g<strong>el</strong>adenen Teilchen <strong>in</strong> W<strong>el</strong>traumplasmen<br />
werden durch diese geprägt und führen zu den im erdnahem W<strong>el</strong>traum messbaren<br />
(R<strong>in</strong>gströme) und sichtbaren (Polarlichter) Phänomenen. Die Bewegungen lassen<br />
sich grob zu den <strong>in</strong> Abb. 2.10 dargest<strong>el</strong>lten zusammenfassen.<br />
Hierbei hand<strong>el</strong>t es sich um die Gyration um die lokale F<strong>el</strong>dl<strong>in</strong>ie, um e<strong>in</strong>e Oszillationsbewegung<br />
entlang dieser F<strong>el</strong>dl<strong>in</strong>e und der überlagerten azimutalen Drift um die<br />
Erde 4 . In diesem Abschnitt wurden die mathematischen Grundlagen der e<strong>in</strong>z<strong>el</strong>nen<br />
Bewegungen beschrieben und diese so weit wie möglich analytisch g<strong>el</strong>öst. Um für<br />
4 siehe Zeitkonstanten der Bewegungen <strong>in</strong> W<strong>el</strong>traumplasmen Anhang A.2<br />
15
2.4 Zusammenfassung Bewegung von Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern<br />
Abbildung 2.10: Bewegung der Plasmateilchen im Magnetf<strong>el</strong>d (Qu<strong>el</strong>le: [33])<br />
die <strong>Visualisierung</strong> die F<strong>el</strong>der <strong>in</strong> b<strong>el</strong>iebiger Komb<strong>in</strong>ation und Struktur berechenbar<br />
zu machen, wird das Hilfsmitt<strong>el</strong> die Numerik e<strong>in</strong>gestezt. So ist es möglich, die Bewegungen<br />
von g<strong>el</strong>adenen Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern, die durch die Newton’sche<br />
Bewegungsgleichung beschrieben werden mit dem Computer zu berechnen<br />
und diese Rechenergebnisse graphisch <strong>in</strong> Form der <strong>Visualisierung</strong> darzust<strong>el</strong>len. Die<br />
numerische Beschreibung der Bewegungen wird im folgenden Abschnitt erläutert.<br />
16
Numerische Beschreibung der Bewegung<br />
3 Numerische Beschreibung der Bewegung<br />
Um im folgenden e<strong>in</strong>e numerische Beschreibung der Bewegungsgleichungen aus Abschnitt<br />
2 machen zu können, ist es zunächst nötig, die e<strong>in</strong>z<strong>el</strong>nen Verfahren zu beschreiben,<br />
die es ermöglichen Differentialgleichungssysteme numerisch zu lösen (vgl.<br />
[26, 29]). Dieses soll im folgenden Abschnitt geschehen. Die e<strong>in</strong>z<strong>el</strong>nen Verfahren<br />
werden vorgest<strong>el</strong>lt und gegene<strong>in</strong>ander abgewogen. Zusammenfassend wird beschrieben,<br />
w<strong>el</strong>che Verfahren bei der <strong>Visualisierung</strong> (<strong>in</strong> Abschnitt 4) Anwendung gefunden<br />
haben.<br />
3.1 Allgeme<strong>in</strong>e Bewegungsgleichung<br />
Zunächst wird Gleichung (2.1) mit F ⃗ = qE ⃗ <strong>in</strong> e<strong>in</strong>em kartesischen Koord<strong>in</strong>atensystem<br />
für die e<strong>in</strong>z<strong>el</strong>nen Komponenten betrachtet, dann lässt sich schreiben<br />
⎛ ⎞ ⎛ ⎛<br />
˙v x<br />
˙⃗v = ⎝ ˙v y<br />
⎠ = q ⎝ ⎝<br />
m<br />
˙v z<br />
⎞<br />
E x<br />
E y<br />
⎠ + q m<br />
E z<br />
⎞<br />
v y B z − v z B y<br />
v z B x − v x B z<br />
⎠ . (3.1)<br />
v x B y − v y B x<br />
So ergibt sich e<strong>in</strong> Gleichungssystem aus gewöhnlichen Differentialgleichungen (engl.<br />
ord<strong>in</strong>ary differential equations (ODE’s)) w<strong>el</strong>ches zur Beschreibung der Bewegung<br />
g<strong>el</strong>öst werden muss. In Abschnitt 2 wurden die Bewegungen so weit wie möglich<br />
analytisch beschrieben und versucht e<strong>in</strong>e analytische Lösung zu f<strong>in</strong>den. Im folgenden<br />
werden die Verfahren vorgest<strong>el</strong>lt, die zur numerischen Lösung solcher ODE’s<br />
verwendet werden können. Hierbei bietet sich die aufgezeigte Schreibweise <strong>in</strong> Gleichung<br />
(3.1) auch für die weitere Verarbeitung mit MATLAB r○ an 5 .<br />
Die im folgenden vorgest<strong>el</strong>lten Lösungsverfahren beziehen sich auf e<strong>in</strong>e ODE der<br />
Form y ′ = f(x, y), wie oben gesehen hand<strong>el</strong>t es sich bei der Bewegungsgleichung<br />
aber um n teilweise gekopp<strong>el</strong>te Differentialgleichungen. Da sich aber jedes System<br />
von Differentialgleichungen auch höherer Ordnung auf e<strong>in</strong>e gewöhnliche Differentialgleichung<br />
erster Ordnung zurückführen lässt s<strong>in</strong>d diese Betrachtungen legitim. Für<br />
e<strong>in</strong> System von gekopp<strong>el</strong>ten Differentialgleichungen<br />
y ′ 1 = f 1 (x, y 1 , . . ., y n )<br />
.<br />
y ′ n = f 1 (x, y 1 , . . ., y n )<br />
s<strong>in</strong>d n Funktionen y 1 (x), . . . , y n (x), so zu bestimmen, das die Anfangsbed<strong>in</strong>gungen<br />
y 1 (x 0 ) = y 0,1 , . . ., y n (x 0 ) = y 0,n erfüllt s<strong>in</strong>d. Setzt man y = (y 1 , y 2 , . . ., y n ) T und<br />
f = (f 1 (x,y), . . ., f n (x,y)) dann kann man dieses System umschreiben und erhält<br />
y ′ = f(x,y) mit y (x 0 ) = y 0 . (3.2)<br />
Man kann somit <strong>in</strong> weitreichender Analogie e<strong>in</strong> System der Dimension n = 1 betrachten<br />
und alle gemachten Überlegungen auf e<strong>in</strong> System mit n > 1 übertragen.<br />
5 MATLAB r○ arbeitet <strong>in</strong>tern mit Matrizen; Skalare werden dabei mit Matrizen der Dimension<br />
1 × 1, Vektoren als Matrizen mit der Dimension 1 × n bzw. m × 1 dargest<strong>el</strong>lt<br />
17
3.2 Lösungsverfahren für DGL-Systeme Numerische Beschreibung der Bewegung<br />
Auch hier ist die <strong>in</strong>terne Arbeitsweise von MATLAB r○ hilfreich, da es die betrachteten<br />
Differentialgleichungen nach Gleichung (3.2) <strong>in</strong>tern <strong>in</strong> Vektorform behand<strong>el</strong>n<br />
kann.<br />
3.2 Lösungsverfahren für DGL-Systeme<br />
Um e<strong>in</strong>e ODE numerisch zu lösen, wird das Verhalten e<strong>in</strong>es physikalischen Systems,<br />
w<strong>el</strong>ches durch Differentialgleichungen <strong>in</strong> der lokalen zeitlichen und räumlichen<br />
Umgebung gegeben ist, angenähert. Durch Näherung – <strong>in</strong>sbesondere e<strong>in</strong>er L<strong>in</strong>earisierung<br />
– der Gesetzmäßigkeiten <strong>in</strong> der lokalen Umgebung, kann man auf e<strong>in</strong>fache<br />
Weise näherungsweise den Zustand des Systems an e<strong>in</strong>em um e<strong>in</strong>e kle<strong>in</strong>e Strecke ∆x<br />
oder e<strong>in</strong>em kle<strong>in</strong>en Zeit<strong>in</strong>tervall ∆t entfernten Ort bzw. Zeitpunkt bestimmen. Von<br />
dort aus ist es wiederum durch Näherung möglich den nächsten Ort oder Zeitpunkt<br />
zu erreichen. Somit lässt sich durch wiederholte Anwendung des Verfahrens die gesamte<br />
Strecke bzw. der gesamte Zeitraum annähernd berechnen. Alle numerischen<br />
Verfahren beruhen auf diesem Pr<strong>in</strong>zip. Sie unterscheiden sich zumeist nur <strong>in</strong> der<br />
Schrittweite, der Anzahl der angenäherten Teilstücke oder der Länge dieser.<br />
E<strong>in</strong> physikalisches System, w<strong>el</strong>ches durch ODE’s beschrieben werden kann, kann nur<br />
vollständig beschrieben werden, wenn auch die Bed<strong>in</strong>gungen des Systems mit aufgenommen<br />
werden. Je nach Art der Bed<strong>in</strong>gung unterscheidet man nach Anfangswertund<br />
Randwertbed<strong>in</strong>gungen. Bei den Anfangswertproblemem, s<strong>in</strong>d zu e<strong>in</strong>em Startwert<br />
x 0 die y i ’s bekannt und man sucht die Lösung der y i ’s für e<strong>in</strong> bestimmtes x 0 . Im<br />
Fall der g<strong>el</strong>adenen Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern, s<strong>in</strong>d die Anfangswerte<br />
durch den Ort ⃗x 0 und die Geschw<strong>in</strong>digkeit ⃗v 0 gegeben. Bei den Randwertbed<strong>in</strong>gungen<br />
s<strong>in</strong>d mehrere Grenzen an verschiedenen x i ’s angegeben. Die verwendeten<br />
numerischen Lösungsansätze richten sich nach den Bed<strong>in</strong>gungen.<br />
3.3 Angewandte Lösungsverfahren<br />
Jedes Verfahren zur numerischen Lösung von ODE’s stützt sich auf das oben beschriebene<br />
Grundpr<strong>in</strong>zip. Als Grundlage aller weiteren beschriebenen Verfahren soll<br />
das Euler Verfahren dargest<strong>el</strong>lt werden, da dieses e<strong>in</strong>ige grundlegende Aspekte der<br />
weiteren Behandlungen be<strong>in</strong>haltet. Dann werden drei weitere Lösungsverfahren vorgest<strong>el</strong>lt.<br />
Hierzu zählen das Runge-Kutta Verfahren, das Burlisch-Stoer Verfahren<br />
und als e<strong>in</strong>e Prädiktor-Korrektur Methode das Adams-Bashforth-Moulton Verfahren.<br />
Diese Verfahren/Methoden zur Lösung von ODE’s s<strong>in</strong>d gezi<strong>el</strong>t ausgesucht worden,<br />
weil <strong>in</strong> den heutigen numerischen Softwarepaketen, so auch <strong>in</strong> MATLAB r○ ,<br />
diese ihre Anwendung f<strong>in</strong>den. Mit der heutigen leistungsstarken Computertechnik<br />
ist es möglich immer kle<strong>in</strong>ere Schritte bei der Diskretisierung zu machen und somit<br />
immer mehr an e<strong>in</strong> kont<strong>in</strong>uierliches Spektrum heranzukommen. Allerd<strong>in</strong>gs werden<br />
alle numerischen Verfahren zur Beschreibung von ODE’s immer e<strong>in</strong>e Diskretisierung<br />
bleiben.<br />
Im folgenden sollen die Lösungsverfahren für ODE’s der Form<br />
18<br />
y ′ = f(x, y) (3.3)
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
vorgest<strong>el</strong>lt werden, diese s<strong>in</strong>d wie <strong>in</strong> Abschnitt 3.1 beschrieben ohne weiteres auf<br />
Systeme von Differentialgleichungen zu erweitern.<br />
3.3.1 Euler Verfahren<br />
Das Euler Verfahren wird auch E<strong>in</strong>schrittverfahren genannt, weil es versucht mitt<strong>el</strong>s<br />
e<strong>in</strong>z<strong>el</strong>ner kle<strong>in</strong>er Schrittweiten h, e<strong>in</strong>e genaue numerische Abbildung des über<br />
Differentialgleichungen beschriebenen Systems zu geben. Bei dem Euler Verfahren<br />
wird Gleichung (3.3) durch e<strong>in</strong>e Diskretisierung ersetzt, man erhält<br />
y n+1 = y n + hf ′ (x n , y n ) . (3.4)<br />
Mit dieser Gleichung versucht man die Lösung für x n+1 = h+x n über x n anzunähern.<br />
Dieses Verfahren versucht somit über das Intervall h e<strong>in</strong>e L<strong>in</strong>earisierung des Systems<br />
vorzunehmen. Dabei st<strong>el</strong>lt Gleichung (3.4) die normale Geradengleichung dar. Hierbei<br />
ist y n der y-Abschnitt, f ′ (x n , y n ) die Steigung der Geraden im Punkt x n und<br />
h das Intervall. Das hier vorgest<strong>el</strong>lte sogenannte explizite Verfahren geht von e<strong>in</strong>er<br />
L<strong>in</strong>earisierung vom Punkt y n zu y n+1 aus und wird daher auch ”<br />
Euler vorwärts“<br />
genannt. Die Bezeichnung explizit kommt daher, dass auf der rechten Seite der Gleichung<br />
nur bekannte Größen auftreten und daher explizit y n+1 berechnet werden<br />
kann. Mit teilweise erhöhtem Rechenaufwand ist es auch möglich e<strong>in</strong> implizites Euler<br />
Verfahren durchzuführen. Man erhält es, wenn man bei der Approximation den<br />
Funktionswert nicht am l<strong>in</strong>ken, sondern am rechten Rand des Intervalls bestimmt,<br />
dann gilt<br />
y n+1 = y n + hf ′ (x n+1 , y n+1 ) . (3.5)<br />
Dieses Verfahren wird auch ”<br />
Euler rückwärts“ genannt. W<strong>el</strong>che Berechnungen nötig<br />
s<strong>in</strong>d um dieses implizite Verfahren zu verwenden, wird <strong>in</strong> Abschnitt 3.3.4 näher<br />
erläutert. An dieser St<strong>el</strong>le sollen zunächst die expliziten Verfahren erläutert werden.<br />
Man erkennt, dass das explizite Euler Verfahren unsymmetrisch ist, da es nur die<br />
Bed<strong>in</strong>gungen am Punkt x n ausnutzt und von dort e<strong>in</strong>e L<strong>in</strong>earisierung angestrebt<br />
wird. Dieses führt bei häufiger Wiederholung und bei genügend kle<strong>in</strong>em Intervall<br />
zu e<strong>in</strong>er polygonalen Approximation von y (schematische Darst<strong>el</strong>lung siehe Abb.<br />
1(a)). Die so erzeugte Näherung stimmt bis e<strong>in</strong>schließlich des l<strong>in</strong>earen Gliedes mit<br />
der TAYLOR-Entwicklung von y = y(x) <strong>in</strong> der Umgebung von x = x n übere<strong>in</strong>.<br />
Allerd<strong>in</strong>gs verwendet man heute dieses Verfahren nur noch <strong>in</strong> den Grundzügen, da<br />
sich der Fehler bei wiederholter Anwendung verstärkt und zu großen Abweichungen<br />
führen kann.<br />
Im folgenden sollen die beim Euler Verfahren entstehenden Fehler und die Genauigkeit<br />
näher betrachtet werden, da diese auch für die im weiteren besprochenen<br />
Verfahren maßgebend s<strong>in</strong>d. Hierzu betrachtet man e<strong>in</strong>e Menge ((x k , y k )) M k=0 von<br />
Approximationen <strong>in</strong> e<strong>in</strong>em Intervall [a, b] und nimmt an, dass y = y(x) die Lösung<br />
der ODE ist. Dann ergibt sich nach J.H. Mathews [22] e<strong>in</strong> sogenannter globaler und<br />
lokaler Diskretisierungsfehler. Der globale Fehler e k ist def<strong>in</strong>iert als die Differenz<br />
zwischen der analytischen Lösung und der approximativen Lösung<br />
e k = max [a,b] (|y (x k ) − y k |) mit k = 1, 2, . . ., M. (3.6)<br />
19
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
(a) unsymmetrische Euler-Approximation: die L<strong>in</strong>earisierung<br />
wird am Anfangspunkt x n gemacht<br />
(b) symmetrische Euler-<br />
Approximation: die L<strong>in</strong>earisierung<br />
wird zwischen zwei Wertepaaren x n , y n<br />
und x n+1 , y n+1 ang<strong>el</strong>egt<br />
Abbildung 3.1: Verschiedene Euler-Approximationen<br />
Der lokale Fehler e k+1 ergibt sich durch den <strong>in</strong> e<strong>in</strong>em e<strong>in</strong>z<strong>el</strong>nen Schritt begangenen<br />
Fehler. Hierbei git<br />
e k+1 = max [a,b] (|y (x k+1 ) − y k − hf ′ (x k , y k )|) mit k = 0, 1, . . ., M − 1. (3.7)<br />
Somit ist es möglich den Fehler abzuschätzen, den man <strong>in</strong>nerhalb e<strong>in</strong>es Intervalls<br />
[a, b] nach M Schritten gemacht hat, der Fehler liegt bei e<strong>in</strong>er Größenordnung von<br />
O (h 1 ) für den globalen Fehler, die Größenordnung des lokalen Fehlers liegt bei<br />
O (h 2 ). Man erkennt, dass das Euler Verfahren somit für e<strong>in</strong>e ”<br />
genaue“ numerische<br />
Beschreibung e<strong>in</strong>er ODE nicht zu verwenden ist oder e<strong>in</strong>e sehr kle<strong>in</strong>e Schrittweite h<br />
und damit entsprechend vi<strong>el</strong>e Rechenoperationen erfordert.<br />
3.3.2 Runge-Kutta Verfahren<br />
Das Euler Verfahren liefert somit im Allgeme<strong>in</strong>en nur grobe Näherungswerte. Im folgenden<br />
soll daher e<strong>in</strong> verfe<strong>in</strong>ertes Verfahren angegeben werden, das von Runge und<br />
Kutta entwick<strong>el</strong>t worden ist. Gegeben sei wieder die durch Gleichung (3.3) beschriebene<br />
Differentialgleichung und als Anfangswert y (x 0 ) = y 0 . Bei diesem Verfahren<br />
teilt man e<strong>in</strong> gegebenes Intervall [a, b] wiederum <strong>in</strong> Abschnitte der Schrittweite h<br />
auf. Wenn man nun das Euler Verfahren zu grunde legen würde, erhält man nach den<br />
oben angest<strong>el</strong>lten Betrachtungen schon nach kurzer Zeit starke Abweichungen der<br />
L<strong>in</strong>earisierung von der zu approximierenden Kurve. Um hier e<strong>in</strong>e genauere Aussage<br />
treffen zu können wird der Endpunkt P (x 0 + h) der Geraden für e<strong>in</strong>en Vergleich<br />
und zur Entwicklung des Runge-Kutta Verfahrens herangezogen. Dieser Endpunkt<br />
der L<strong>in</strong>earisierung wird im folgenden als Approximationspunkt bezeichnet.<br />
Aufbauend auf dem <strong>in</strong> Abschnitt 3.3.1 beschriebenen Verfahren, kann man – so<br />
Runge-Kutta – den gesuchten Prognosewert nur dadurch grundsätzlich verbessern,<br />
<strong>in</strong>dem man die für die l<strong>in</strong>eare Fortschreibung<br />
20<br />
y n+1 = y n + hf ′ (x n , y n ) (3.8)
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
verwendete Steigung f ′ (x n , y n ) nicht nur aus der anfänglichen Steigung f ′ (x 0 , y 0 )<br />
bestimmt sondern von dem (mitt<strong>el</strong>s der Differentialgleichung bekannten) weiteren<br />
Steigungsverhalten der Funktion y abhängig macht, <strong>in</strong>dem man zunächst mit e<strong>in</strong>er<br />
gewissen Teilschrittweite Hilfsapproximationen erst<strong>el</strong>lt und dann über die dabei gewonnenen<br />
Steigungen mitt<strong>el</strong>t. Das hier dargest<strong>el</strong>lte Runge-Kutta Verfahren vierter<br />
Ordnung verwendet Halbschritte h/2, dadurch gew<strong>in</strong>nt man vier Steigungen deren<br />
gewichtetes arithmetisches Mitt<strong>el</strong> gleich<br />
hf ′ ges = 1 6 (hf ′ 1 + 2 · hf ′ 2 + 2 · hf ′ 3 + hf ′ 4 ) (3.9)<br />
ist. Dieses st<strong>el</strong>lt die zur l<strong>in</strong>earen Fortsetzung der Funktion y benutzte Steigung dar.<br />
Durch die dopp<strong>el</strong>te Gewichtung der beiden ”<br />
mittleren Hilfssteigungen“ f ′ 2 und f ′ 3<br />
wird dabei im Allgeme<strong>in</strong>en e<strong>in</strong> zusätzlicher Genauigkeitsgew<strong>in</strong>n erzi<strong>el</strong>t. Üblicherweise<br />
schreibt man für hf ′ ν auch k ν mit ν = 1, . . .,4. Man muss somit für jeden<br />
Punkt x n+1 = x n + h die vier Faktoren berechnen um auf y n+1 zu kommen. Dabei<br />
ergeben sich die Faktoren durch die Halbschritte zu<br />
k 1 = hf 1 ′ (x n , y n )<br />
(<br />
k 2 = hf 2<br />
′ x n + h 2 , y n + k )<br />
1<br />
2<br />
(<br />
k 3 = hf 3<br />
′ x n + h 2 , y n + k )<br />
2<br />
2<br />
k 4 = hf 4 ′ (x n + h , y n + k 3 ) .<br />
Somit erhält man durch die Vere<strong>in</strong>fachung den Wert für y n+1 über<br />
y n+1 = y n + 1 6 (k 1 + 2k 2 + 2k 3 + k 4 ) . (3.10)<br />
Die so ermitt<strong>el</strong>te Näherung stimmt mit der Taylor-Entwicklung 6 bis e<strong>in</strong>schließlich<br />
des Gliedes mit dem Faktor h 4 übere<strong>in</strong>. Der Fehler dieser Approximation liegt somit<br />
bei e<strong>in</strong>er Größenordnung von O(h 5 ).<br />
Zur Illustration des Verfahrens dient als Beispi<strong>el</strong> die Differentialgleichung y ′ (x) =<br />
y(x) + x − 1 mit dem Anfangswert y(0) = 1 und e<strong>in</strong>er Schrittweite von h = 1. Die<br />
graphische Veranschaulichung ist <strong>in</strong> Abb. 3.2 zu sehen 7 . Mit der anfänglichen Steigung<br />
m 1 = y ′ (x 0 ) wird bei diesem Verfahren ausgehend von e<strong>in</strong>em Startpunkt A<br />
zunächst e<strong>in</strong> Euler Halbschritt gemacht. Dadurch erhält man e<strong>in</strong>en ersten y 1 -Wert<br />
mit y 1 = y (x 0 ) + m 1 1/2h. Nun nimmt man an, dass der zugehörige Approximationspunkt<br />
P 1 (x 0 + 1/2h, y 1 ) e<strong>in</strong> Punkt des Graphen ist (vgl. Abb. 3.2 oben-l<strong>in</strong>ks)<br />
und errechnet durch e<strong>in</strong>setzen dieses Punktes <strong>in</strong> die gegebene Differentialgeichung<br />
die zugehörige Steigung m 2 = f (x 0 + 1/2h, y 1 ) (vgl. Abb. 3.2 oben-mitte). Mit dieser<br />
Steigung führt man nun den ersten Euler Halbschritt erneut durch und erhält<br />
daraus e<strong>in</strong>en weiteren Wert y 2 = y (x 0 ) + m 2 1/2h. Wieder nimmt man an, dass<br />
der Punkt P 2 (x 0 + 1/2h, y 2 ) e<strong>in</strong> Punkt des Graphen ist (vgl. Abb. 3.2 oben-rechts)<br />
und errechnet durch E<strong>in</strong>setzen des Punktes P 2 <strong>in</strong> die gegebene Differentialgleichung<br />
die zugehörige Steigung m 3 = f (x 0 + 1/2h, y 2 ). Mit dieser Steigung führt man nun<br />
6 genauere Betrachtungen hierzu f<strong>in</strong>det man im Buch von A. Kneschke [18] (Bd. I, Seite 511)<br />
7 <strong>in</strong> Anhang C.1, C.2 s<strong>in</strong>d hierzu zwei Algorithmen dargest<strong>el</strong>lt<br />
21
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
Abbildung 3.2: Exemplarische Darst<strong>el</strong>lung des Runge-Kutta Verfahrens vierter Ordnung<br />
mit der Differentialgleichung y ′ (x) = y(x) + x − 1<br />
e<strong>in</strong>en ganzen Euler Schritt aus und erhält e<strong>in</strong>en neuen y Wert y 3 = y (x 0 ) + m 3 h,<br />
durch erneutes e<strong>in</strong>setzen ergibt sich der Punkt P 3 (x 0 + h, y 3 ) (vgl. Abb. 3.2 untenl<strong>in</strong>ks).<br />
Durch e<strong>in</strong>setzen <strong>in</strong> die Differentialgleichung ergibt sich die letzte Steigung<br />
m 4 = f (x 0 + h, y 3 ) (vgl. Abb. 3.2 unten-mitte). Aus den so berechneten vier Steigungen<br />
wird nun nach Runge-Kutta e<strong>in</strong> gewichtetes arithmetisches Mitt<strong>el</strong> gebildet<br />
und man erhält als Gesamtsteigung für die L<strong>in</strong>earisierung<br />
m ges = 1 6 (m 1 + 2m 2 + 2m 3 + m 4 )<br />
= 1 6 (y′ (x 0 ) + 2f (x 0 + 1/2h, y 1 ) + 2f (x 0 + 1/2h, y 2 ) + f (x 0 + h, y 3 )) .<br />
Mit dieser Gesamtsteigung lässt sich nun <strong>in</strong> Analogie zum Euler Verfahren das Stück<br />
des Graphen approximieren (vgl. Abb. 3.2 unten-rechts). Man erhält somit nach dem<br />
Runge-Kutta Verfahren vierter Ordnung die Geradengleichung<br />
y (x 0 + h) = y (x 0 ) + hm ges (3.11)<br />
mit dem zugehörigen Punkt B (x 0 + h, y (x 0 + h)), dieser wird als der gesuchte<br />
nächste Kurvenpunkt angenommen und dient als Startpunkt für den nächsten Iterationsschritt.<br />
Wie schon <strong>in</strong> den obigen Erläuterungen beschrieben, liegt der Fehler des Runge-<br />
Kutta Verfahrens bei e<strong>in</strong>er Größenordnung von O (h 5 ). Man muss nun bei dem<br />
Runge-Kutta Verfahren die Diskretisierungsfehler (Verfahrensfehler) und die numerischen<br />
Fehler (Rundungsfehler) betrachten, da sich beide <strong>in</strong> unterschiedlicher Weise<br />
auf den Gesamtfehler auswirken. Beide Fehlerarten entwick<strong>el</strong>n sich <strong>in</strong> Abhängigkeit<br />
von der Schrittweite h gegensätzlich; wird die Schrittweite verr<strong>in</strong>gert, so verkle<strong>in</strong>ert<br />
sich zwar der Diskretisierungsfehler aufgrund von höherem Rechenaufwand wird sich<br />
22
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
aber der numerische Fehler vergrößern. Wird dagegen die Schrittweite vergrößert,<br />
so verr<strong>in</strong>gert sich aufgund der ger<strong>in</strong>geren Anzahl der Rechenschritte der numerische<br />
Fehler, woh<strong>in</strong>gegen der Diskretisierungsfehler zunimmt. Diese Betrachtung ist für<br />
die <strong>in</strong> Abschnitt 3.3.2.1 besprochene adaptive Schrittweitenbestimmung von Bedeutung.<br />
Zum<strong>in</strong>dest theoretisch gibt es jeweils für e<strong>in</strong>e bestimmte Differentialgleichung<br />
zusammen mit dem Näherungsverfahren e<strong>in</strong>e bestimmte optimale Schrittweite (vgl.<br />
Abb. 3.3). Diese macht man sich bei e<strong>in</strong>er Schrittweitensteuerung zu nutze. Jedoch<br />
reagiert dieses Verfahren wie <strong>in</strong> Abb. 3.3 dargest<strong>el</strong>lt, sehr empf<strong>in</strong>dlich auf e<strong>in</strong>e<br />
Veränderung der Schrittweite. Die optimale Schrittweite wird gemäß e<strong>in</strong>er empirischen<br />
Beziehung festg<strong>el</strong>egt<br />
h · L ≈ 0.1 (3.12)<br />
mit L der sogenannten Lipschitzkonstanten 8 , die e<strong>in</strong>e obere Schranke der Ableitung<br />
darst<strong>el</strong>lt.<br />
Nun st<strong>el</strong>lt sich die Frage, warum die meisten numerischen<br />
Softwarepakete eben nur die Runge-<br />
Kutta Verfahren vierter Ordnung und nicht höhere<br />
Ordnungen implementieren. Pr<strong>in</strong>zipi<strong>el</strong>l s<strong>in</strong>d<br />
Runge-Kutta Verfahren auch mit höheren Ordnungen<br />
möglich. Dabei s<strong>in</strong>d die Grenzen des realisierbaren<br />
theoretisch nur durch die Rechenleistung<br />
und die numerische Genauigkeit der Variablen<br />
e<strong>in</strong>geschränkt. Im Allgeme<strong>in</strong>en wird aber<br />
auf das Verfahren vierter Ordnung zurückgegriffen.<br />
Dieses liegt dar<strong>in</strong> begründet, dass zwar die Fehler ger<strong>in</strong>ger werden, die diese<br />
Abbildung 3.3: Fehlerentwicklung<br />
Verfahren machen, der Rechenaufwand dieser Verfahren aber nicht <strong>in</strong> R<strong>el</strong>ation zu<br />
ihrem Nutzen steht. Das folgende Zitat aus [29] st<strong>el</strong>lt wohl am nachhaltigsten die<br />
St<strong>el</strong>lung des Runge-Kutta Verfahrens dar.<br />
For many scientific users, fourth-order Runge-Kutta is not just the<br />
”<br />
first word on ODE <strong>in</strong>tegrators, but the last word as w<strong>el</strong>l. In fact, you<br />
can get pretty far on this old workhorse, especially if you comb<strong>in</strong>e it with<br />
an adaptive stepsize algorithm. . . . Bulirsch-Stoer or predictor-corrector<br />
methods can be very much more efficient for problems where very high<br />
accuracy is a requirement. Those methods are the high-strung racehorses.<br />
Runge-Kutta is for plough<strong>in</strong>g the fi<strong>el</strong>ds.“<br />
3.3.2.1 Adaptive Schrittweite<br />
Im vorherigen Abschnitt wurde erläutert, wie man das Runge-Kutta Verfahren mathematisch<br />
beschreiben kann und w<strong>el</strong>che Fehler dabei auftreten. Dabei gibt es e<strong>in</strong>e<br />
optimale Schrittweite, bei der die Fehler m<strong>in</strong>imal s<strong>in</strong>d. Allerd<strong>in</strong>gs ist diese Annahme<br />
nur unter der Bed<strong>in</strong>gung richtig, dass die gesuchte Funktion stark veränderlich<br />
ist. Kommt es <strong>in</strong> e<strong>in</strong>em Bereich zu ke<strong>in</strong>en großen Abweichungen, so kann man e<strong>in</strong>e<br />
sogennante adaptive Schrittweitensteuerung e<strong>in</strong>führen. Diese Steuerung, bzw. diese<br />
Methode verändert die Schrittweite <strong>in</strong> Abhängigkeit von der Veränderlichkeit der gesuchten<br />
Funktion. Um e<strong>in</strong>e solche Steuerung zu implementieren s<strong>in</strong>d jedoch weitere<br />
Rechenschritte nötig, dieses verlangsamt zwar das Verfahren auf stark veränderlichen<br />
8 genaue mathematische Def<strong>in</strong>ition siehe O. Forster [9] Kapit<strong>el</strong> II, S. 102<br />
23
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
Stücken, führt aber zu schn<strong>el</strong>leren Ergebnissen auf nicht oder kaum veränderlichen<br />
Kurvenabschnitten. Bei dem besprochenen Runge-Kutta Verfahren vierter Ordnung<br />
wird zumeist die step doubl<strong>in</strong>g“-Methode verwendet, man verdopp<strong>el</strong>t bzw. halbiert<br />
”<br />
die Schrittweite. Hierzu berechnet man zu jedem Punkt die vier Runge-Kutta Parameter<br />
k 1 , k 2 , k 3 und k 4 und macht von diesen die Schrittweite abhängig. Wegen<br />
der empf<strong>in</strong>dlichen Reaktionen des Fehlers auf die Schrittweite sollte diese jedoch<br />
nicht kle<strong>in</strong>er als nötig gewählt werden. In den heutigen adaptiven Methoden wird<br />
folgendes Kriterium zur Steuerung zugrunde g<strong>el</strong>egt<br />
∣ q =<br />
k 3 − k 2∣∣∣<br />
∣ . (3.13)<br />
k 2 − k 1<br />
Dieser Parameter wird nach jedem Schritt berechnet und <strong>in</strong> Abhängigkeit davon<br />
wird die Schrittweite nach der Vorschrift<br />
⎧<br />
⎨ 2h n für q < 0.5%<br />
h n+1 = h n für 0.5% < q < 4%<br />
(3.14)<br />
⎩<br />
h n /2 für q > 4%<br />
angepasst. Hierbei wird der vorangehende Schritt wiederholt, wenn die Schrittweite<br />
halbiert wird. Somit werden für jeden zu berechnenden Punkt notfalls zwei<br />
vollständige Runge-Kutta Berechnungen durchgeführt. E<strong>in</strong>e Alternative zum nochmaligen<br />
Durchlauf aller Runge-Kutta Schritte mit veränderter Schrittweite ist möglich,<br />
wenn man zwei Integrationsverfahren unterschiedlicher Ordnung verwendet.<br />
So lässt sich das Runge-Kutta Verfahren vierter Ordnung mit dem Runge-Kutta<br />
Verfahren fünfter Ordnung durch e<strong>in</strong>en Runge-Kutta-Merson Algorithmus 9 so komb<strong>in</strong>ieren,<br />
dass man <strong>in</strong>sgesamt nur fünf Auswertungsschritte braucht um gleichzeitig<br />
auch e<strong>in</strong>e Aussage über den Fehler und somit die Änderung der Schrittweite machen<br />
zu können.<br />
3.3.3 Burlisch-Stoer Verfahren<br />
Während das adaptive Runge-Kutta Verfahren vierter Ordnung für allgeme<strong>in</strong>e Systeme<br />
verwendet wird, ist für Probleme, w<strong>el</strong>che durch ”<br />
glatte“ Differentialgleichungen<br />
beschrieben werden können, dabei beschreibt ”<br />
glatte“ den Verlauf der Lösungsfunktionen,<br />
die ke<strong>in</strong>e Unstetigkeiten 10 oder scharfe Nichtl<strong>in</strong>earitäten be<strong>in</strong>halten und auf<br />
großen Intervallen mit möglichst wenig Rechenaufwand <strong>in</strong>tegriert werden sollen, e<strong>in</strong><br />
anderes Verfahren maßgebend. Das Burlish-Stoer Verfahren st<strong>el</strong>lt e<strong>in</strong> solches Verfahren<br />
zur höchst präzisen numerischen Berechnung der beschriebenen Differentialgleichungen<br />
mit m<strong>in</strong>imalem Rechenaufwand dar. Das Burlish-Stoer Verfahren beruht<br />
auf drei Grundideen. Die erste ist die Richardson Extrapolation. Diese geht davon<br />
aus, dass die numerische Lösung des Problems s<strong>el</strong>bst als e<strong>in</strong>e Art analytische Lösung<br />
angesehen werden kann. Um diese zu bekommen wird e<strong>in</strong>e Fitkurve über die ermitt<strong>el</strong>ten<br />
Werte g<strong>el</strong>egt. Die zweite Idee beruht auf der Anpassung der Fitkurve s<strong>el</strong>bst,<br />
Burlisch und Stoer erkannten die Stärke von rationalen Funktionen bei dieser Art<br />
9 siehe Runge-Kutta-Merson Algorithmus Anhang C.3<br />
10 dieses ist <strong>in</strong> den meisten physikalischen Systemem der Fall, gerade bei den <strong>in</strong> dieser Arbeit<br />
betrachteten Bewegungen<br />
24
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
Abbildung 3.4: Burlisch-Stoer (Richardson Extrapolation) (Qu<strong>el</strong>le geändert: [29])<br />
der Extrapolation. Die dritte Idee ist, e<strong>in</strong> Approximationsverfahren zu f<strong>in</strong>den, w<strong>el</strong>ches<br />
aufgrund der rationalen Funktion ruhig e<strong>in</strong>e Fehlergrößenordnung von O (h 2 )<br />
haben kann und e<strong>in</strong>en kle<strong>in</strong>en Rechenaufwand fordert. So ist es möglich mit nur<br />
e<strong>in</strong>em Bulisch-Stoer Schritt e<strong>in</strong>e große Schrittweite mit sehr genauem Ergebnis zu<br />
erreichen. Hierbei geht man nach folgendem Schema vor: Zunächst wird <strong>in</strong> immer<br />
kle<strong>in</strong>eren Schritten h = H/n mit n = 2, 4, 6, 8, 12, 16, 24, 32, . . ., [n i = 2n i−2 ] , . . .<br />
numerisch <strong>in</strong>tegriert (hier f<strong>in</strong>det zumeist das Runge-Kutta Verfahren zweiter Ordnung<br />
Anwendung), so dass zu jeder Schrittweite h i e<strong>in</strong> Integrationsergebnis y i gehört.<br />
Nun wird durch alle (h i , y i ) e<strong>in</strong>e gebrochen rationale Funktion (Interpolationsfunktion)<br />
angepasst mit<br />
R(h) = b 0 + b 1 h + b 2 h 2 + . . .<br />
a 0 + a 1 h + a 2 h 2 + . . . . (3.15)<br />
Das Extrapolieren dieser Interpolationsfunktion auf b<strong>el</strong>iebig kle<strong>in</strong>e Schrittweiten<br />
liefert nun e<strong>in</strong> optimales Ergebnis für den Zustand am Ende des Intervalls y(x 0 +<br />
H) = lim R(h), dieses ist <strong>in</strong> Abb. 3.4 schematisch dargest<strong>el</strong>lt. Die Extrapolation wird<br />
h→0<br />
nach jeder Schrittweite gemacht und liefert approximativ den Endzustand sowie den<br />
Fehler. Das Verfahren wird abgebrochen, wenn der Fehler kle<strong>in</strong>er als die vorgegebene<br />
Schranke geworden ist.<br />
3.3.4 Prädiktor-Korrektur Methode<br />
Die Verfahren, die nach dieser Methode arbeiten s<strong>in</strong>d genauer und effektiver als<br />
Runge-Kutta Verfahren aber nur bei ”<br />
glatten“ Verläufen e<strong>in</strong>setzbar. E<strong>in</strong> Nachteil<br />
dieser Verfahren ist, dass sie nicht s<strong>el</strong>bststartend s<strong>in</strong>d, da Zustände und Ableitungen<br />
aus Schritten zuvor benötigt werden, daher werden zunächst immer e<strong>in</strong> paar Runge-<br />
Kutta Schritte benötig um diese Zustände zu berechnen. Erst mit diesen Zuständen<br />
kann die Prädiktor-Methode e<strong>in</strong>e Aussage über den weiteren Verlauf machen. Die<br />
nächsten Punkte werden dann der Prädiktor-Methode entnommen. Um sich den<br />
25
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
Mechanismus der Prädiktor-Methode klar zu machen, ist es zunächst notwendig,<br />
zu verstehen, dass das <strong>in</strong>tegrieren e<strong>in</strong>er ODE sich grundlegend von der Suche nach<br />
e<strong>in</strong>em Integranden unterscheidet. Bei e<strong>in</strong>er Integration kennt man den Zusammenhang<br />
zwischen dem Integranden und der Variablen x <strong>in</strong> analoger Form. Wenn man<br />
nicht numerisch vorgehen würde, sondern analytisch, ließe sich die L<strong>in</strong>earisierung<br />
und das Vorhersagen e<strong>in</strong>es Punktes auf der Kurve analytisch schreiben als<br />
y n+1 = y n +<br />
x∫<br />
n+1<br />
x n<br />
f(x ′ , y) dx ′ . (3.16)<br />
Bei den bisher vorgest<strong>el</strong>lten Verfahren wurde eben der Integrand durch die L<strong>in</strong>earisierung<br />
ausgedrückt, diese Verfahren werden als E<strong>in</strong>schrittverfahren bezeichnet,<br />
weil der Wert x n+1 und y n+1 nur auf dem vorherigen Wert y n beruht. Die Prädiktor<br />
Methode versucht nun e<strong>in</strong>en anderen Weg den Integranden auszudrücken und<br />
verwendet dazu die bereits bekannten Werte um zunächst e<strong>in</strong>en Prädiktionswert<br />
y P zu berechnen und diesen mit Hilfe e<strong>in</strong>es Korrekturwertes y C anzupassen. Dabei<br />
unterscheidet man bei den Vorgehensweisen zwischen den E<strong>in</strong>- und Mehrschrittverfahren,<br />
dabei bezieht sich diese E<strong>in</strong>teilung auf die Anzahl der vorherigen Werte, die<br />
zur Berechnung herangezogen wurden.<br />
3.3.4.1 E<strong>in</strong>schrittverfahren<br />
Die e<strong>in</strong>fachste Prädiktor-Korrektur Methode ist das implizite Euler Verfahren. Hier-<br />
(a) Prädiktionswert, Näherungslösung und Korrektur<br />
(b) Korrekturberechnung<br />
Abbildung 3.5: Implizites Euler Verfahren<br />
bei wird der y n+1 Wert rückwärts berechnet siehe Gleichung (3.5). Dabei wird<br />
zunächt e<strong>in</strong> Prädiktionswert y P mitt<strong>el</strong>s des expliziten Euler Verfahrens ermitt<strong>el</strong>t. An<br />
diesem Prädiktionspunkt wird die Ableitung, somit die Steigung m P = f ′ (x n+1 , y P )<br />
für den Prädiktionspunkt berechnet. Ausgehend von dieser Steigung ergibt sich von<br />
x n aus e<strong>in</strong>e Gerade (vgl. Abb. 5(a) rote L<strong>in</strong>ie) und man erhält e<strong>in</strong>e Näherung für<br />
y n+1 . Diese Näherung liegt allerd<strong>in</strong>gs <strong>in</strong>nerhalb e<strong>in</strong>es Fehlers ∆x von der exakten<br />
Lösung entfernt. Um den Fehler zu verifizieren, berechnet man die Fläche, die oberhalb<br />
der exakten Lösung liegt (vgl. Abb. 5(b)). Dazu verwendet man zumeist die<br />
Trapezform<strong>el</strong> 11 . Mitt<strong>el</strong>s dieses Fehlers ist es möglich e<strong>in</strong>e Korrektur des Näherungswertes<br />
durchzuführen, daher wird dieser Schritt auch als Korrektorschritt bezeichnet.<br />
11 siehe Anhang B.4 Gleichung (B.14)<br />
26
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
3.3.4.2 Mehrschrittverfahren<br />
Bei den Mehrschrittverfahren versucht man mitt<strong>el</strong>s mehrerer vorheriger Punkte und<br />
der Ableitung e<strong>in</strong>e Aussage über den nächsten Punkt zu erhalten. Bei diesen Mehrschrittverfahren<br />
versucht man f(x, y) über e<strong>in</strong> Polynom durch mehrere vorherige<br />
Punkte x n , x n−1 , x n−2 , . . . anzunähern. Somit wird das oben angeführte Integral zu<br />
y n+1 = y n + h ( a 0 y ′ n+1 + a 1y ′ n + a 2y ′ n−1 + a 3y ′ n−2 + . . .) (3.17)<br />
mit y ′ n = f (x n, y n ). Hierbei heißt die Methode explizit, wenn a 0 = 0 und implizit<br />
wenn a 0 ≠ 0.<br />
Abbildung 3.6: Prädiktor Methode (Qu<strong>el</strong>le geändert: [6])<br />
Die Ordnung e<strong>in</strong>er Prädiktor Methode richtet sich nun nicht wie bei Runge-Kutta<br />
nach den Schritten, die gemacht wurden um e<strong>in</strong>en neuen Punkt zu berechnen sondern<br />
nach der Anzahl der verwendeten bekannten Punkte. Nun ist es aber problematisch<br />
e<strong>in</strong>e implizite Form von Gleichung (3.17) zu f<strong>in</strong>den, da man hierzu y n+1<br />
benötigt. Um dieses Problem zu lösen, muss man e<strong>in</strong>e Abschätzung für diesen Wert<br />
festlegen, entweder geschieht dieses durch raten oder durch den Prädiktorschritt,<br />
der als Grundlage zunächst die explizite Form verwendet um von dort auf den Wert<br />
für y n+1 zu kommen. Dieses geschieht dann durch die Integration des Polynomzuges<br />
durch e<strong>in</strong>e Simpson Integration 12 von x n bis x n+1 . Mitt<strong>el</strong>s dieser Integration kann<br />
man den Wert für y n+1 korrigieren.<br />
Die Prädiktor Methode kann man wie <strong>in</strong> Abb. 3.6 verdeutlichen. Zunächst schätzt<br />
man den Prädiktionswert y P (x n + h) durch Extrapolation (Polynomzug, Spl<strong>in</strong>efittung,<br />
etc.) aus vorherigen Werten y n−i und den Ableitungen<br />
12 siehe Simpson Integration Anhang B.4<br />
y (x n ) , y ′ (x n ) , y (x n − h) , y ′ (x n − h) , . . .<br />
27
3.3 Angewandte Lösungsverfahren Numerische Beschreibung der Bewegung<br />
ab. Dabei muss das Differentialgleichungssystem nicht ausgewertet werden. Um nun<br />
zu e<strong>in</strong>er Korrektur des so erzeugten Wertes zu g<strong>el</strong>angen, berechnet man die Ableitung<br />
des Prädiktionswertes. So erhält man mit den vorherigen Ableitungen und<br />
e<strong>in</strong>em Polygonzug bis zu x n + h e<strong>in</strong>e weitere Aussage über den Prädiktionswert.<br />
Nun berechnet man das Integral ∆x als Fläche unterhalb der Kurve zwischen x n<br />
und x n + h mitt<strong>el</strong>s der Simpson Integration (siehe Anhang B.4; nur exemplarisch<br />
für MATLAB r○ , für e<strong>in</strong>e eigene Implementation lassen sich alle weiteren diskreten<br />
Integrationsverfahren nutzen). Mitt<strong>el</strong>s dieser Fläche lässt sich der korrigierte Wert<br />
der Kurve berechnen y n+1 = y (x n + h) = y (x n ) + ∆x. Somit wird auch deutlich,<br />
warum dieses Lösungsverfahren zunächst berechnete Punkte braucht um e<strong>in</strong>e genaue<br />
Aussage über den weiteren Verlauf zu machen, <strong>in</strong> dem gezeigten Beispi<strong>el</strong> (vgl.<br />
Abb. 3.6) werden zunächst drei bekannte Punkte vorausgesetzt.<br />
3.3.4.3 Adams-Bashforth-Moulton Verfahren<br />
Dieses Verfahren ist e<strong>in</strong>es der häufigst e<strong>in</strong>gesetzten Mehrschrittverfahren, es ba-<br />
(a) Vierte Ordnung des Adams-Bashforth<br />
Prädiktionswertes (mit Extrapolation)<br />
(b) Vierte Ordnung des Adams-Moulton Korrekturwertes<br />
(mit Interpolation)<br />
Abbildung 3.7: Adams-Bashforth-Moulton Integration<br />
siert auf der oben beschriebenen Prädiktor-Korrektur Methode. Somit kann man<br />
sehr vi<strong>el</strong> Rechenaufwand sparen. Jedoch können diese Verfahren nur wie auch das<br />
Burlisch-Stoer Verfahren bei ”<br />
glatten“ Differentialgleichungen e<strong>in</strong>gesetzt werden. An<br />
dieser St<strong>el</strong>le soll kurz das Adams-Bashforth-Moulton Verfahren vorgest<strong>el</strong>lt werden,<br />
da MATLAB r○ es bei e<strong>in</strong>igen Lösungsverfahren verwendet. Das Verfahren basiert auf<br />
der <strong>in</strong> Gleichung (3.16) dargest<strong>el</strong>lten allgeme<strong>in</strong>en Form. Hierbei wird das Lagrange<br />
Polynom 13 für die Approximation von f(x ′ , y) mit den Punkten<br />
(x n−3 , y n−3 ), (x n−2 , y n−2 ) , (x n−1 , y n−1 )<br />
und (x n , y n ) verwendet. Man <strong>in</strong>tegriert über das Intervall [x n , x n+1 ]. So erhält man<br />
den Adams-Bashforth Prädiktionswert<br />
y P = y n + h 24 (−9f n−3 + 37f n−2 − 59f n−1 + 55f n ) . (3.18)<br />
In gleicher Weise ergibt sich der Korrekturwert. Nun kann man, wie oben beschrieben<br />
den Prädiktionswert für y n+1 verwenden und wiederum e<strong>in</strong> Langrange Polynom<br />
13 siehe O. Forster [9] Kapit<strong>el</strong> I<br />
28
3.4 MATLAB ODE Suite Numerische Beschreibung der Bewegung<br />
verwenden. Diesesmal kann man den Punkt (x n+1 , y n+1 ) mit verwenden. Dieses erzeugt<br />
die Adams-Moulton Korrektur, es lässt sich schreiben<br />
y C = y n + h 24 (f n−2 − 5f n−1 + 19f n + 9f n+1 ) . (3.19)<br />
Dieses ist <strong>in</strong> Abb. 3.7 gezeigt. Die Größenordnung des Fehler des Adams-Bashforth-<br />
Moulton Verfahrens liegt bei e<strong>in</strong>er Größenordnung von O (h 5 ).<br />
3.4 MATLAB r○ ODE SUITE<br />
Die oben beschriebenen Lösungsverfahren werden <strong>in</strong> MATLAB r○ <strong>in</strong> unterschiedlicher<br />
Weise umgesetzt. Im folgenden soll dargest<strong>el</strong>lt werden, auf w<strong>el</strong>che Verfahren MAT-<br />
LAB r○ bei e<strong>in</strong>er Lösung zurückgreift und wie diese <strong>in</strong>tern berechnet werden (hierzu<br />
s<strong>in</strong>d die Arbeiten von R. Ash<strong>in</strong>o und L.F. Shamp<strong>in</strong>e [2, 34] grundlegend). Die ”<br />
Solver“<br />
gehören nicht zum b<strong>in</strong>ären Kern von MATLAB r○ , somit ist es möglich sich die<br />
Implementierung über die Kommandos type bzw. dbtype anzuschauen.<br />
3.4.1 Implementierungen und Aufrufe der ”<br />
ODE-Solver“<br />
Die numerischen Hilfsmitt<strong>el</strong>, die MATLAB r○ zur Verfügung st<strong>el</strong>lt, basieren auf den<br />
schon <strong>in</strong> FORTRAN 90 verwendeten Rout<strong>in</strong>en, die <strong>in</strong> den Softwarepaketen LAPACK,<br />
D02BGF und DIVPAG zusammengefasst werden. Diese Rout<strong>in</strong>en implementieren die<br />
vorhergehend theoretisch beschriebenen Verfahren. Ausgehend von den <strong>in</strong> [29] beschriebenen<br />
Implementierungen ist es möglich, e<strong>in</strong>z<strong>el</strong>ne e<strong>in</strong>fache Algorithmen für<br />
MATLAB r○ zu entwerfen. Diese st<strong>el</strong>len schematisch dar, wie die <strong>in</strong>terne Implementierung<br />
<strong>in</strong> MATLAB r○ funktioniert, da diese unter Umständen sehr komplex ist. Die<br />
e<strong>in</strong>fachen Algorithmen s<strong>in</strong>d <strong>in</strong> Anhang C dargest<strong>el</strong>lt, hierbei wird bei der Darst<strong>el</strong>lung<br />
auf e<strong>in</strong>e adaptive Schrittweitensteuerung verzichtet, da diese die Implementierung<br />
nur unnötig verkomplizieren würde, es wird auf die vorhergehend gemachten<br />
theoretischen Überlegungen verwiesen.<br />
In diesem Abschnitt werden die e<strong>in</strong>z<strong>el</strong>nen Funktionen vorgest<strong>el</strong>lt, die MATLAB r○ zur<br />
numerischen Lösung von Differentialgleichungen zur Verfügung st<strong>el</strong>lt. Dabei s<strong>in</strong>d alle<br />
<strong>in</strong> MATLAB r○ implementierten ODE Funktionen mit e<strong>in</strong>er adaptiven Schrittweitensteuerung<br />
ausgestattet, die über die E<strong>in</strong>gabe der Genauigkeit (Toleranz) gesteuert<br />
werden. MATLAB r○ be<strong>in</strong>haltet die folgenden ”<br />
ODE Solver“:<br />
• ode23 expliziter Runge-Kutta-Algorithmus zweiter und dritter Ordnung (sogennates<br />
Bogacki und Shamp<strong>in</strong>e Paar [5])<br />
• ode45 expliziter Runge-Kutta-Algorithmus vierter und fünfter Ordnung (sogenanntes<br />
Dormand-Pr<strong>in</strong>ce Paar [8])<br />
• ode15 abgewand<strong>el</strong>ter Burlisch-Stoer Algorithmus (nach C.W. Gear [34])<br />
• ode113 Adams-Bashforth-Algorithmus mit variabler Ordnung 1, . . ., 13<br />
29
3.4 MATLAB ODE Suite Numerische Beschreibung der Bewegung<br />
Die verwendeten Algorithmen gehen zwar auf die oben vorgest<strong>el</strong>lten grundlegenden<br />
Theorien zurück s<strong>in</strong>d aber im Laufe der Zeit durch neue Erkenntnisse und durch<br />
neue b<strong>in</strong>äre Implementationen <strong>in</strong> MATLAB r○ optimiert worden. Daher bieten die<br />
heutigen ”<br />
ODE Solver“, wie sie <strong>in</strong> den Versionen 6.5 (R<strong>el</strong>ease 13) und 7.0 (R<strong>el</strong>ease<br />
14) vorkommen, die schn<strong>el</strong>lste und komfortab<strong>el</strong>ste Möglichkeit ODE’s numerisch zu<br />
lösen. Zur weiteren Optimierung be<strong>in</strong>halten die Runge-Kutta Verfahren immer e<strong>in</strong><br />
Paar von Verfahren unterschiedlicher Ordnung (Analogie siehe Anhang C.3). E<strong>in</strong><br />
weiterer Vorteil, den MATLAB r○ bei der Lösung von ODE’s zur Verfügung st<strong>el</strong>lt,<br />
ist, dass alle Lösungsverfahren mit e<strong>in</strong> und der s<strong>el</strong>ben Befehlstruktur aufgerufen<br />
werden können, ohne dass man für jedes Verfahren e<strong>in</strong>e spezifizierte benötigt.<br />
3.4.1.1 Aufruf e<strong>in</strong>es ODE Solvers<br />
Die numerischen Lösungsverfahren s<strong>in</strong>d <strong>in</strong> MATLAB r○ standardisiert worden, dieses<br />
führt zu e<strong>in</strong>er e<strong>in</strong>fachen Handhabung und ermöglicht dem Benutzer e<strong>in</strong> hohes<br />
Maß an Flexibilität, da mit nur kle<strong>in</strong>en Änderungen e<strong>in</strong> anderer ”<br />
ODE Solver“<br />
e<strong>in</strong>gebunden werden kann. In diesem Abschnitt soll die MATLAB r○ Syntax zur Behandlung<br />
von ODE Problemen beschrieben werden und die e<strong>in</strong>z<strong>el</strong>nen Optionen, die<br />
MATLAB r○ dazu bietet näher erläutert werden. Die Syntax zum Aufruf e<strong>in</strong>es ”<br />
ODE<br />
Solvers“ sieht immer wie folgt aus<br />
>> [x,y] = solvername(@fun,[x<strong>in</strong>itial xf<strong>in</strong>al], y0, {options})<br />
Dieser Aufruf erfordert, dass das System von Differentialgleichungen bzw. Differentialgleichungen<br />
höherer Ordnung, wie <strong>in</strong> Abschnitt 3.1 beschrieben, angesehen werden<br />
können und vom Problem her der Form y ′ = f(x, y) s<strong>in</strong>d. Beim Aufruf ist @fun<br />
der Name der Funktion, die die Differentialgleichung bestimmt. Das Intervall über<br />
w<strong>el</strong>ches die Funktion <strong>in</strong>tegriert werden soll, ist dabei durch [x<strong>in</strong>itial xf<strong>in</strong>al] gegeben,<br />
<strong>in</strong> der Dokumentation von MATLAB r○ , die mit dem Aufruf doc solvername<br />
aufgerufen wird, f<strong>in</strong>det man an dieser St<strong>el</strong>le e<strong>in</strong>en Vektor tspan, dieser muss den<br />
x<strong>in</strong>itial- und xf<strong>in</strong>al-Wert enthalten. MATLAB r○ geht dann von e<strong>in</strong>er natürlichen<br />
Schrittweite aus und berechnet hierzu im Intervall die Lösungen. Hat der Vektor<br />
tspan mehr als zwei Elemente, so berechnet MATLAB r○ die Lösungen der Differentialgleichungen<br />
explizit nur an diesen Punkten. Dann ist es dem Benutzer überlassen,<br />
<strong>in</strong> w<strong>el</strong>cher Weise er die Daten weiterverarbeitet und w<strong>el</strong>che Interpolation er für<br />
die Darst<strong>el</strong>lung verwenden möchte. Der Wert y0 gibt die Anfangsbed<strong>in</strong>gungen der<br />
e<strong>in</strong>z<strong>el</strong>nen Gleichungen vor, mitt<strong>el</strong>s der Anzahl der Elemente dieses Vektors, ist es<br />
MATLAB r○ möglich die Anzahl der Differentialgleichungen zu bestimmen, die das<br />
System beschreiben und die g<strong>el</strong>öst werden müssen.<br />
Der Vektor options ist optional, er wird durch die Funktion odesets erzeugt. Hierbei<br />
kann man der Funktion als Str<strong>in</strong>g die b<strong>el</strong>iebigen Optionen übergeben und den<br />
gewünschten Zahlenwert. Hieraus werden die passenden Parameter für die e<strong>in</strong>z<strong>el</strong>nen<br />
ODE Solver“ automatisch zusammengest<strong>el</strong>lt. Dieses ist e<strong>in</strong>e weitere Optimierung<br />
”<br />
der Lösungsverfahren bzw. des Aufrufs, da man auf diese Weise nicht s<strong>el</strong>bst e<strong>in</strong>e<br />
Auswahl aus den Parametern treffen muss mit denen die Lösungsverfahren arbeiten.<br />
Hierbei ist die wichtigste Option die auch schon oben angesprochene Toleranz<br />
des Fehlers, man kann die r<strong>el</strong>ative R<strong>el</strong>Tol und die absolute Toleranz AbsTol setzen.<br />
30
3.4 MATLAB ODE Suite Numerische Beschreibung der Bewegung<br />
Hierbei wird bei jedem Ergebnis der lokale Fehler abgeschätzt, der die Bed<strong>in</strong>gung<br />
|e i | ≤ r |y i | + a i<br />
mit r der r<strong>el</strong>ativen Toleranz und a i der absoluten Toleranz erfüllen muss. Die r<strong>el</strong>ative<br />
Toleranz liegt standardmäßig bei e<strong>in</strong>em Wert von 10 −3 die absolute Toleranz liegt<br />
bei 10 −6 , diese Werte müssen je nach Problem angeglichen werden, nach der Arbeit<br />
von J.C. Polk<strong>in</strong>g [28] gibt es noch ke<strong>in</strong>en zufriedenst<strong>el</strong>lenden Automatismus, der<br />
dieses für b<strong>el</strong>iebige Probleme lösen könnte.<br />
E<strong>in</strong>e weitere Option, die man mitt<strong>el</strong>s odeset setzen kann, ist das Ausgabeformat.<br />
Hierbei kann man die Eigenschaft OutputFcn auf verschiedene Werte setzen, so das<br />
entweder gleich e<strong>in</strong> e<strong>in</strong>- bzw. mehrdimensionaler Plot erzeugt wird. Hierzu dienen<br />
die Werte odeplot, odephas2, odephas3 und odepr<strong>in</strong>t. Des weiteren lässt sich<br />
die Schrittweite für den Algorithmus angeben, dieser wird zwar <strong>in</strong>tern durch die<br />
Schrittweitensteuerung gereg<strong>el</strong>t, jedoch lässt sich e<strong>in</strong> Maximalwert MaxStep vorgeben.<br />
Als Standardwert ist dieser auf e<strong>in</strong> Zehnt<strong>el</strong> des Integrations<strong>in</strong>tervalls gesetzt.<br />
Für manche Differentialgleichungen ist es s<strong>in</strong>nvoll, die erste Schrittweite mit<br />
InitialStep vorzugeben. Wenn der Verlauf zunächst sehr ”<br />
glatt“ ist und die erste<br />
Schrittweite zu groß gewählt wurde und die Fehlertoleranz überschritten wurde,<br />
greift automatisch die Schrittweitensteuerung e<strong>in</strong> und erniedrigt die Schrittweite.<br />
Des weiteren bietet MATLAB r○ noch zusätzliche Optionen an, die aber für diese Arbeit<br />
nicht maßgebend s<strong>in</strong>d. Man kann sich die weiteren Optionen mit doc odeset<br />
ansehen.<br />
Im folgenden sollen die e<strong>in</strong>z<strong>el</strong>nen Methoden der verschiedenen ”<br />
ODE Solver“ kurz<br />
erläutert werden.<br />
3.4.1.2 ode23 Methode<br />
Die ode23 Methode basiert auf e<strong>in</strong>em Paar von Runge-Kutta Verfahren zweiter und<br />
dritter Ordnung mit e<strong>in</strong>er implementierten Fehlerkontrolle vergleichbar mit dem<br />
Runge-Kutta-Merson Algorithmus. Die Methode extrapoliert den Wert y n+1 mitt<strong>el</strong>s<br />
Runge-Kutta dritter Ordnung und kontrolliert den Fehler über die Differenz zum<br />
Wert der zweiten Ordnung. Somit ergeben sich vier Schritte<br />
k 1 = hf (x n , y n )<br />
(<br />
k 2 = hf x n + h 2 , y n + k )<br />
1<br />
2<br />
(<br />
k 3 = hf x n + 3h 4 , y n + 3k )<br />
2<br />
4<br />
(<br />
k 4 = hf x n + h, y n + 2k 1<br />
9 + k 2<br />
3 + 4k )<br />
3<br />
9<br />
Die ersten drei Schritte produzieren dabei den Wert für y n+1 , es gilt<br />
Mitt<strong>el</strong>s des vierten Schrittes erhält man den Fehler<br />
y n+1 = y n + 2 9 k 1 + 1 3 k 2 + 4 9 k 3 . (3.20)<br />
e = − 5<br />
72 k 1 + 1 12 k 2 + 1 9 k 3 − 1 8 k 4 . (3.21)<br />
31
3.5 Geschw<strong>in</strong>digkeitskriterium Numerische Beschreibung der Bewegung<br />
Die Interpolation, die diese Methode verwendet ist e<strong>in</strong> Zweipunkt Hermite Polynon<br />
des Grades drei, w<strong>el</strong>ches die Werte y n und y n+1 <strong>in</strong>terpoliert.<br />
3.4.1.3 ode45 Methode<br />
Die ode45 Methode arbeitet nach dem von J.R. Dormand und P.J. Pr<strong>in</strong>ce [8] vorgest<strong>el</strong>lten<br />
Runge-Kutta Paar vierter und fünfter Ordnung. Auch hier wird wie bei der<br />
ode23 Methode e<strong>in</strong> weiterer Schritt zur Fehlerbestimmung herangezogen. Das heute<br />
<strong>in</strong> MATLAB r○ implementierte Dormand-Pr<strong>in</strong>ce-Paar st<strong>el</strong>lt momentan e<strong>in</strong>en der<br />
schn<strong>el</strong>lsten ”<br />
ODE-Solver“ dar, die mit e<strong>in</strong>er mittleren Genauigkeit arbeiten. Auch<br />
wenn es mit dem ode45 Algorithmus mittlerweile möglich ist, große Schrittweiten zu<br />
berechnen, so eignet er sich besonders für nicht ”<br />
glatte“ Differentialgleichungen. Die<br />
Methode verwendet die Interpolation um <strong>in</strong>nerhalb e<strong>in</strong>es Schrittes vier Stützst<strong>el</strong>len<br />
im gleichen Abstand zu berechnen auf denen dann der eigentliche Wert y n+1 basiert.<br />
3.4.1.4 ode15s Methode<br />
Die ode15s Methode basiert auf Verfahren, die auf die vorherigen Ableitungen<br />
zurückgehen, dabei wird die Taylor-Entwicklung der Funktion verwendet und mitt<strong>el</strong>s<br />
des Differenzenquotienten aus vorherigen Punkten die ODE g<strong>el</strong>öst.<br />
3.4.1.5 ode113 Methode<br />
Die ode113 Methode geht auf das Adams-Bashforth-Moulton Verfahren zurück, dabei<br />
ist die Schrittweite sowie die Ordnung variab<strong>el</strong>. Die Ordnung kann zwischen 1<br />
und 13 variieren. Hierbei werden die Integrationen sehr genau über die Fehlertoleranz<br />
beobachtet, dieses geschieht graphisch <strong>in</strong> MATLAB r○ , daher s<strong>in</strong>d diese Methoden<br />
sehr aufwendig und kosten e<strong>in</strong>en erheblichen Rechenaufwand.<br />
3.5 Geschw<strong>in</strong>digkeitskriterium (Laufzeitanalyse)<br />
Für die <strong>Visualisierung</strong> der <strong>in</strong> Abschnitt 2 betrachteten Bewegungen mit den numerischen<br />
Mitt<strong>el</strong> aus Abschnitt 3 st<strong>el</strong>lt sich nun die Frage, ob die <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten<br />
Hilfsmitt<strong>el</strong> verwendet werden sollen oder MEX-Funktionen 14 aus bekannten<br />
C/C++/FORTRAN-Code für die e<strong>in</strong>z<strong>el</strong>nen Verfahren, wie sie <strong>in</strong> [29] aufgeführt<br />
werden, erzeugt werden soll.<br />
Während die mögliche Genauigkeit und Komplexität numerischer Verfahren mittlerweile<br />
angestiegen s<strong>in</strong>d, birgt der E<strong>in</strong>satz der Standardsoftwarepakete wie sie <strong>in</strong><br />
MATLAB r○ <strong>in</strong>tegriert s<strong>in</strong>d e<strong>in</strong>ige Tücken. Je allgeme<strong>in</strong>er die ”<br />
ODE-Solver“ gehalten<br />
s<strong>in</strong>d, desto ungenauer können sie unter Umständen werden. Man darf dabei nie aus<br />
den Augen verlieren, dass das vom Computer g<strong>el</strong>öste Problem<br />
• weder mit dem ursprünglichen Problem übere<strong>in</strong>stimmt<br />
• noch exakt g<strong>el</strong>öst wurde.<br />
14 Erläuterungen siehe Anhang A.3<br />
32
3.5 Geschw<strong>in</strong>digkeitskriterium Numerische Beschreibung der Bewegung<br />
Dabei st<strong>el</strong>lt sich allerd<strong>in</strong>gs bei allen numerischen Verfahren nicht die Frage nach dem<br />
Übere<strong>in</strong>stimmen, da die Numerik immer nur <strong>in</strong>nerhalb e<strong>in</strong>er gewissen Grenze an das<br />
Problem herankommen kann, sondern vi<strong>el</strong>mehr nach dem Maße der Exaktheit. Für<br />
spezialisierte Verfahren gilt, dass sie meistens e<strong>in</strong> hohes Maß an Genauigkeit liefern<br />
und mit dem analytischen Ergebnis, soweit vorhanden im Rahmen der Toleranz<br />
übere<strong>in</strong>stimmen, dieses ist bei vi<strong>el</strong>en Algorithmen aus [29, 31] der Fall (siehe auch<br />
Anhang C). Jedoch haben diese Verfahren den Nachteil, dass sie wenn sie <strong>in</strong> MAT-<br />
LAB r○ verwendet werden sollen sehr langsam laufen. Dieses beruht zum e<strong>in</strong>en auf<br />
der Struktur der MEX-Funktion und deren Speicherverwaltung, zum anderen auf den<br />
unterschiedlichen Datenstrukturen.<br />
Die allgeme<strong>in</strong>en Lösungsverfahren s<strong>in</strong>d gerade im Bezug auf die Verwendung <strong>in</strong><br />
MATLAB r○ optimiert und bieten daher e<strong>in</strong>en Geschw<strong>in</strong>digkeitsvorteil. Da die <strong>Visualisierung</strong><br />
der Bewegungen der g<strong>el</strong>adenen Teilchen nicht die Exaktheit der Bewegung<br />
darst<strong>el</strong>lt und auch nicht diesen Anspruch erhebt, s<strong>in</strong>d für diese Arbeit die allgeme<strong>in</strong>en<br />
Lösungsverfahren von MATLAB r○ verwendet worden. Mit diesen ist es möglich<br />
die Bewegung <strong>in</strong> e<strong>in</strong>er flüssigen Simulation zu visualisieren und dieses trägt mehr<br />
zum Verständnis der Physik h<strong>in</strong>ter diesen Vorgängen bei, als e<strong>in</strong>e exakte Lösung. Des<br />
weiteren ist e<strong>in</strong>e exakte Lösung der Bewegungen auch gar nicht nötig und im Rahmen<br />
der Physik auch nicht unbed<strong>in</strong>gt s<strong>in</strong>nvoll. Die Bewegungen wie sie <strong>in</strong> Abschnitt 2<br />
beschrieben s<strong>in</strong>d, s<strong>in</strong>d zumeist bei den g<strong>el</strong>adenen Teilchen im Erd<strong>magn</strong>etf<strong>el</strong>d zu<br />
f<strong>in</strong>den. Hier e<strong>in</strong>e exakte Lösung der Bewegungsgleichung bis auf etliche Nachkommast<strong>el</strong>len<br />
anzusetzen ist physikalisch nicht s<strong>in</strong>nvoll. Alle<strong>in</strong>e kle<strong>in</strong>e Diskrepanzen im<br />
F<strong>el</strong>d, die von der Theorie abweichen, führen wie auch die Numerik s<strong>el</strong>bst zu kle<strong>in</strong>en<br />
Abweichungen. Somit lässt sich die ”<br />
reale“-Situation der g<strong>el</strong>adenen Teilchen im Erd<strong>magn</strong>etf<strong>el</strong>d<br />
wahrsche<strong>in</strong>lich am besten mit der Numerik und der <strong>in</strong> ihr be<strong>in</strong>halteten<br />
kle<strong>in</strong>en Abweichungen darst<strong>el</strong>len.<br />
Um e<strong>in</strong>en Überblick über die verschiedenen Stärken und Schwächen der vorgest<strong>el</strong>lten<br />
Algorithmen zu erlangen, sollen im folgenden die Laufzeiten der e<strong>in</strong>z<strong>el</strong>nen ”<br />
ODE-<br />
Solver“ von MATLAB r○ mit den C-Programmen (vgl. [29], Auszüge siehe Anhang C)<br />
bzw. mit den von ”<br />
Hand“ implementierten Algorithmen verglichen werden. Hierbei<br />
werden die Berechnungen jeweils über e<strong>in</strong>e Zeitspanne von 0 bis nLarmor · 2πω B<br />
durchgeführt. Dabei wählt man, um zeitlich e<strong>in</strong>e Aussage treffen zu können,nLarmor<br />
je nach Rechnergeschw<strong>in</strong>digkeit so hoch, dass man vergleichbare Laufzeiten erhält.<br />
Bei e<strong>in</strong>er Zeitspanne die sehr kle<strong>in</strong> ist, machen sich die Unterschiede kaum bemerkbar.<br />
Die <strong>in</strong> Tab<strong>el</strong>le 3.1 dargest<strong>el</strong>lten Laufzeiten der e<strong>in</strong>z<strong>el</strong>nen Solver s<strong>in</strong>d mit e<strong>in</strong>em<br />
AMD XP2000+, mit 1GB 400 MHz DDR-RAM <strong>in</strong> MATLAB r○ Version 6.5 (R<strong>el</strong>ease<br />
13) berechnet worden. Dazu kann man <strong>in</strong> MATLAB r○ die Kommandos tic und toc<br />
verwenden. Der Aufruf des auszuführenden Programms wird zwischen die Befehle gest<strong>el</strong>lt<br />
und man erhält e<strong>in</strong>e Laufzeit des Programms. Der Compiler zur Erzeugung der<br />
MEX-Funktion ist dabei auf dengcc-Compiler von Cygw<strong>in</strong> 15 gesetzt worden. Des weiteren<br />
wurden die Ergebnisse der Berechnungen mit denen der Theorie <strong>in</strong> Abschnitt 2<br />
gegenübergest<strong>el</strong>lt um e<strong>in</strong>en Vergleich der Genauigkeiten zu ermöglichen. Um e<strong>in</strong>en<br />
Vergleich so e<strong>in</strong>fach wie möglich zu gestallten, wird die Gyration zunächst ohne<br />
e<strong>in</strong>e Geschw<strong>in</strong>digkeitskomponente <strong>in</strong> Richtung des Magnetf<strong>el</strong>des betrachtet, dabei<br />
15 Cygw<strong>in</strong> ist e<strong>in</strong>e von RedHat entwick<strong>el</strong>te UNIX-Umgebung für W<strong>in</strong>dows c○ . Grundbestandteil<br />
ist e<strong>in</strong>e Bibliothek von UNIX-Funktionen, die es ermöglichen für UNIX entwick<strong>el</strong>te Programme<br />
unter W<strong>in</strong>dows c○ auszuführen. (www.cygw<strong>in</strong>.com)<br />
33
3.5 Geschw<strong>in</strong>digkeitskriterium Numerische Beschreibung der Bewegung<br />
werden 200 Larmorradien simuliert und die Laufzeit sowie die Abweichungen des Radiusses<br />
betrachtet. Um des weiteren e<strong>in</strong>e Aussage über e<strong>in</strong>en eventu<strong>el</strong>len Versatz des<br />
Führungszentrums machen zu können, wird die Gyrationsbewegung <strong>in</strong> e<strong>in</strong>em zweiten<br />
Schritt mit e<strong>in</strong>er Geschw<strong>in</strong>digkeitskomponente <strong>in</strong> Richtung des <strong>magn</strong>etischen F<strong>el</strong>des<br />
betrachtet, die Abweichungen werden über die gesamten n-Gyrationen gemitt<strong>el</strong>t. Bei<br />
diesen beiden Betrachtungen ergeben sich die <strong>in</strong> Tab<strong>el</strong>le 3.1 dargest<strong>el</strong>lten Laufzeiten<br />
für die e<strong>in</strong>z<strong>el</strong>nen Algorithmen. Bei der Berechnung der Gyrationsflugbahn e<strong>in</strong>es<br />
Teilchens, wurde die Magnetf<strong>el</strong>dstärke sowie die Ladung und die Masse e<strong>in</strong>es Teilchens<br />
auf 1 gesetzt, die Anfangsgeschw<strong>in</strong>digkeiten betragen v x = 0.04 und v y = 0.04<br />
(v z = 0.04) somit ergibt sich nach Gleichung (2.6) e<strong>in</strong> theoretischer Larmorradius<br />
von r L = 0.04, die absoluten Abweichungen von diesem theoretischen Wert und der<br />
gemitt<strong>el</strong>te Versatz vom Führungszentrum s<strong>in</strong>d <strong>in</strong> Tab<strong>el</strong>le 3.1 dargest<strong>el</strong>lt.<br />
MATLAB r○ (<strong>in</strong>tegriert)<br />
Algorithmus Laufzeit [sec] abs. Abweichung r L abs. Abweichung g.c.<br />
ode23 22.7 2.15 · 10 −3 3.42 · 10 −4<br />
ode45 7.3 1.93 · 10 −3 0.76 · 10 −4<br />
ode15s 15.8 1.87 · 10 −3 0.68 · 10 −4<br />
ode113 11.2 1.02 · 10 −3 0.41 · 10 −4<br />
Verschiedene Algorithmen (implementiert)<br />
rk4 52.3 6.33 · 10 −5 1.54 · 10 −4<br />
predcorr 38.2 0.93 · 10 −3 0.33 · 10 −4<br />
bsstep 70.4 4.23 · 10 −5 0.06 · 10 −4<br />
Tab<strong>el</strong>le 3.1: Vergleich der Laufzeiten unterschiedlicher ”<br />
ODE-Solver“<br />
Man erkennt, dass die <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten ”<br />
ODE-Solver“ e<strong>in</strong>en sehr großen<br />
Geschw<strong>in</strong>digkeitsvorteil gegenüber den weiteren Solvern haben. Man darf dabei allerd<strong>in</strong>gs<br />
nicht außer Acht lassen, dass die Genauigkeit der <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten<br />
Solver stark schwanken. Wie oben beschrieben, gibt es ke<strong>in</strong>en Automatismus für die<br />
Toleranze<strong>in</strong>st<strong>el</strong>lungen. Um vergleichbare Ergebnisse zu erhalten, s<strong>in</strong>d alle Solver mit<br />
e<strong>in</strong>er absoluten Toleranz von 1 ·10 −10 berechnet worden. Um auch mit den <strong>in</strong> MAT-<br />
LAB r○ <strong>in</strong>tegrierten Solvern e<strong>in</strong> möglichst genaues Ergebnis zu erhalten, s<strong>in</strong>d die Toleranzwerte<br />
für jeden Solver auszuprobieren 16 . Bei den Abweichungen fällt allerd<strong>in</strong>gs<br />
auf, dass der Versatz des Führungszentrums bei allen Algorithmen vergleichbar ist.<br />
Zum e<strong>in</strong>en zeigt dieses, dass die Algorithmen alle ”<br />
r<strong>el</strong>ativ“ genau arbeiten und es bei<br />
ke<strong>in</strong>em der Algorihmen zu e<strong>in</strong>er großen Abweichung vom Theoriewert kommt und<br />
die Bewegung damit im Rahmen der Rechen- und Algorithmengenauigkeit genau<br />
beschrieben wird.<br />
Um allerd<strong>in</strong>gs zu vesrtehen, warum der Versatz des Führungszentrums bei den <strong>in</strong><br />
MATLAB r○ <strong>in</strong>tegrierten Solvern vergleichbar mit den ”<br />
genaueren“ Algorithmen ist,<br />
kann man e<strong>in</strong>e Gyration ohne e<strong>in</strong>e Geschw<strong>in</strong>digkeitskomponente <strong>in</strong> Richtung des<br />
Magnetf<strong>el</strong>des genauer betrachten. Dann erwartet man nach der <strong>in</strong> 2 beschriebenen<br />
Theorie e<strong>in</strong>e geschlossene Kreisbahn. Verwendet man die <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten<br />
16 um e<strong>in</strong>en weiteren E<strong>in</strong>blick <strong>in</strong> die Unterschiede der <strong>in</strong>tegrierten Solver zu erhalten, wird an<br />
dieser St<strong>el</strong>le auf [34] (S. 20, Tab<strong>el</strong>le 8) verwiesen, hier f<strong>in</strong>det sich e<strong>in</strong> Vergleich der unterschiedlichen<br />
MATLAB r○ Solver für verschiedene Probleme<br />
34
3.5 Geschw<strong>in</strong>digkeitskriterium Numerische Beschreibung der Bewegung<br />
ODE-Solver“, so erhält man ke<strong>in</strong>e geschlossene Kreisbahn sondern je nach Güte des<br />
”<br />
Verfahrens e<strong>in</strong>en mehr oder weniger dicken Kreisrand. Dieses lässt sich besonders<br />
e<strong>in</strong>drucksvoll darst<strong>el</strong>len, wenn man <strong>in</strong> MATLAB r○ die Funktion Zoom <strong>in</strong> verwendet<br />
und e<strong>in</strong> kle<strong>in</strong>es Stück des Kreisrandes sehr groß betrachtet. Dieses ist <strong>in</strong> Abb. 3.8<br />
dargest<strong>el</strong>lt.<br />
Abbildung 3.8: Genauigkeit der ODE Verfahren; Gyration e<strong>in</strong>es g<strong>el</strong>adenen Teilchens mit<br />
e<strong>in</strong>er Ausschnittsvergrößerung von e<strong>in</strong>em Segment der Größe 5 · 10 −4 × 5 · 10 −4 , dabei<br />
wurde die Standarde<strong>in</strong>st<strong>el</strong>lung der r<strong>el</strong>ativen Toleranz gewählt<br />
Man erkennt, dass die e<strong>in</strong>z<strong>el</strong>nen Verfahren durchaus große Unterschiede aufweisen,<br />
im Mitt<strong>el</strong> liegt die Breite des Kreisrandes bei 2 · 10 −3 . Dieses ist im Rahmen des<br />
Standardwertes für die r<strong>el</strong>ative Toleranz der ”<br />
ODE-Solver“ zu verstehen. Aber gerade<br />
diese macht das Verfahren ja auch wie oben gezeigt langsam. Will man e<strong>in</strong>e<br />
höhere Genauigkeit erreichen, so muss man die r<strong>el</strong>ative Toleranz verändern. Dieses<br />
geht jedoch auf Kosten der Simulationsgeschw<strong>in</strong>digkeit. Durch die Breite des Bandes<br />
ist aber gerade zu erklären, warum der Versatz des Führungszentums im Mitt<strong>el</strong> mit<br />
den spezialisierten Solvern vergleichbar ist. Wenn der Gyrationsradius schwankt, so<br />
wird er mal Werte annehmen, die größer bzw. kle<strong>in</strong>er dem Theoriewert s<strong>in</strong>d, somit<br />
weicht auch die Berechnung des Führungszentrums ab, diese Abweichungen heben<br />
sich allerd<strong>in</strong>gs im Mitt<strong>el</strong> gerade auf.<br />
Da <strong>in</strong> dieser Arbeit die physikalischen Prozesse und e<strong>in</strong>e Verdeutlichung dieser im<br />
Vordergrund stehen, werden im folgenden zur Entwicklung der <strong>Visualisierung</strong> der<br />
Teilchenbahnen unter MATLAB r○ die <strong>in</strong> Abschnitt 3.4 beschriebenen Verfahren verwendet.<br />
Diese erlauben e<strong>in</strong>e schn<strong>el</strong>le und annähernd der Theorie entsprechende graphische<br />
Darst<strong>el</strong>lung der Teilchenbahnen (die berechneten Abweichungen liegen bei<br />
e<strong>in</strong>er graphischen Darst<strong>el</strong>lung <strong>in</strong> MATLAB r○ gerade bei e<strong>in</strong>em dritt<strong>el</strong> der L<strong>in</strong>enbreite<br />
35
3.6 Zusammenfassung Numerische Beschreibung der Bewegung<br />
und s<strong>in</strong>d somit zu vernachlässigen). Um dem Benutzer e<strong>in</strong>e weitere Möglichkeit zu<br />
bieten mit höherer Genauigkeit zu arbeiten, wird zusätzlich zu der <strong>Visualisierung</strong><br />
e<strong>in</strong> weiteres graphischen Interface zur Verfügung gest<strong>el</strong>lt, w<strong>el</strong>ches es dem Benutzer<br />
erlaubt die Toleranzen sowie den ”<br />
ODE-Solver“ s<strong>el</strong>bst zu wählen. Hiermit ist es<br />
möglich, die oben beschriebnen Phänomene s<strong>el</strong>bst auszuprobieren. Grundlage e<strong>in</strong>er<br />
schn<strong>el</strong>len, wenn auch wie oben gezeigt, nicht immer vollständig exakten Lösung bietet<br />
wie auch von W.H. Press [29] beschrieben, das Runge-Kutta Verfahren, hier <strong>in</strong><br />
der Implementation von J.R. Dormand und P.J. Pr<strong>in</strong>ce [8].<br />
3.6 Zusammenfassung<br />
Die <strong>in</strong> diesem Abschnitt gemachten Beschreibungen der numerischen Verfahren dienen<br />
dazu, e<strong>in</strong>en E<strong>in</strong>blick <strong>in</strong> die Verfahrensweise von ”<br />
ODE-Solvern“ zu erhalten. Mit<br />
Hilfe der <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten Verfahren ist es möglich, die aufgest<strong>el</strong>lten Bewegungsgleichungen<br />
g<strong>el</strong>adener Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern numerisch zu<br />
untersuchen und darzust<strong>el</strong>len. Die <strong>in</strong> MATLAB r○ zur Verfügung stehenden Algorithmen<br />
basieren auf den E<strong>in</strong>schritt- und Mehrschrittverfahren. Alle diese Verfahren<br />
basieren im Pr<strong>in</strong>zip auf der grundlegenden Idee von Euler, dass man e<strong>in</strong>en Kurvenverlauf<br />
durch l<strong>in</strong>earisierte Teilstücke ausdrücken kann. Die E<strong>in</strong>schrittverfahren<br />
unterscheiden sich dann nur durch die Erzeugung dieser l<strong>in</strong>earisierten Teilstücke.<br />
Dabei ist für jeden weiteren L<strong>in</strong>earisierungsschritt unterschiedlicher Rechenaufwand<br />
nötig. Die Mehrschrittverfahren, gew<strong>in</strong>nen im Gegensatz zu den E<strong>in</strong>schrittverfahren<br />
nicht nur aus der Ableitung der Kurve s<strong>el</strong>bst sondern auch über die ”<br />
Historie“<br />
des Kurvenverlaufs weitere Informationen um e<strong>in</strong>e L<strong>in</strong>earisierung möglichst genau<br />
vorzunehmen.<br />
Jedes der vorgest<strong>el</strong>lten Verfahren hat se<strong>in</strong>e Vor- und Nachteile, die zum e<strong>in</strong>en <strong>in</strong><br />
sehr hohem Rechenaufwand zum anderen dar<strong>in</strong> begründet liegen, dass sie vom Verfahren<br />
her nur mit spezi<strong>el</strong>len Typen von Differenialgleichungen schn<strong>el</strong>l und effizient<br />
arbeiten können. Als e<strong>in</strong> allgeme<strong>in</strong> verwendetes Verfahren für fast b<strong>el</strong>iebige<br />
Verläufe erweist sich das adaptive Runge-Kutta Verfahren bzw. der adaptive Runge-<br />
Kutta-Merson Algorithmus. Hier ist zwar der Rechenaufwand pro Schritt sehr groß,<br />
aber dieses Verfahren liefert <strong>in</strong>nerhalb der Fehlertoleranz schn<strong>el</strong>le und präzise Werte.<br />
Daher wird das Runge-Kutta Verfahren auch für die <strong>Visualisierung</strong> <strong>in</strong> MAT-<br />
LAB r○ standardmäßig verwendet. Die Verwendung ergibt sich bei der <strong>Visualisierung</strong><br />
gerade aus dem Aspekt heraus, dass man nicht unbed<strong>in</strong>gt mit sehr großer Genauigkeit<br />
den mathematischen Ausdruck widerspieg<strong>el</strong>n will, sondern gerade durch die<br />
<strong>Visualisierung</strong> erreichen will, dass man die Physik h<strong>in</strong>ter den <strong>in</strong> Abschnitt 2 beschriebenen<br />
Form<strong>el</strong>n verdeutlicht.<br />
Die <strong>in</strong> diesem Abschnitt erläuterten Verfahren und Lösungsstrategien mit MAT-<br />
LAB r○ be<strong>in</strong>halten alle die Voraussetzung, dass man die Differentialgleichungsysteme<br />
auf Systeme gewöhnlicher Differentialgleichungen erster Ordnung zurückführen<br />
kann. Dann können diese simultan g<strong>el</strong>öst werden. Des weiteren soll an dieser St<strong>el</strong>le<br />
noch auf den Verlet Algorithmus 17 h<strong>in</strong>gewiesen werden. Mit diesem Algorithmus<br />
wird e<strong>in</strong>e Differentialgleichung nicht simultan sondern sequenti<strong>el</strong>l g<strong>el</strong>öst. Dieses Verfahren<br />
benötigt immer zwei Schritte und soll hier nur exemplarisch für e<strong>in</strong>e Reihe<br />
17 siehe V<strong>el</strong>ocity-Verlet Algorithmus Anhang C.5<br />
36
3.6 Zusammenfassung Numerische Beschreibung der Bewegung<br />
weiterer Verfahren zur numerischen Berechnung von Differentialgleichungen dienen.<br />
Die hier vorgest<strong>el</strong>lten numerischen Grundlagen dienen dazu, e<strong>in</strong> Verständnis für die<br />
Arbeitsweise der Algorithmen zu bekommen und wie diese sich bei unterschiedlichen<br />
Problemen verhalten bzw. w<strong>el</strong>che Berechnungen jew<strong>el</strong>s <strong>in</strong>tern nötig s<strong>in</strong>d um<br />
e<strong>in</strong>e ODE zu lösen. Mitt<strong>el</strong>s dieser Grundlagen und der <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten<br />
ODE Solver“ ist es möglich die Bewegung von g<strong>el</strong>adenen Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen<br />
F<strong>el</strong>dern zu beschreiben. Die Newton’sche Bewegungsgleichung ist mitt<strong>el</strong>s<br />
”<br />
der Numerik für den Computer berechenbar und die Ergebnisse können graphisch<br />
dargest<strong>el</strong>lt werden, dieses soll im folgenden Abschnitt geschehen. Basierend auf den<br />
theoretischen Grundlagen der Bewegung und auf den numerischen Verfahren zum<br />
lösen von ODE’s ist das im folgenden beschriebene Programm entwick<strong>el</strong>t worden.<br />
37
<strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
4 <strong>Visualisierung</strong> <strong>in</strong> MATLAB r○<br />
Die beiden vorherigen Abschnitte behand<strong>el</strong>ten theoretisch die Bewegungen von g<strong>el</strong>adenen<br />
Teilchen mitt<strong>el</strong>s der Newton’schen Bewegungsgleichung und die Möglichkeiten<br />
diese numerisch zu beschreiben. Diese beiden Abschnitte sollen nun dazu dienen,<br />
die Bewegungen deutlich werden zu lassen. Hierzu werden die Bewegungen <strong>in</strong> unterschiedlichen<br />
F<strong>el</strong>dern dargest<strong>el</strong>lt. In diesem Abschnitt soll beschrieben werden, w<strong>el</strong>che<br />
Grundlagen aus den vorherigen Abschnitten herangezogen wurden um e<strong>in</strong>e Darst<strong>el</strong>lung<br />
mit MATLAB r○ zu erreichen und wie dieses <strong>in</strong> MATLAB r○ zu implementieren<br />
ist.<br />
Allgeme<strong>in</strong> st<strong>el</strong>lt sich die Frage, warum man überhaupt e<strong>in</strong>e <strong>Visualisierung</strong> von<br />
Vorgängen umsetzen möchte, die im weitesten durch die mathematischen Form<strong>el</strong>n<br />
beschrieben wurden und die mit Hilfe der Numerik auch berechnet werden können.<br />
Hierzu ist wohl e<strong>in</strong>e der treffensten Aussagen die von P. Marchand [21], die auch auf<br />
die Problemst<strong>el</strong>lung dieser Arbeit übetragen werden kann<br />
Why would I ever want to visualize my data? At its very essence,<br />
”<br />
science is the quest for truth. However, some of those truths are not easily<br />
discovered, and <strong>in</strong> many cases, we dont even know how to ask the<br />
appropriate questions that will lead to the truth. Consider the fact that<br />
many natural phenomena are too fast, too slow, too large, or too small to<br />
be studied through direct observation or with traditional laboratory techniques.<br />
How can we see the unseen or ga<strong>in</strong> enough <strong>in</strong>sight <strong>in</strong>to the nature<br />
of th<strong>in</strong>gs to even know what is worthwhile to <strong>in</strong>vestigate? . . . A dictionary<br />
will t<strong>el</strong>l us that to visualize means: To form a mental image or vision<br />
of. . . . represent someth<strong>in</strong>g, whether that someth<strong>in</strong>g is a graphical representation<br />
of a real-world object, a hypothetical mathematical construct,<br />
or specific values of some measurable quantities.“<br />
Eben das hier beschriebene Problem ”<br />
too large“ gegen ”<br />
too small“ st<strong>el</strong>lt sich <strong>in</strong> dieser<br />
Arbeit. Die Mechanismen die <strong>in</strong> Abschnitt 2 beschrieben wurden, s<strong>in</strong>d hauptsächlich<br />
Vorgänge, wie sie im Erd<strong>magn</strong>etf<strong>el</strong>d vorkommen. Diese Siuation lässt sich nur im<br />
begrenzten Maße bzw. gar nicht im Labor nachst<strong>el</strong>len. Gerade hier tritt die große<br />
Diskrepanz zwischen den Skalen zum Vorsche<strong>in</strong>, die Ausmaße e<strong>in</strong>es g<strong>el</strong>adenen Teilchens<br />
und die im Vergleich hierzu riesige Ausdehnung des Erd<strong>magn</strong>etf<strong>el</strong>des. Um<br />
dieses David gegen Goliath Problem zu untersuchen und die physikalischen Prozesse<br />
deutlich werden zu lassen, bedient man sich des Mitt<strong>el</strong>s der <strong>Visualisierung</strong>.<br />
4.1 Implementierung (GUI)<br />
Um nun die Theorie, w<strong>el</strong>che h<strong>in</strong>ter den Bewegungen der g<strong>el</strong>adenen Teilchen steckt<br />
näher zu verstehen, ist es s<strong>in</strong>nvoll die e<strong>in</strong>z<strong>el</strong>nen Bewegungen zu simulieren und die<br />
Bedienung der Simulation so e<strong>in</strong>fach wie möglich zu gestalten. Dieses unterstützt<br />
MATLAB r○ durch die Möglichkeit graphische Bedien<strong>el</strong>emente (engl. graphical user<br />
<strong>in</strong>terface (GUI)) mit e<strong>in</strong>zub<strong>in</strong>den. Diese GUI’s ermöglichen e<strong>in</strong>em mit denen <strong>in</strong><br />
38
4.1 Implementierung (GUI) <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
allen Programmen verwendeten Objekten wie ”<br />
Icons“, ”<br />
Buttons“, etc. die Simulation<br />
mitt<strong>el</strong>s der Maus zu steueren ohne die Syntax von MATLAB r○ s<strong>el</strong>bst zu kennen.<br />
Man benötigt ke<strong>in</strong>e vertieften Kenntnisse um mit der Simulation Ergebnisse<br />
zu produzieren und e<strong>in</strong>z<strong>el</strong>ne Simulationsergebnisse zu speichern um diese weiter<br />
zu verwenden. Das GUI s<strong>el</strong>ber gliedert sich bei den neuen Versionen von MAT-<br />
LAB r○ ab Version 5.3 R<strong>el</strong>ease 12 <strong>in</strong> e<strong>in</strong>e FIG-Datei, w<strong>el</strong>che dazu verwendet wird das<br />
Layout des GUI’s zu speichern und <strong>in</strong> e<strong>in</strong>e m-Datei, <strong>in</strong> der die e<strong>in</strong>z<strong>el</strong>nen Aufrufe<br />
bzw. Funktionen implementiert werden. Das GUI ist somit nichts anderes als wie<br />
der Name schon sagt e<strong>in</strong> Interface zwischen den teilweise komplexen Syntax Aufrufen<br />
<strong>in</strong> MATLAB r○ und den e<strong>in</strong>fachen ”<br />
Icons“, ”<br />
Buttons“ und ”<br />
Dropdownmenues“.<br />
Dieser Abschnitt soll e<strong>in</strong>e kurze Zusammenfassung der Möglichkeiten darst<strong>el</strong>len,<br />
die MATLAB r○ zur Verfügung st<strong>el</strong>lt um GUI’s zu erst<strong>el</strong>len 18 und gleichzeitig soll<br />
erläutert werden, wie das Programm particles entstanden ist, w<strong>el</strong>ches Zi<strong>el</strong> dieser<br />
Arbeit ist. Das Programm bzw. die Funktion particles (bestehend aus den<br />
Dateien: particles.m und particles.fig) bildet die graphische Steuerung der<br />
<strong>Visualisierung</strong>. Die beiden Dateien wurden mit Hilfe von GUIDE (GUI Dev<strong>el</strong>opment<br />
Environment) erzeugt. Dieses Tool lässt sich <strong>in</strong> MATLAB r○ mit dem Aufruf<br />
>> guide<br />
starten. Das Tool GUIDE bietet die Möglichkeit, Bedien<strong>el</strong>emente direkt graphisch<br />
zu bearbeiten (Position, Höhe, Breite, Farbe etc.) und Eigenschaften e<strong>in</strong>zust<strong>el</strong>len.<br />
Die Funktionen, die diese Elemente dann ausführen (Callback) s<strong>in</strong>d <strong>in</strong> der m-Datei<br />
enthalten und be<strong>in</strong>halten die MATLAB r○ Syntax. Das GUI lässt sich dann <strong>in</strong> MAT-<br />
LAB r○ mit dem Aufruf<br />
>> particles<br />
starten. MATLAB r○ verb<strong>in</strong>det automatisch das Layout der fig-Datei und die Aufrufe<br />
<strong>in</strong> der m-Datei. Im GUIDE Editor sieht das Layout des Programms wie <strong>in</strong> Abb.<br />
4.1 dargest<strong>el</strong>lt aus. Hier können die e<strong>in</strong>z<strong>el</strong>nen Schalter, Knöpfe etc. positioniert werden<br />
und die Eigenschaften der e<strong>in</strong>z<strong>el</strong>nen Elemente mitt<strong>el</strong>s des Property-Inspectors<br />
gesetzt weden. Jedes <strong>in</strong> Abb. 4.1 dargest<strong>el</strong>lte Element hat e<strong>in</strong>e Callback Funktion,<br />
mitt<strong>el</strong>s derer die e<strong>in</strong>z<strong>el</strong>nen Abläufe gesteuert werden können. Die Callback Funktionen<br />
bef<strong>in</strong>den sich <strong>in</strong> der Funktion particles.m und <strong>in</strong> vollständiger und auskommentierter<br />
Form im Anhang (siehe Anhang D). E<strong>in</strong>e genaue Beschreibung aller<br />
verwendeten Bedien<strong>el</strong>emente und deren Funktion für die Simulation f<strong>in</strong>det man <strong>in</strong><br />
Abschnitt 4.3. Im folgenden sollen die <strong>in</strong> den Abschnitten 2 und 3 gemachten theoretischen<br />
Grundlagen <strong>in</strong> MATLAB r○ umgesetzt werden.<br />
Alle <strong>in</strong> diesem und im vorherigen Abschnitt verwendeten MATLAB r○ Dateien bef<strong>in</strong>den<br />
sich auf der dieser Arbeit beigefügten CD-Rom, des weiteren be<strong>in</strong>haltet diese<br />
e<strong>in</strong>e HTML Dokumentation der Simulation (Microsoft IE, Netscape sowie MAT-<br />
LAB r○ kompatib<strong>el</strong>).<br />
18 für e<strong>in</strong>e umfassende Beschreibung der e<strong>in</strong>z<strong>el</strong>nen GUI Komponenten soll an dieser St<strong>el</strong>le auf P.<br />
Marchand [21] Chapter 10 Elements of GUI Design verwiesen werden<br />
39
4.2 Mathematische Umsetzung <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
Abbildung 4.1: GUIDE-Ansicht des Layouts vom Programm particles (GUI Steuerung<br />
der <strong>Visualisierung</strong>); exemplarisch ist der Property-Inspector des Buttons Solver geöffnet<br />
4.2 Mathematische Umsetzung<br />
Wie schon <strong>in</strong> Abschnitt 3.1 beschrieben, lassen sich die e<strong>in</strong>z<strong>el</strong>nen Komponenten<br />
der Bewegungsgleichung Formulieren. Im folgenden soll erläutert werden, wie die <strong>in</strong><br />
Abschnitt 2 beschriebenen Gleichungen und Bewegungen <strong>in</strong> e<strong>in</strong>e Syntax von MAT-<br />
LAB r○ überführt werden können und wie diese mit den numerischen Hilfsmitt<strong>el</strong>n aus<br />
Abschnitt 3 g<strong>el</strong>öst werden können.<br />
Zunächst werden e<strong>in</strong>ige Variablen <strong>in</strong> der Funktion eqMotion.m gesetzt, diese Variablen<br />
können <strong>in</strong> e<strong>in</strong>er weiteren Version des <strong>Visualisierung</strong>sprogramms geändert<br />
werden, bei der hier vorliegenden Version des Programms soll von r<strong>el</strong>ativen E<strong>in</strong>heiten<br />
ausgegangen werden. Diese werden allerd<strong>in</strong>gs direkt zu Beg<strong>in</strong> der Funktion<br />
eqMotion.m gesetzt um das Programm für e<strong>in</strong>en weiteren E<strong>in</strong>satz möglichst flexib<strong>el</strong><br />
zu gestalten. Die vordef<strong>in</strong>ierten Variablen s<strong>in</strong>d der Radius R0 der zur Beschreibung<br />
der radialsymmetrischen F<strong>el</strong>der verwendet wird (dieser bezieht sich auf die E<strong>in</strong>heiten<br />
von e<strong>in</strong>em Erdradius) und die Masse des Teilchens mass=1 (bezieht sich auf e<strong>in</strong>e<br />
Protonenmasse) sowie die Ladung charge die auf ±1 (bezieht sich auf die Ladung<br />
e<strong>in</strong>es Elektrons) gesetzt wird.<br />
Gleichung (2.1) beschreibt allgeme<strong>in</strong> die Bewegungsgleichung e<strong>in</strong>es g<strong>el</strong>adenen Teilchens<br />
<strong>in</strong> e<strong>in</strong>em Magnetf<strong>el</strong>d unter der E<strong>in</strong>wirkung e<strong>in</strong>er weiteren Kraft. In den <strong>in</strong><br />
dieser Arbeit vorausgesetzten <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern, tritt diese zusätzliche<br />
Kraft <strong>in</strong> Form der <strong>el</strong>ektrischen Kraft auf. E<strong>in</strong>e spezialisiertere Form von Gleichung<br />
(2.1) st<strong>el</strong>lt (3.1) dar. Hier s<strong>in</strong>d die e<strong>in</strong>z<strong>el</strong>nen ODE’s noch <strong>in</strong> Form e<strong>in</strong>es vektori<strong>el</strong>len<br />
Gleichungssystems beschrieben. Diese kann verwendet werden, um e<strong>in</strong>e Syntax zu erst<strong>el</strong>len,<br />
mit der man <strong>in</strong> MATLAB r○ arbeiten kann. Die oben beschriebenen Verfahren<br />
gehen auf e<strong>in</strong>e Differentialgleichung der Form y ′ = f(x, y) zurück. Überträgt man<br />
dieses auf Gleichung (3.1) so geht man hier von e<strong>in</strong>em System von ODE’s der vektori<strong>el</strong>len<br />
Form ˙⃗v = f ( ⃗t, ⃗v ) aus, dieses dv/dt System lässt sich <strong>in</strong> MATLAB r○ durch<br />
40
4.2 Mathematische Umsetzung <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
dvdt = [ v(4,:)<br />
v(5,:)<br />
v(6,:)<br />
charge/mass*( E(1) +(v(5,:).*B(3) -v(6,:).*B(2)) )<br />
charge/mass*( E(2) +(v(6,:).*B(1) -v(4,:).*B(3)) )<br />
charge/mass*( E(3) +(v(4,:).*B(2) -v(5,:).*B(1)) )<br />
];<br />
ausdrücken. Hierbei bilden die letzten drei Elemente die Analogie zu Gleichung<br />
(3.1), die e<strong>in</strong>z<strong>el</strong>nen Komponenten des <strong>el</strong>ektrischen F<strong>el</strong>des und das Kreuzprodukt des<br />
Geschw<strong>in</strong>digkeitsvektors und der Magnetf<strong>el</strong>dkomponenten. Die Zahlen 1, 2 und 3<br />
stehen jeweils für die Komponenten x, y und z des Vektors. Bei dem Geschw<strong>in</strong>digkeitsvektor<br />
v s<strong>in</strong>d die ersten drei Komponenten v(1:3,:) der Ort und die letzten<br />
drei Komponenten v(4:6,:) die Geschw<strong>in</strong>digkeiten <strong>in</strong> die e<strong>in</strong>z<strong>el</strong>nen Richtungen.<br />
Die Gesamtgeschw<strong>in</strong>digkeit ergibt sich dann aus der Vektorsumme der letzten drei<br />
Komponenten.<br />
Das <strong>magn</strong>etische F<strong>el</strong>d B sowie des <strong>el</strong>ektrische F<strong>el</strong>d E s<strong>in</strong>d abhängig von der Wahl im<br />
GUI. Die F<strong>el</strong>der jeweils nur <strong>in</strong> e<strong>in</strong>e Raumrichtung werden durch<br />
B = B0*[strength 0 0];<br />
E = E0*[strength 0 0];<br />
dargest<strong>el</strong>lt, wobei die Position der Variablen strength mit der Raumrichtung verknüpft<br />
ist. Weitere F<strong>el</strong>dstrukturen werden durch Überführung der e<strong>in</strong>z<strong>el</strong>nen Komponenten<br />
<strong>in</strong> e<strong>in</strong>e kartesische Schreibweise ausgedrückt. Im folgenden sollen die e<strong>in</strong>z<strong>el</strong>nen<br />
F<strong>el</strong>dstrukturen dargest<strong>el</strong>lt werden, die dem GUI zugrunde liegen.<br />
Das dBz/dy-F<strong>el</strong>d wird durch e<strong>in</strong>e zusätzliche Komponente <strong>in</strong> der z-Richtung beschrieben,<br />
w<strong>el</strong>che von dem Wert y abhängig ist. Dabei ergibt sich der Vektor des<br />
Magnetf<strong>el</strong>des zu<br />
B = B0*[0 0 1+value*strength*y];<br />
Für das Toroidal F<strong>el</strong>d (siehe Magnetic Fi<strong>el</strong>d of Toroid by Hyperphysics [12])werden<br />
die Toroidal Koord<strong>in</strong>aten <strong>in</strong> kartesische Koord<strong>in</strong>aten umgerechnet (siehe mathworld<br />
[37], [4] Section C, Toroidal Systems) somit gilt<br />
R = sqrt(x^2+y^2); cosphi = x/R; s<strong>in</strong>phi = y/R;<br />
B = B0*R0/R*[-s<strong>in</strong>phi cosphi 0]*strength;<br />
Für die Simulation e<strong>in</strong>es Tokamaks (Magnetkäfig) werden drei sich überlagernde<br />
Magnetf<strong>el</strong>der benötigt. Zunächst e<strong>in</strong> r<strong>in</strong>gförmiges F<strong>el</strong>d, des weiteren e<strong>in</strong> F<strong>el</strong>d, w<strong>el</strong>ches<br />
durch den Stromfluss <strong>in</strong>nerhalb des R<strong>in</strong>ges erzeugt wird. In diesem komb<strong>in</strong>ierten F<strong>el</strong>d<br />
laufen die F<strong>el</strong>dl<strong>in</strong>ien dann schraubenförmig um. So wird e<strong>in</strong>e Verdrillung erzeugt,<br />
die die Teilchen <strong>in</strong>nerhalb des beschriebenen R<strong>in</strong>ges hält. E<strong>in</strong> drittes vertikales F<strong>el</strong>d<br />
fixiert die Lage des Stroms (Geometrie e<strong>in</strong>es Tokamak’s siehe Abb. 4.2). Damit ergibt<br />
sich für die Beschreibung <strong>in</strong> kartesischen Koord<strong>in</strong>aten (Grundlage Transformation<br />
der Toroidal Koord<strong>in</strong>aten) folgende Darst<strong>el</strong>lung 19<br />
19 siehe auch Max-Planck-Institut für Plasmaphysik (IPP MPG)<br />
41
4.2 Mathematische Umsetzung <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
R = sqrt(x^2 +y^2); cosphi = x/R; s<strong>in</strong>phi = y/R;<br />
rho = sqrt((R-R0)^2 + z^2); s<strong>in</strong>t = -z/rho; cost = (R-R0)/rho;<br />
Bt = B0 * (R0/R)*[-s<strong>in</strong>phi cosphi 0 ];<br />
Bp = B0 *(rho/R)*[-cosphi*s<strong>in</strong>t -s<strong>in</strong>phi*s<strong>in</strong>t -cost ];<br />
B = Bt +Bp/q;<br />
Abbildung 4.2: Tokamak (Qu<strong>el</strong>le: [37])<br />
Die Magnetf<strong>el</strong>dstärke <strong>in</strong> e<strong>in</strong>em Dipolf<strong>el</strong>d wird durch den Abstand vom Mitt<strong>el</strong>punkt<br />
r, durch die magetische Länge λ (Analog zur geographischen Länge) und durch das<br />
Dipolmoment M charakterisiert. Heirbei gilt<br />
B(r) = M r 3 (<br />
1 + 3 s<strong>in</strong> 2 λ ) . (4.1)<br />
Mit e<strong>in</strong>er Transformation <strong>in</strong> kartesische Koord<strong>in</strong>aten ergibt sich für das Programm<br />
die folgende Darst<strong>el</strong>lung<br />
r = x^2 +y^2 +z^2;<br />
B = M*r^(-2.5)*[ 3*x*z 3*y*z 3*z^2-r]*strength;<br />
Das zeitlich variable E-F<strong>el</strong>d wird durch die folgenden Zeilen beschrieben<br />
E = E0*[ 0 t*charge/mass*Btot 0]*strength;<br />
wobei Btot die Norm des B-F<strong>el</strong>des ist somit Btot=norm(B).<br />
Mit diesen Darst<strong>el</strong>lungen ist es MATLAB r○ möglich dvdt zu beschreiben und die<br />
ODE’s zu lösen, hierzu wird der Aufruf<br />
options = odeset(options,’AbsTol’,1.e-10,’OutputFcn’,’odephas3’);<br />
feval(’solvername’,@fun,tspan,y0,options);<br />
verwendet. MATLAB r○ erzeugt mit diesem Aufruf e<strong>in</strong>en Plot der Flugbahn. Dieser<br />
Plot kann im GUI dargest<strong>el</strong>lt werden. Die Callback-Funktionen <strong>in</strong> particles.m<br />
übergibt der Funktion eqMotion.m die e<strong>in</strong>z<strong>el</strong>nen Parameter, w<strong>el</strong>che aus dem GUI<br />
ausg<strong>el</strong>esen werden und die Funktion eqMotion.m verwendet diese um damit nach<br />
Gleichung (3.1) die Differentialgleichungen zu lösen und e<strong>in</strong>en Plot der Flugbahn<br />
zu erzeugen. Im folgenden soll das Programm, w<strong>el</strong>ches auf den hier gemachten mathematischen<br />
Überlegungen beruht genauer beschrieben werden und Ergebnisse der<br />
Simulationen vorgest<strong>el</strong>lt werden.<br />
42
4.3 Programmfunktionen <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
4.3 Programmfunktionen<br />
Wie schon oben erwähnt wurde aus den <strong>in</strong> den Abschnitten 2 und 3 erläuterten<br />
Grundlagen e<strong>in</strong> Programm zur <strong>Visualisierung</strong> der Bewegung erzeugt. Dieses st<strong>el</strong>lt<br />
den Schwerpunkt dieser Arbeit dar. Das Programm s<strong>el</strong>bst ist <strong>in</strong> Form e<strong>in</strong>es GUI’s<br />
für MATLAB r○ programmiert worden. Die e<strong>in</strong>z<strong>el</strong>nen Elemente s<strong>in</strong>d zur E<strong>in</strong>gabe der<br />
unterschiedlichen Parameter, die <strong>in</strong> die Bewegungsgleichung mit e<strong>in</strong>fließen. Somit<br />
ist es möglich die oben theoretisch besprochenen Flugbahnen e<strong>in</strong>es Teilchens unter<br />
verschiedenen Bed<strong>in</strong>gungen und mit verschiedenen <strong>in</strong>itialisierenden Parametern<br />
zu simulieren. Dieses ist wie schon <strong>in</strong> der E<strong>in</strong>leitung erwähnt der maßgebende Teil<br />
dieser Arbeit. Die <strong>Visualisierung</strong> der Bewegung g<strong>el</strong>adener Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen<br />
F<strong>el</strong>dern, geschieht über das Programm particles. Dieses st<strong>el</strong>lt e<strong>in</strong>e Graphische<br />
Benutzeroberfläche zur Verfügung um die e<strong>in</strong>z<strong>el</strong>nen Parameter der Bewegung<br />
e<strong>in</strong>zust<strong>el</strong>len und erzeugt basierend auf den <strong>in</strong> Abschnitt 3 erläuterten numerischen<br />
Verfahren e<strong>in</strong>e Berechnung und Darst<strong>el</strong>lung der Flugbahn. In diesem Abschnitt soll<br />
die Funktionsweise des GUI’s und die e<strong>in</strong>z<strong>el</strong>nen Bedien<strong>el</strong>emente erläutert werden.<br />
In e<strong>in</strong>em zweiten Teil werden exemplarisch e<strong>in</strong>ige Simulationsergebnisse dargest<strong>el</strong>lt,<br />
die die <strong>in</strong> Abschnitt 2 beschriebenen F<strong>el</strong>dstrukturen und die mit ihnen verbundenen<br />
Bewegungen darst<strong>el</strong>len. Mit Hilfe des GUI’s s<strong>in</strong>d b<strong>el</strong>iebige Parameter möglich und<br />
somit e<strong>in</strong>e <strong>Visualisierung</strong> unterschiedlichster Bewegungen. Grundlage aller Bewegungen<br />
bilden die theoretischen Betrachtungen aus Abschnitt 2.<br />
4.3.1 Bedienung<br />
Das Programm particles ist e<strong>in</strong>e graphische Benutzeroberfläche. Das GUI bietet<br />
e<strong>in</strong>e Methode zur Bedienung der Simulation unter Verwendung von bildlichen Schaltflächen<br />
und Befehlsleisten, die mit der Maus gesteuert werden können. Diese Art der<br />
Steuerung ist e<strong>in</strong>facher und <strong>in</strong>tuitiver als e<strong>in</strong>e Befehlszeilen-Oberfläche. Die <strong>in</strong> Abschnitt<br />
4.2 dargest<strong>el</strong>lten MATLAB r○ Fragmente ließen sich auch alle über den MAT-<br />
LAB r○ -Prompt e<strong>in</strong>geben. Dieses für jede <strong>Visualisierung</strong> allerd<strong>in</strong>gs zu wiederholen,<br />
bzw. die Befehle <strong>in</strong> e<strong>in</strong>er m-Funktion iterativ (quasi als ”<br />
Spagetti-Code“) abzuarbeiten<br />
würde bedeuten, dass man für jede neue Berechnung e<strong>in</strong>en neuen Aufruf bzw. e<strong>in</strong>e<br />
Änderung derm-Funktion benötigt. Um dieses dem Benutzer zu ersparen bzw. um<br />
e<strong>in</strong>e e<strong>in</strong>fachere Bedienung zu gewährleisten, wurde e<strong>in</strong> GUI <strong>in</strong> MATLAB r○ erzeugt,<br />
dieses steuert die Parameter der Bewegungsgleichung mitt<strong>el</strong>s graphischer Bedien<strong>el</strong>emente<br />
und erlaubt ohne erneute Aufrufe e<strong>in</strong>e weitere Simulation.<br />
Im folgenden wird kurz beschrieben, wie das Programm aufgerufen werden kann und<br />
w<strong>el</strong>che Funktion die e<strong>in</strong>z<strong>el</strong>nen Bedien<strong>el</strong>emente haben. Um das Programm zu starten,<br />
ändert man nach dem Start von MATLAB r○ das Current Directory auf den Pfad,<br />
<strong>in</strong> dem das Programm liegt (Beispi<strong>el</strong>: >> cd c:\programme\ für W<strong>in</strong>dows c○ bzw.<br />
>> cd ../home/user/programme/). Nun kann man das Programm mit dem Aufruf<br />
>> particles<br />
starten. Nach diesem Aufruf ersche<strong>in</strong>t das <strong>in</strong> Abb. 4.3 dargest<strong>el</strong>lte GUI. Die Bedien<strong>el</strong>emente<br />
l<strong>in</strong>ks des Tit<strong>el</strong>bildes und unterhalb dienen zur E<strong>in</strong>st<strong>el</strong>lung der Parameter<br />
der Simulation. Hierbei kann die Teilchenart durch exklusive Radiobutton’s fest-<br />
43
4.3 Programmfunktionen <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
Abbildung 4.3: Graphische Benutzeroberfläche der <strong>Visualisierung</strong> mit Tit<strong>el</strong>bild<br />
g<strong>el</strong>egt werden. Diese Radiobutton’s s<strong>in</strong>d <strong>in</strong> der m-Datei mit Callback Aufrufen verknüpft,<br />
diese setzen je nach gewählter Teilchenart die globalen Variablen der Masse<br />
mass sowie die Ladungcharge auf die für die Teilchenart charakteristischen Werte 20 .<br />
Mitt<strong>el</strong>s der E<strong>in</strong>gabef<strong>el</strong>der für die Positionen ist es möglich die Startposition e<strong>in</strong>es<br />
Teilchens <strong>in</strong>nerhalb e<strong>in</strong>es kartesischen Koord<strong>in</strong>atensystems festzulegen. Die e<strong>in</strong>z<strong>el</strong>nen<br />
Werte werden dann <strong>in</strong> den Variablenxpos,ypos undzpos abg<strong>el</strong>egt. Des weiteren<br />
ist es möglich die Anzahl der IterationennLarmor zu wählen, diese Iterationen beziehen<br />
sich auf die zu simulierende Zeitspanne. Diese Zeitspanne wird wie oben beschrieben<br />
<strong>in</strong> dem Vektortspan gespeichert. In diesem Fall steuert man die Zeitspanne über<br />
die Angabe der Larmorradien, der Vektor ergibt sich aus der Gyrationsfrequenz<br />
Omega0=charge/mass*B0 und der Anzahl tspan=[0 nLamor*OmegaO*(2*pi)]. Unterhalb<br />
des Tit<strong>el</strong>bildes bef<strong>in</strong>den sich die Popup-Menüs zur Auswahl der e<strong>in</strong>z<strong>el</strong>nen<br />
F<strong>el</strong>der, hier werden e<strong>in</strong>ige F<strong>el</strong>der fest vorgegeben, mit denen <strong>in</strong> Abschnitt 4.2<br />
erläuterten Geometrien. Mitt<strong>el</strong>s des Popup-Menüs kann man zwischen folgenden<br />
Magnet- und Elektrischen-F<strong>el</strong>dern wählen und diese b<strong>el</strong>iebig komb<strong>in</strong>ieren<br />
B-F<strong>el</strong>d B=0, Bz, dBz/dy, dBz/dz cusp, B toroidal, B tokamak, B dipole,<br />
user def<strong>in</strong>ed<br />
E-F<strong>el</strong>d E=0, Ex, Ez, dEy/dt, user def<strong>in</strong>ed<br />
Des weiteren kann man <strong>in</strong> den E<strong>in</strong>gabef<strong>el</strong>dern die Stärke des F<strong>el</strong>des festlegen, dabei<br />
geht man hier von e<strong>in</strong>er e<strong>in</strong>heitslosen Betrachtung aus. Die Buttons auf der rechten<br />
Seite s<strong>in</strong>d zur Steuerung des Ablaufes der Simulation. Der START- und STOP-<br />
Button s<strong>in</strong>d s<strong>el</strong>bsterklärend.<br />
Mit dem ADD-Button ist es mögich weitere Bewegungen <strong>in</strong> den schon simulierten<br />
Plot e<strong>in</strong>zub<strong>in</strong>den. Auf diese Weise lassen sich z.B. die unterschiedlichen Gyrationsrichtungen<br />
von Elektronen und Protonen darst<strong>el</strong>len. Mitt<strong>el</strong>s des CLEAR-<br />
Buttons lässt sich das Axis-Objekt löschen, bzw. die gezeichnete Flugbahn löschen.<br />
Der SOLVER-Button ruft e<strong>in</strong> weiteres GUI solvercontrol auf, mit diesem ist es<br />
möglich die Standardwerte für die <strong>in</strong> der <strong>Visualisierung</strong> verwendeten ”<br />
ODE Solver“<br />
20 <strong>in</strong> der jetzigen Version des Programms werden r<strong>el</strong>ative E<strong>in</strong>heiten verwendet, diese Beschreibung<br />
gilt somit bei e<strong>in</strong>er Änderung der Konstanten <strong>in</strong> eqMotion.m<br />
44
4.3 Programmfunktionen <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
per Hand zu setzen. Die Standardwerte werden mit dem DEFAULT-Button wieder<br />
hergest<strong>el</strong>lt. So ist es möglich auch die Genauigkeit der Solver zu vergleichen und<br />
je nach Problem <strong>in</strong>sbesondere die r<strong>el</strong>ative Toleranz zu setzen, da es hierfür ke<strong>in</strong>en<br />
Automatismus gibt. Die Standardwerte des Solvers sowie auch der anderen E<strong>in</strong>gabe<strong>el</strong>emente<br />
s<strong>in</strong>d so gewählt, dass sie ohne Veränderungen e<strong>in</strong>e optimale Simulation<br />
des gewählten Problems bilden.<br />
Mit dem HELP-Button ruft man die HTML-Dokumentation<br />
des Programmes auf, diese be<strong>in</strong>haltet<br />
e<strong>in</strong>e kurze Zusammenfassung der <strong>in</strong> dieser Arbeit<br />
behand<strong>el</strong>ten Themengebiete, damit das Programm<br />
auch ohne den Kontext dieser Arbeit zu kennen,<br />
verwendet werden kann. Die Dokumentation führt<br />
dabei kurz <strong>in</strong> die Thematik der Bewegung g<strong>el</strong>adener<br />
Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern e<strong>in</strong>. Des<br />
weiteren wird e<strong>in</strong> kurzer Abriss der Solver gegeben,<br />
die verwendet wurden und der Verfahren die h<strong>in</strong>ter<br />
Abbildung 4.4: Solver Control<br />
diesen stehen. Für weitere Details hierzu wird auf<br />
die entsprecheneden Kapit<strong>el</strong> <strong>in</strong> der MATLAB r○ -Dokumentation h<strong>in</strong>gewiesen. Mit<br />
dem CLOSE-Button schliesst man das Programm. Das Programm sowie die e<strong>in</strong>z<strong>el</strong>nen<br />
Callback Funktionen bef<strong>in</strong>den sich <strong>in</strong> auskommentierter Form im Anhang, das<br />
Programm bef<strong>in</strong>det sich auf der beigefüten CD-Rom.<br />
4.3.2 Screenshots<br />
Die <strong>in</strong> Abschnitt 2 beschriebenen Bewegungen können mit dem Programm simuliert<br />
werden. An dieser St<strong>el</strong>le sollen exemplarisch e<strong>in</strong>ige Konfigurationen und die Ergebnisse<br />
dargest<strong>el</strong>lt werden und mit den theoretisch diskutierten Bewegungen verglichen<br />
werden. Die hier angeführten E<strong>in</strong>st<strong>el</strong>lungen dienen auch dazu, e<strong>in</strong> erstes Verständnis<br />
im Umgang mit dem Programm zu erhalten.<br />
4.3.2.1 Gyration<br />
Zunächst soll die Gyration simuliert werden, hierzu werden <strong>in</strong> der Simulation die Parameter<br />
Elektron,xpos=0,ypos=0,zpos=0,vx=4,vy=4,vz=0 gewählt und e<strong>in</strong> Magnetf<strong>el</strong>d<br />
<strong>in</strong> Bz Richtung vorgegeben. Dabei entsteht wie <strong>in</strong> Abb. 5(a) dargest<strong>el</strong>lt e<strong>in</strong><br />
Kreis. Wählt man e<strong>in</strong>e Geschw<strong>in</strong>digkeit <strong>in</strong> z-Richtung die von Null verschieden ist,<br />
so ergibt sich wie <strong>in</strong> Abb. 5(b) dargest<strong>el</strong>lt e<strong>in</strong>e Spiralbahn des Teilchens (die dargest<strong>el</strong>lten<br />
Flugbahnen s<strong>in</strong>d mit denen <strong>in</strong> Abb. 2.2 vergleichbar).<br />
4.3.2.2 Driften<br />
In diesem Abschnitt sollen e<strong>in</strong>ige Driften dargest<strong>el</strong>lt werden, dabei s<strong>in</strong>d die Parameter<br />
so gewählt, dass sie das theoretisch erläuterte Verhalten aufweisen. Die ⃗ E × ⃗ B-<br />
Drift soll exemplarisch für die Gradientendrift und die Polarisationsdrift dargest<strong>el</strong>lt<br />
werden. Hierbei wurden die folgenden Parameter egwählt Elektron, xpos=0, ypos=0,<br />
zpos=0, vx=40, vy=40 und vz=0 gewählt und e<strong>in</strong> Magnetf<strong>el</strong>d <strong>in</strong> Bz Richtung und<br />
e<strong>in</strong>em Elektrischen F<strong>el</strong>d <strong>in</strong> Ex Richtung. Dann ergibt sich die <strong>in</strong> Abb. 6(a) dargest<strong>el</strong>lte<br />
Flugbahn. Des weitern kann e<strong>in</strong>e Krümmungsdrift simuliert werden, hierzu<br />
45
4.4 Zusammenfassung <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
(a) Simulierte Kreisbahn der Gyration<br />
(b) Simulierte Spiralbahn der Gyration<br />
Abbildung 4.5: Simulierte Gyration<br />
s<strong>in</strong>d die Parameter Elektron, xpos=1, ypos=0, zpos=0, vx=4, vy=4 und vz=7 zu<br />
wählen. Dabei ergibt sich der <strong>in</strong> Abb. 6(b) dargest<strong>el</strong>lte Verlauf.<br />
(a) Simulierte ⃗ E × ⃗ B-Drift<br />
(b) Simulierte Krümmungsdrift<br />
Abbildung 4.6: Simulierte Driften<br />
4.3.2.3 Bewegung im Dipolf<strong>el</strong>d<br />
Wie <strong>in</strong> Abb. 2.10 dargest<strong>el</strong>lt, kann man die Bewegung g<strong>el</strong>adener Teilchen im Erd<strong>magn</strong>etf<strong>el</strong>d<br />
als Zusammenfassung aller Bewegungen sehen. In der <strong>Visualisierung</strong> lässt<br />
sich dieses mit den Parametern xpos=1, ypos=0, zpos=0, vx=4, vy=4 und vz=8 und<br />
dem B dipol simulieren. Das Ergebniss der <strong>Visualisierung</strong> ist <strong>in</strong> Abb. 4.7 dargest<strong>el</strong>lt.<br />
4.4 Zusammenfassung<br />
Die <strong>Visualisierung</strong> bietet e<strong>in</strong> umfassendes Hilfsmitt<strong>el</strong> <strong>in</strong> der modernen Physik. E<strong>in</strong>z<strong>el</strong>ne<br />
physikalische Vorgänge, die sich teilweise nur über komplizierte Form<strong>el</strong>n ausdrücken<br />
lassen, verschliessen sich zumeist e<strong>in</strong>em direkten Verständnis, gerade wenn<br />
46
4.4 Zusammenfassung <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
Abbildung 4.7: Simulierte Flugbahn <strong>in</strong> e<strong>in</strong>em Dipolf<strong>el</strong>d<br />
diese Vorgänge sich im Mikrokosmus (Diskont<strong>in</strong>uum) abspi<strong>el</strong>en. Erst wenn e<strong>in</strong> Vorgang<br />
simuliert wird und somit sichtbar gemacht wird, erhält man e<strong>in</strong>en E<strong>in</strong>blick, was<br />
durch die Mathematik beschrieben wird. Die Bewegungen von g<strong>el</strong>adenen Teilchen<br />
lassen sich durch die Newton’sche Bewegungsgleichung beschreiben, um diese Bewegungen<br />
zu simulieren, ist e<strong>in</strong>e numerische Behandlung nötig. Das <strong>in</strong> dieser Arbeit<br />
entwick<strong>el</strong>te Programmparticles ermöglicht e<strong>in</strong>e <strong>Visualisierung</strong> von g<strong>el</strong>adenen Teilchen<br />
<strong>in</strong> unterschiedlichen <strong>el</strong>ektrischen bzw. <strong>magn</strong>etischen F<strong>el</strong>dern. Das Programm<br />
ist für MATLAB r○ konzipiert und verwendet bei der <strong>Visualisierung</strong> der Bewegung,<br />
die <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten numerischen Funktionen. Dabei macht man sich zu<br />
Nutze, dass MATLAB r○ verschiedene Funktionen zur Ausführung mathematischer<br />
Optionen und für die Datenanalyse anbietet (hier seien nur die für diese Arbeit verwendeten<br />
Funktionen genannt, e<strong>in</strong>en genauen Überblick f<strong>in</strong>det man unterMathWorks<br />
(MATLAB r○ Onl<strong>in</strong>e Dokumentation))<br />
• Matrizenmultiplikation<br />
• Polynome und Interpolation<br />
• Optimierung und numerische Integration<br />
• Gewöhnliche Differentialgleichungen<br />
•<br />
.<br />
Mit diesen Funktionen ist es möglich die Bewegungsgleichung von g<strong>el</strong>adenen Teilchen<br />
zu beschreiben und zu berechnen. Die großen Datenmengen, die bei der Berechnung<br />
entstehen, da je nach angewendetem Lösungsverfahren unterschiedlich vi<strong>el</strong>e<br />
Rechenschritte nötig s<strong>in</strong>d, lassen sich <strong>in</strong> MATLAB r○ darst<strong>el</strong>len. ( Die ) mathematische<br />
Beschreibung der Bewegung liefert bei gegebenen F<strong>el</strong>dern ⃗B, E ⃗ jeweils die Beschleunigung<br />
˙⃗v = ⃗a. Dieses ergibt sich aus dem zweiten Newton’schen Gesetz, dieses<br />
besagt, dass die Beschleunigung a e<strong>in</strong>es Körpers der Masse m proportional zu der<br />
47
4.4 Zusammenfassung <strong>Visualisierung</strong> <strong>in</strong> MATLAB<br />
auf ihn wirkenden Kraft F ⃗ ist. Durch diese Beziehung kommt man auf die <strong>in</strong> Abschnitt<br />
2 beschriebenen Bewegungen. Auf e<strong>in</strong> g<strong>el</strong>adenes Teilchen wirkt <strong>in</strong> e<strong>in</strong>em<br />
<strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>d die <strong>el</strong>ektrische Kraft qE ⃗ (<br />
und die Lorentzkraft q ⃗v × B ⃗ )<br />
.<br />
Diese Kräfte s<strong>in</strong>d von der Beschaffenheit des F<strong>el</strong>des abhängig. Dieses macht sich<br />
bei der Numerik allerd<strong>in</strong>gs nur dar<strong>in</strong> bemerkbar, das die Komponenten der Vektoren<br />
B=B0*[value1 value2 value3] bzw. E=E0*[value1 value2 value3] unterschiedlich<br />
s<strong>in</strong>d. Mitt<strong>el</strong>s der numerischen Hilfsmitt<strong>el</strong> von MATLAB r○ ist es möglich<br />
die ODE’s zu lösen und die Teilchenbewegung anhand der Beschleunigung und der<br />
Kenntnis der F<strong>el</strong>dstruktur über e<strong>in</strong>en bestimmten Zeitraum tspan zu entwick<strong>el</strong>n<br />
und darzust<strong>el</strong>len. Dieses ist mit dem Pogramm particles möglich, es basiert mathematisch<br />
auf der Beschreibung der Newton’schen Bewegungsgleichung und löst<br />
diese <strong>in</strong> Abhängigkeit der F<strong>el</strong>dstruktur mit den <strong>in</strong> MATLAB r○ <strong>in</strong>tegrierten ODE ”<br />
Solvern“. Das Programm ist mit MATLAB r○ 6.5 geschrieben und lässt sich mit folgendem<br />
Aufruf starten<br />
>> particles<br />
Die Dokumentation des Programms kann man sich entweder im Programm s<strong>el</strong>bst<br />
über den HELP-Button anzeigen lassen, bzw. aus dem MATLAB r○ Prompt mit<br />
>> open particles.html<br />
aufrufen. Voraussetzung hierfür ist allerd<strong>in</strong>gs, dass man MATLAB r○ nicht als nur<br />
Term<strong>in</strong>al-Session geöffnet hat. Das Programm bietet mitt<strong>el</strong>s e<strong>in</strong>es GUI’s e<strong>in</strong>e komfortable<br />
Steuerung um schn<strong>el</strong>l sichtbare Ergebnisse zu erhalten. Die e<strong>in</strong>z<strong>el</strong>nen Komponenenten,<br />
die mit <strong>in</strong> die Bewegungsgleichungen e<strong>in</strong>fließen wie die Ladung (Elektron/Proton),<br />
die Anfangsposition, die Geschw<strong>in</strong>digket des Teilchens, die Zeitspanne<br />
und die F<strong>el</strong>dgeometrie können mitt<strong>el</strong>s der graphischen Elemente ausgewählt und<br />
verändert werden. Das GUI erzeugt dann e<strong>in</strong>e graphische Darst<strong>el</strong>lung der virtu<strong>el</strong>len<br />
Flugbahn e<strong>in</strong>es Teilchens mit den e<strong>in</strong>gest<strong>el</strong>lten Parametern.<br />
48
Zusammenfassung<br />
5 Zusammenfassung<br />
Die Bewegungen g<strong>el</strong>adener Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern s<strong>in</strong>d unter Umständen<br />
mathematisch sehr schwer zu beschreiben und zu verstehen. Die Bewegungen<br />
der Teilchen resultieren aus den Kräften, die auf sie wirken. Nach dem zweiten<br />
Newton’schen Gesetz, s<strong>in</strong>d alle Kräfte, die auf e<strong>in</strong> Teilchen wirken proportional<br />
zu se<strong>in</strong>er Beschleunigung, es lässt sich somit e<strong>in</strong> mathematischer Zusammenhang<br />
zwischen den Kräften und der Beschleunigung <strong>in</strong> Form e<strong>in</strong>er Bewegungsgleichung<br />
aufst<strong>el</strong>len. Die <strong>in</strong> dieser Arbeit betrachteten Kräfte s<strong>in</strong>d die Lorentzkraft und die<br />
<strong>el</strong>ektrische Kraft, die auf g<strong>el</strong>adene Teilchen <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern wirken.<br />
Diese Kräfte s<strong>in</strong>d von der Beschaffenheit der F<strong>el</strong>der abhängig und können daher<br />
sehr unterschiedlich ausprägt se<strong>in</strong>. Sie führen dazu, dass die Teilchen Gyrationsbewegungen<br />
sowie Driften ausführen. Die Lösung der zu den Bewegungen gehörenden<br />
Differentialgleichung ist dabei teilweise sehr komplex.<br />
Um die mathematische Beschreibung der E<strong>in</strong>z<strong>el</strong>teilchenbewegungen verständlich<br />
werden zu lassen, s<strong>in</strong>d die Bewegungen mit Hilfe von MATLAB r○ simuliert worden.<br />
Hierbei wird aus der grauen mathematischen Theorie der Bewegungsgleichungen<br />
e<strong>in</strong>e bunte und anschauliche <strong>Visualisierung</strong> geschaffen. Auf diese Weise ist e<strong>in</strong><br />
Verständnis der e<strong>in</strong>z<strong>el</strong>nen Bewegungen vi<strong>el</strong> e<strong>in</strong>facher zu erreichen und man erhält<br />
e<strong>in</strong>en E<strong>in</strong>druck davon, was durch die Mathematik beschrieben wird.<br />
Warum wurde MATLAB r○ zur <strong>Visualisierung</strong> verwendet? Die Antwort liegt <strong>in</strong> der<br />
Art und Weise wie MATLAB r○ <strong>in</strong>tern arbeitet und an den numerischen Hilfsmitt<strong>el</strong>n<br />
die MATLAB r○ zur Verfügung st<strong>el</strong>lt. MATLAB r○ arbeitet <strong>in</strong>tern mit Matrizen und<br />
st<strong>el</strong>lt auch Skalare durch e<strong>in</strong>e 1×1 Matrix dar, sowie Vektoren durch n×1 bzw. 1×m<br />
Matrizen. Auf diese Weise ist es sehr e<strong>in</strong>fach und <strong>in</strong>tuitiv die Bewegungsgleichungen,<br />
w<strong>el</strong>che zunächst vektori<strong>el</strong>l dargest<strong>el</strong>lt wurden, <strong>in</strong> MATLAB r○ mit Hilfe von 3×1<br />
Matrizen darzust<strong>el</strong>len, wobei die e<strong>in</strong>z<strong>el</strong>nen Komponenten jeweils e<strong>in</strong>e Richtung im<br />
dreidimensionalem Raum darst<strong>el</strong>len. Des weiteren be<strong>in</strong>haltet MATLAB r○ numerische<br />
Hilfsmitt<strong>el</strong>, die schon auf FORTRAN 90 Rout<strong>in</strong>en zurückgehen (LAPACK, D02BGF,<br />
DIVPAG) und somit lange erprobt und zuverlässig s<strong>in</strong>d. Hier seien nur das Runge-<br />
Kutta Verfahren vierter Ordnung, der Runge-Kutta-Merson Algorithmus und das<br />
Adams-Bashforth-Moulton Verfahren genannt. All diese Verfahren ermöglichen e<strong>in</strong>e<br />
sehr schn<strong>el</strong>le numerische Berechnung der gegebenen Bewegungsgleichungen und<br />
man erhält auf diese Weise r<strong>el</strong>ativ genaue Ergebnisse, die im Rahmen der Rechengenauigkeit<br />
mit der Theorie übere<strong>in</strong>stimmen. Hierbei kann die Numerik niemals die<br />
analytischen Ergebnisse bis <strong>in</strong>s kle<strong>in</strong>ste widerspieg<strong>el</strong>n, aber die <strong>Visualisierung</strong> der<br />
Datenmengen, die aus den numerischen Berechnungen resultieren, können uns e<strong>in</strong>en<br />
vi<strong>el</strong> tieferen E<strong>in</strong>blick und e<strong>in</strong> vi<strong>el</strong> <strong>in</strong>tuitiveres Verständnis der Physik geben, die<br />
h<strong>in</strong>ter den Form<strong>el</strong>n steckt.<br />
49
Abstract<br />
6 Abstract<br />
The motion of charged particles is possibly hard to describe mathematically. The<br />
particles’ motion results from the analysis of all forces which have an effect on<br />
each particle. The resultant of all forces act<strong>in</strong>g on a particle is proportional to the<br />
acc<strong>el</strong>eration of this particle (Newton’s 2 nd law), so it is possible to describe the<br />
trajectory of a charged particle <strong>in</strong> an <strong>el</strong>ectro<strong>magn</strong>etic fi<strong>el</strong>d. In this case the act<strong>in</strong>g<br />
forces are the Lorentz force and the <strong>el</strong>ectrical force. These forces depend on the<br />
composition of the fi<strong>el</strong>d and could therefore be very variably marked; they lead<br />
to a gyration and a drift of particles. The equations of these movements are very<br />
variable and partly very complex. They depend on the fi<strong>el</strong>ds, so it is only possible<br />
to solve this ord<strong>in</strong>ary differential equation problem analytically when the fi<strong>el</strong>ds are<br />
very homogeneous and not variable <strong>in</strong> time. When the fi<strong>el</strong>ds vary <strong>in</strong> time and when<br />
they have a gradient of strength, the only way to solve such problems is to use<br />
numerical methods; this is done with MATLAB r○ .<br />
In order to make the mathematical description of the particles’ motion understandable,<br />
the movements have been simulated by MATLAB r○ . On this occasion a coloured<br />
and clear visualization is created from the grey mathematical theory of equations,<br />
an understand<strong>in</strong>g of the s<strong>in</strong>gle movements is easily achieved, and it is easier to get<br />
an impression of what is described by mathematics.<br />
Why has MATLAB r○ been used for visualization? The answer lies <strong>in</strong> MATLAB r○ ’s<br />
<strong>in</strong>ternal work and provision of numerical methods. MATLAB r○ uses matrices for<br />
the calculations: it works <strong>in</strong>ternally with an 1 × 1 matrix for a scalar and uses<br />
n × 1 or 1 × m matrices for vectors. In this way it is very simple to implement<br />
the equations of motion <strong>in</strong> a very <strong>in</strong>tuitive way by a 3 × 1 vector <strong>in</strong> which a s<strong>in</strong>gle<br />
component represents a direction <strong>in</strong> the three-dimensional space. Furthermore,<br />
MATLAB r○ conta<strong>in</strong>s numeric methods based on FORTRAN 90 rout<strong>in</strong>es (e.g.LAPACK,<br />
D02BGF and DIVPAG); therefore these methods are proven and r<strong>el</strong>iable. Just a few<br />
shall be mentioned here: the Runge-Kutta method of fourth order, the Runge-Kutta-<br />
Merson algorithm and the Adams-Bashforth-Moulton method.<br />
All these methods facilitate a very fast numerical calculation of the given equations<br />
of motion, so it is possible to receive r<strong>el</strong>ativ<strong>el</strong>y exact results which agree with the<br />
theory <strong>in</strong> the context of computed precision. The numerical results could never<br />
totally agree with the analytical ones, but the visualization of the data amount<br />
produced by numerical calculation enables us to ga<strong>in</strong> a much deeper <strong>in</strong>sight and an<br />
<strong>in</strong>tuitive understand<strong>in</strong>g of the physics beh<strong>in</strong>d the formulae.<br />
50
LITERATUR<br />
Literatur<br />
[1] H. Alfvén, Tentative Theory of Solar Prom<strong>in</strong>ences, Ark. Mat. Astron. Fys. 27A,<br />
1 (1940).<br />
[2] R. Ash<strong>in</strong>o, M. Nagase, Rémi Vaillancourt, Beh<strong>in</strong>d and Beyond the MAT-<br />
LAB r○ ODE Suite, The Centre de recherches mathématiques (CRM Université<br />
de Montréal), CRM-2651 (2000).<br />
[3] K. Betzler, Graphik-Workshop (Vorlesungsskript), Universität Osnabrück 2004.<br />
[4] H.J. de Blank, T.J. Schep, Guid<strong>in</strong>g center motion, 5th Carolus Magnus Summer<br />
School, Bad Honnef, Germany, September (2001).<br />
[5] P. Bogacki, L.F. Shamp<strong>in</strong>e, A 3(2) pair of Runge-Kutta formulas, Appl. Math.<br />
Letters 2, 1 (1989).<br />
[6] J.J. Buchholz, Systemsimulation (Vorlesungsskript), Hochschule Bremen 1999.<br />
[7] F.F. Chen, Introduction to plasma physics and controlled fusion, Vol. 1, Plenum<br />
Press, New York 1984.<br />
[8] J.R. Dormand, P.J. Pr<strong>in</strong>ce, A family of embedded Runge-Kutta formulae, J.<br />
Comp. Appl. Math. 6, 19 (1980).<br />
[9] O. Forster, Analysis 2, Differentialrechnung im R n , gewöhnliche Differentialgleichungen,<br />
Vieweg Verlag, Braunschweig 1999.<br />
[10] D. Goeken, O. Johnson, Fifth-order Runge-Kutta with higher order derivative<br />
approximations; 15’th Annual Conference of Applied Mathematics, Electronic<br />
Jounal of Diff. Eqau. Conf. 02, 1 (1999).<br />
[11] V.E. Golant, Fundamentals of plasma physics, Wiley, New York 1980.<br />
[12] HyperPhysics, (L<strong>in</strong>k) http://hyperphysics.phy-astr.gsu.edu/hbase/<strong>magn</strong>etic/-<br />
toroid.html, Georgia State University, Stand: 29. August 2004.<br />
[13] M.-B. Kallenrode, Space Physics, Ed. II, Spr<strong>in</strong>ger, Berl<strong>in</strong> 2001.<br />
[14] M.-B. Kallenrode, Ausarbeitungen (Vorlesung Space Physics), Universität Osnabrück<br />
2003.<br />
[15] W.H. Keg<strong>el</strong>, Plasmaphysik, E<strong>in</strong>e E<strong>in</strong>führung, Spr<strong>in</strong>ger, Berl<strong>in</strong> 1998.<br />
[16] M.G. Kiv<strong>el</strong>son, Introduction to space physics, Cambridge University Press,<br />
Cambridge 1997.<br />
[17] R. Knerr, Lexikon der Physik, vom Atom zum Universum, Bassermann Verl.,<br />
München 2000.<br />
[18] A. Kneschke, Differentialgleichungen und Randwertprobleme, VEB Verlag Technik,<br />
Berl<strong>in</strong> 1960.<br />
51
LITERATUR<br />
LITERATUR<br />
[19] N.A. Krall, A.W. Triv<strong>el</strong>piece, Pr<strong>in</strong>ciples of Plasma Physics, McGraw-Hill Inc.,<br />
New York 1973.<br />
[20] M.S. Longair, High energy astrophysics, Cambridge University Press, Cambridge<br />
1992.<br />
[21] P. Marchand, O.T. Holland, Graphics and GUIs with MATLAB r○ Ed. III, Chapman<br />
& Hall/CRC, Boca Raton, 2003.<br />
[22] J.H. Mathews, Numerical Methods, Prentice-Hall Inc., Englewood Cliffs 1992.<br />
[23] A.I. Morozov, L.S. Solev’ev, Motion of charged particles <strong>in</strong> <strong>el</strong>ectro<strong>magn</strong>etic<br />
fi<strong>el</strong>ds, Rev. of Plasma Phys. Vol. 2, M.A. Leontorich (1966).<br />
[24] K. Nishikawa, M. Wakatani, Plasma Physics, Ed. III, Spr<strong>in</strong>ger, Berl<strong>in</strong> 2000.<br />
[25] T.G. Northrop, The adiabatic motion of charged particles, Interscience, New<br />
York 1963.<br />
[26] M. O<strong>el</strong>schläg<strong>el</strong>, MATHEMATIK Bd. 18: Numerische Methoden, BSB B.G.<br />
Teubner Verlagsges<strong>el</strong>lschaft, Leipzig 1991.<br />
[27] A. Pi<strong>el</strong>, E<strong>in</strong>führung <strong>in</strong> die Plasmaphysik (Vorlseungsskript 1993-98), Universität<br />
Ki<strong>el</strong> 1999.<br />
[28] J.C. Polk<strong>in</strong>g, MATLAB Manual for Ord<strong>in</strong>ary Differential Equations, Prentice-<br />
Hall Inc., Englewood Cliffs 1995.<br />
[29] W.H. Press, S.A. Teukolsky, W.T. Vetterl<strong>in</strong>g, B.P. Flannery, Numerical Recipes<br />
<strong>in</strong> C, (E-Book), Cambridge University Press, Cambridge 2002.<br />
[30] G.W. Prölss, Physik des erdnahen W<strong>el</strong>traums, Spr<strong>in</strong>ger, Berl<strong>in</strong> 2001.<br />
[31] A. Quarteroni, F. Saleri, Scientific Comput<strong>in</strong>g with MATLAB, Spr<strong>in</strong>ger, Berl<strong>in</strong><br />
2003.<br />
[32] M.N. Saha, Ionization <strong>in</strong> the solar chromosphere, Phil. Mag. 40, 238 (1920).<br />
[33] K. Schleg<strong>el</strong>. Joachim Woch, Forschungs-Info (Okt. 2001), Max-Planck-Institut<br />
für Aeronomie, Max-Planck-Institut (2001).<br />
[34] L.F. Shamp<strong>in</strong>e, M.W. Reich<strong>el</strong>t, The Matlab ODE Suite, SIAM J. Sci. Comput.<br />
18.1, 1 (1997).<br />
[35] L. Tonks, I. Langmuir, Oscillations <strong>in</strong> Ionized Gases, Phys. Rev. 33, 195 (1929).<br />
[36] D.M. Willis, A.R. Gard<strong>in</strong>er, V.N. Davda, V.J. Bone, Planar charged-particle<br />
trajectories <strong>in</strong> multipole <strong>magn</strong>etic fi<strong>el</strong>ds, Ann. Geophysicae 15, 197 (1997).<br />
[37] Wolfram Research, http://mathworld.wolfram.com/ToroidalCoord<strong>in</strong>ates.html,<br />
Wolfram Research Inc., Stand: 29. August 2004.<br />
52
Form<strong>el</strong>n, Tab<strong>el</strong>len, Erläuterungen<br />
A Form<strong>el</strong>n, Tab<strong>el</strong>len, Erläuterungen<br />
A.1 Maxw<strong>el</strong>lsche Gleichungen<br />
Die <strong>in</strong> dieser Arbeit betrachteten F<strong>el</strong>der unterliegen den Maxw<strong>el</strong>lschen Gleichungen<br />
rotE = − 1 ∂B<br />
c ∂t ,<br />
divB = 0 ,<br />
rotB = 1 ∂E<br />
c ∂t + 4π c j ,<br />
divE = 4πρ .<br />
(A.1)<br />
(A.2)<br />
(A.3)<br />
(A.4)<br />
Hierbei ist j die Stromdichte und ρ die Ladungsdichte. E und B lassen sich durch<br />
e<strong>in</strong> Vektorpotential A und e<strong>in</strong> skalares Potential Φ darst<strong>el</strong>len, die zusammen e<strong>in</strong>en<br />
Vierervektor, das Viererpotential bilden<br />
B = rotA<br />
E = − 1 ∂A<br />
c ∂t − gradΦ.<br />
(A.5)<br />
(A.6)<br />
A.2 Zeitkonstanten der Bewegungen <strong>in</strong> W<strong>el</strong>traumplasmen<br />
Teilchenart Protonen<br />
Energie 0.6 eV 20 keV 20 MeV<br />
Abstand 3 R E 4 R E 1.3 R E<br />
Periode Gyration 0.1 s 0.1 s 5 ms<br />
Periode Oszillation 2 h 1 m<strong>in</strong> 0.5 s<br />
Periode Drift 45 a 9 h 2 m<strong>in</strong><br />
Tab<strong>el</strong>le A.1: Vergleich der Gyration-, Oszillation- und Driftperioden (Qu<strong>el</strong>le: [30])<br />
Die Zeitkonstanten beziehen sich hierbei auf die <strong>in</strong>ner<strong>magn</strong>etosphärischen Bed<strong>in</strong>gungen,<br />
dieses kommt im Schalenparameter (Abstand der F<strong>el</strong>dl<strong>in</strong>ie vom Erdmitt<strong>el</strong>punkt)<br />
zum Ausdruck. Um an dieser St<strong>el</strong>le, die Betrachtungen nicht unnötig zu<br />
verkomplizieren, wird an dieser St<strong>el</strong>le der Abstand der F<strong>el</strong>dl<strong>in</strong>ie direkt <strong>in</strong> Erdradien<br />
(R E ≈ 6378 km) und somit von e<strong>in</strong>er äquatorialen Sicht aus angegeben.<br />
A.3 Erläuterung: MATLAB/MEX<br />
MEX-Dateien s<strong>in</strong>d von MATLAB r○ aufrufbare C/C++ oder FORTRAN Subrout<strong>in</strong>en<br />
die vom mex-Compiler unter W<strong>in</strong>dows als DLL (Dynamic L<strong>in</strong>k Libraries) erst<strong>el</strong>lt<br />
werden. Der Vorteil dieser Art der Umsetzung ist, dass man <strong>in</strong> MATLAB auf große<br />
FORTRAN bzw. C/C++ Libraries zurückgreifen kann, ohne erneut e<strong>in</strong>en MAT-<br />
LAB r○ m-File zu generieren. Zur Realsisierung von MEX-Dateien ist im MATLAB r○ -<br />
System das Kommando mex vorgesehen. Dieses ist <strong>in</strong> der Lage, aus C oder C++<br />
bzw. Fortran Code die DLL’s zu erst<strong>el</strong>len.<br />
53
Ausgewählte Gleichungen<br />
E<strong>in</strong>e sogenannte Gateway-Funktion mexFunction() st<strong>el</strong>lt dabei die Verb<strong>in</strong>dung zu<br />
MATLAB r○ her. Diese Funktion muss <strong>in</strong> jeder MEX-Datei enthalten se<strong>in</strong>. Die ”<br />
Usage-<br />
Messages“ werden bei MATLAB r○ als m-File <strong>in</strong> das zur DLL gehörige Verzeichnis<br />
unter dem gleichen Namen wie die DLL gepackt. MATLAB r○ zeigt beim Aufruf<br />
h<strong>el</strong>p s<strong>el</strong>bstständig den m-File an, <strong>in</strong>dem die ”<br />
Usage-Messages“<br />
gespeichert ist. Die Gateway-Funktion e<strong>in</strong>er MEX-Datei hat die folgende Signatur<br />
void mexFunction( <strong>in</strong>t nlhs, mxArray *plhs[],<br />
<strong>in</strong>t nrhs, const mxArray *prhs[])<br />
Die vier Parameter beschreiben die E<strong>in</strong>gabe- und Ausgabeobjekte der MEX-Funktion<br />
(left hand side, right hand side). Die F<strong>el</strong>der plhs und prhs enthalten Zeiger auf die<br />
Objekte,nlhs undnrhs deren Anzahl. Mit der Funktionvoid getParameters(...)<br />
lesen wir die Zeiger auf die Objekte aus und setzen die <strong>in</strong> unserem C-Code verwendeten<br />
Variablen auf die übergebenen Objekte bzw. auf die Standart Werte.<br />
B Ausgewählte Gleichungen<br />
B.1 Saha Gleichung<br />
Die Saha Gleichung [7, 32] gibt den Betrag der Ionisation e<strong>in</strong>es Gases bei der Temperatur<br />
T im thermischen Gleichgewicht an:<br />
3/2<br />
n i<br />
21<br />
T<br />
≈ 2.4 × 10 e −U i/κT<br />
n n n i<br />
(B.1)<br />
mit n i , n n — Dichte von <strong>in</strong>osierten zu neutralen Atomen (Anzahl pro m 3 ), T —<br />
Temperatur des Gases <strong>in</strong> K<strong>el</strong>v<strong>in</strong>, κ — Boltzmann Konstante und U i — Ionisationsenergie<br />
des Gases. Die Ionsiationsenergie ist die Menge an Energie, die benötigt wird<br />
um die äußeren Elektronen vom Kern zu separieren. In Abschnitt 2 wird erläutert,<br />
dass der größte Teil der Materie im W<strong>el</strong>traum sich im Plasmazustand bef<strong>in</strong>det, also<br />
<strong>in</strong> Form von dissozierten positiven Ionen und negativen Elektronen. In e<strong>in</strong>er ersten<br />
Näherung kann diese Sichtweise bestätigt werden, da das <strong>in</strong>terst<strong>el</strong>lare Medium, die<br />
Gaswolken, sowie das Innere und die Atmosphäre e<strong>in</strong>iger Planeten im Plasmazustand<br />
vorliegen. Schon wenn wir unsere eigene Atmosphäre verlassen, st<strong>el</strong>len wir<br />
e<strong>in</strong>en Anstieg der Plasmadichten fest, an dieser St<strong>el</strong>le seien die Van-Allen Gürt<strong>el</strong><br />
sowie der Sonnenw<strong>in</strong>d genannt. Die <strong>magn</strong>etischen Ausläufer dieses Plasmas und die<br />
separierten Teilchen st<strong>el</strong>len die Grundlage dieser Arbeit dar.<br />
B.2 Gyration verktori<strong>el</strong>l<br />
In Abschnitt 2.2 wurde allgeme<strong>in</strong> erläutert, wie e<strong>in</strong>e Gyrationsbewegung <strong>in</strong> e<strong>in</strong>em<br />
kartesischen Koord<strong>in</strong>atensystem beschrieben werden kann und wie die Bewegungsgleichungen<br />
analytisch g<strong>el</strong>öst werden können. Hierbei st<strong>el</strong>lt die Gyration e<strong>in</strong>e der<br />
<strong>el</strong>emantarsten Bewegungsarten von Teilchen <strong>in</strong> e<strong>in</strong>em <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>d dar.<br />
Um mit der <strong>in</strong> Abschnitt 2.2 aufgezeigten Notation auch die Bewegung <strong>in</strong> anderen<br />
54
B.3 Gradientendrift (ausführlich) Ausgewählte Gleichungen<br />
(a)<br />
(b)<br />
Abbildung B.1: Def<strong>in</strong>ition des Gyrationsw<strong>in</strong>k<strong>el</strong>s φ (a) und des Führungszentrums (b)<br />
(Qu<strong>el</strong>le: [4])<br />
F<strong>el</strong>dern zu lösen, ist es manchmal nötig e<strong>in</strong>e andere Beschreibung zu wählen. Hierzu<br />
führt man e<strong>in</strong>e Notation mit Hilfe des Führungszentrum-Ansatzes [4] e<strong>in</strong>.<br />
Als Bezugssystem wählt man die drei E<strong>in</strong>heitsvektoren e 1 , e 2 und b, wobei b der E<strong>in</strong>heitsvektor<br />
<strong>in</strong> Richtung des Magnetf<strong>el</strong>des ist. Somit erhält man e<strong>in</strong> mitrotierendes<br />
Koord<strong>in</strong>atensystem (vgl. Abb. 1(a)), und es lässt sich schreiben<br />
e ⊥ (t) = e 1 cos (φ) + e 2 s<strong>in</strong> (φ)<br />
e rL (t) = e 2 cos (φ) − e 1 s<strong>in</strong> (φ)<br />
mit φ = φ 0 −ω rL t. Dieses ist <strong>in</strong> Abb. 1(b) dargest<strong>el</strong>lt. Hierbei kann man die Position<br />
x e<strong>in</strong>es Teilchens <strong>in</strong> e<strong>in</strong>e Führungszentrumsposition ⃗ R, die sich mit der Geschw<strong>in</strong>digkeit<br />
v ‖<br />
⃗ B bewegt und den rotierenden Gyrationsradius Vektor ⃗rL zerlegen. Somit<br />
erhält man<br />
⃗x = R ⃗ + ⃗r L<br />
⃗r L = − m<br />
|q|B ⃗v 2 ⊥ × B ⃗<br />
(B.2)<br />
(B.3)<br />
⃗v ⊥ = ˙⃗r L . (B.4)<br />
Auch mit dieser Beschreibung ergibt sich im e<strong>in</strong>fachen Fall des konstanten homogenen<br />
Magnetf<strong>el</strong>des, für die Gyration e<strong>in</strong>e H<strong>el</strong>ixbahn um das Führungszentrum.<br />
B.3 Gradientendrift (ausführlich)<br />
Nachdem <strong>in</strong> Abschnitt B.2 den Ansatz des guid<strong>in</strong>g centres“ e<strong>in</strong>geführt wurde, kann<br />
”<br />
man nun die Bewegung <strong>in</strong> <strong>in</strong>homogenen F<strong>el</strong>dern beschreiben. Hier e<strong>in</strong>em Magnetf<strong>el</strong>d,<br />
w<strong>el</strong>ches durch e<strong>in</strong>en Gradienten <strong>in</strong> der Magnetf<strong>el</strong>dstärke vorgegeben ist. Man<br />
nimmt an, dass der Gyrationsradius r L = ⃗v ⊥ /ω B kle<strong>in</strong> gegenüber der Ausdehnung<br />
der Inhomogenität ist L = ∣B<br />
⃗ ∣<br />
∣ / ∣∇B<br />
⃗ ∣<br />
∣. Somit ist es möglich e<strong>in</strong>e Gyration um das<br />
Führungszentrum zu betrachten. Dannach lässt sich diese durch die Überlagerung<br />
des Fortschreitens des Führungszentrums beschreiben. Zunächst bildet man die im<br />
55
B.4 Simpson (Trapez-)Integration Ausgewählte Gleichungen<br />
Mitt<strong>el</strong> e<strong>in</strong>er Gyration auf das Teilchen wirkende Lorentzkraft, diese ist gegeben<br />
durch (nach Abb. 2.7)<br />
¯F y = −qv x B z (y) ,<br />
(B.5)<br />
wobei B z (y) jeweils das Magnetf<strong>el</strong>d am Ort des Teilchens ist, für e<strong>in</strong>e weitere Beschreibung<br />
ist es s<strong>in</strong>nvoll, dieses mit Hilfe der Taylorentwicklung um e<strong>in</strong>en Punkt<br />
x 0 , y 0 = 0 (Ort des Führungszetrums für e<strong>in</strong>e Kreisbahn) zu entwick<strong>el</strong>n. Es ergibt<br />
sich für das Magnetf<strong>el</strong>d <strong>in</strong> z-Richtung (für den <strong>in</strong> Abb. 2.7 dargest<strong>el</strong>lten Fall)<br />
B z = B 0 + y (∂B z /∂y) .<br />
(B.6)<br />
Mit dieser Entwicklung lässt sich im Mitt<strong>el</strong> für die Lorentzkraft angeben;<br />
[<br />
¯F y = −qv ⊥ (cosω B t) B 0 ± r L (cos ω B t) ∂B ]<br />
. (B.7)<br />
∂y<br />
Mit der Annäherung, r L /L ≪ 1 wird der erste Term im mitt<strong>el</strong> e<strong>in</strong>er Gyration Null,<br />
desweitern wird cos 2 ω B t zu 1/2, somit lässt sich schreiben<br />
1 ∂B<br />
¯F y = ±qv ⊥ r L<br />
2 ∂y .<br />
(B.8)<br />
verwendet man diese Beziehung <strong>in</strong> (2.15), so ergibt sich für die Driftgeschw<strong>in</strong>digkeit<br />
⃗v GD = ± mv2 ⊥<br />
2qB 3 ⃗ ∇B × ⃗ B .<br />
(B.9)<br />
B.4 Simpson (Trapez-)Integration<br />
Die Simpson Integration ist e<strong>in</strong> Verfahren zur numerischen Berechnung von bestimmten<br />
Integralen<br />
I =<br />
∫ b<br />
a<br />
f(x) dx.<br />
(B.10)<br />
Grundlage der numerischen Intergration e<strong>in</strong>er Funktion ist die Idee, die Funktion<br />
durch e<strong>in</strong> Polynom zu nähern und dieses dann zu <strong>in</strong>tegrieren. Man wählt somit e<strong>in</strong>en<br />
Satz von k + 1 Stützst<strong>el</strong>len x i = 0, . . . , k, wertet die Funktion dort aus und legt<br />
e<strong>in</strong> Polynom k-ten Gerades durch die Funktionswerte f i = f (x i ). Im allgeme<strong>in</strong>en<br />
Fall verwendet man e<strong>in</strong>e Lagrange-Interpolationsform<strong>el</strong>. Dazu bildet man hilfsweise<br />
Polynome<br />
l i (x) = ∏ x − x j<br />
⇒ l i (x j ) = δ ij (B.11)<br />
x i − x j<br />
und es lässt sich schreiben<br />
j(≠i)<br />
f(x) ≈ p n (x) = ∑ i<br />
l i (x)f i .<br />
(B.12)<br />
Dann kann man das Intgral durch<br />
∫ b<br />
a<br />
f(x) dx ≈ ∑ i<br />
∫ b<br />
ω i f i mit ω i = l i (x) dx<br />
a<br />
(B.13)<br />
56
Programme<br />
ausdrücken. Beim Simpson Verfahren wählt man äquidistante Stützst<strong>el</strong>len mit der<br />
Schrittweite h. Im e<strong>in</strong>fachsten Fall e<strong>in</strong>er l<strong>in</strong>earen Interpolation (k = 1) zwischen den<br />
Endpunkten des Intervalls, erhält man mit ω 0 = ω 1 = h/2 die Trapezreg<strong>el</strong><br />
∫ b<br />
a<br />
[ 1<br />
f(x) dx = h<br />
2 f 0 + 1 1]<br />
2 f + O ( k 3) (B.14)<br />
Wählt man k = 2, erhält man mit ω 0 = ω 2 = h/3 und ω 1 = 4/3 h die Simpsonreg<strong>el</strong>;<br />
es lässt sich schreiben<br />
∫ b<br />
f(x) dx = h<br />
[ 1<br />
3 f 0 + 4 3 f 1 + 1 2]<br />
3 f + O ( h 5) . (B.15)<br />
a<br />
Das Ergebnis der Simpson Integration lässt sich dann <strong>in</strong> der Adams-Moulton Korrektur<br />
verwenden.<br />
C<br />
Programme<br />
C.1 C-Programm: Runge-Kutta 4. Ordnung<br />
Hier wird e<strong>in</strong> C-Programm dargest<strong>el</strong>lt, w<strong>el</strong>ches dem Benutzer ermöglicht, das Runge-<br />
Kutta Verfahren zu testen. Hierbei müssen die Startwerte der n Differentialgleichungen<br />
e<strong>in</strong>gegeben werden. Die Rout<strong>in</strong>e berechnet dann auf der gegebenen Funktion<br />
derivs die Runge-Kutta Näherung (Qu<strong>el</strong>le übersetzt/geändert: [29]).<br />
void rk4(y,dydx,n,x,h,yout,derivs)<br />
float y[],dydx[],x,h,yout[];<br />
void (*derivs)();<br />
<strong>in</strong>t n; /* n Variablen fuer y[1..n] und die Ableitungen dydx[1..n]*/<br />
{<br />
<strong>in</strong>t i;<br />
float xh,hh,h6,*dym,*dyt,*yt,*vector();<br />
void free_vector();<br />
dym = vector(1,n);<br />
dyt = vector(1,n);<br />
yt = vector(1,n);<br />
hh = h*0.5;<br />
h6 = h/6.0;<br />
xh = x*hh;<br />
for (i=1;i
C.2 MATLAB: Runge-Kutta 4. Ordnung Programme<br />
}<br />
/* Berechnung der Summe */<br />
for (i=1;i
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
C.5 V<strong>el</strong>ocity-Verlet Algorithmus Programme<br />
ucor = feval(corr,x+H,y,upre,H,odefun,fn,vararg<strong>in</strong>{:});<br />
yout = [u,ucor];<br />
end;<br />
xout = xx;<br />
return<br />
Die Funktion implementiert e<strong>in</strong>e allgeme<strong>in</strong>e Prädiktor-Korrektor Methode. Hierbei<br />
repräsentieren die Str<strong>in</strong>gs pred und corr die zu verwendenden Prädiktor und Korrektor<br />
Methoden. So lässt sich diese Methode zum Beispi<strong>el</strong> mit e<strong>in</strong>er Euler Methode<br />
als Prädiktor und e<strong>in</strong>er Crank-Nicolson Methode als Korrektor aufrufen, der Aufruf<br />
lautet dann<br />
[x,y] = predcorr(fun,xspan,y0,N,’eulerstep’,’cnstep’);<br />
Hierbei s<strong>in</strong>d die gewählten Verfahren mit den folgenden Zeilen zu implementieren<br />
(Euler)<br />
function [y] = eulerstep(x,y0,h,fun)<br />
y = y0 + h*fun;<br />
return<br />
bzw. Crank-Nicolson<br />
function [y] = cnstep(x,y,y0,h,fun,funn,vararg<strong>in</strong>)<br />
y = y + 0.5*h*(feval(fun,x,y,vararg<strong>in</strong>{:})+funn)<br />
return<br />
C.4.2 MATLAB: Simpson<br />
Die Simpson Integration (siehe Anhang B.4) lässt sich <strong>in</strong> MATLAB r○ wie folgt kurz<br />
implementieren (siehe CD simpson.m).<br />
function [out] = simpson(a,b,M,fun,vararg<strong>in</strong>)<br />
% SIMPSON berechnet nach der Simpsonreg<strong>el</strong> das Integral e<strong>in</strong>er<br />
% gegebenen Funktion fun ueber dem Intervall [a,b] und<br />
% teilt dieses Intervall <strong>in</strong> M aequidistante Abschnitte e<strong>in</strong>.<br />
H=(b-a)/M;<br />
x=l<strong>in</strong>space(a,b,M+1);<br />
fpm=feval(fun,x,,vararg<strong>in</strong>{:});<br />
fpm(2:end-1)=2*fpm(2:end-1);<br />
out=H*sum(fpm)/6;<br />
x=l<strong>in</strong>space(a+H/2,b-H/2,M);<br />
fpm=feval(fun,x,,vararg<strong>in</strong>{:});<br />
out = out + 2*H*sum(fpm)/3;<br />
return<br />
C.5 V<strong>el</strong>ocity-Verlet Algorithmus<br />
E<strong>in</strong> weiterer ”<br />
ODE-Solver“ ist der sogenannte V<strong>el</strong>ocity-Verlet Algorithmus. Dieser<br />
Algorithmus ist durch e<strong>in</strong> Paar von Gleichungen gegeben<br />
x n+1 = x n + hx n + h2<br />
2m F (x n)<br />
(C.2)<br />
60
MATLAB<br />
und<br />
ẋ n+1 = ẋ n + h<br />
2m [F (x n+1) + F (x n )]<br />
(C.3)<br />
wobei x die Koord<strong>in</strong>ate und ẋ die Geschw<strong>in</strong>dikeit, m die Masse und F(x) die Kraft,<br />
w<strong>el</strong>che auf die Masse m am Punkt x wirkt.<br />
Im ersten Ansche<strong>in</strong> sieht diese Methode wie e<strong>in</strong>e Prädiktormethode aus, weil hier<br />
der Term x n+1 auftaucht. Dieser wird aber nicht wie bei den Prädiktor Methoden<br />
approximativ bestimmt sondern <strong>in</strong> Gleichung (C.2) zunächst bestimmt bevor er <strong>in</strong><br />
Gleichung (C.3) verwendet wird.<br />
Der Vorteil dieses Algorithmusses liegt dar<strong>in</strong>, dass er über lange Zeiträume <strong>in</strong>tegrieren<br />
kann, ohne das der Fehler zu groß wird.<br />
D MATLAB<br />
In diesem Abschnitt s<strong>in</strong>d die MATLAB r○ Dateien abgedruckt. Die Programme sowie<br />
die HTML-Dokumentation bef<strong>in</strong>den sich auf der beigefügten CD-Rom.<br />
D.1 particles<br />
function varargout = particles(vararg<strong>in</strong>)<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
% BEGIN HEAD (nicht aendern)<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
% Initialisierung des GUI und der mit ihm verbundenen Callbacks<br />
gui_S<strong>in</strong>gleton = 1;<br />
gui_State = struct(’gui_Name’, mfilename, ...<br />
’gui_S<strong>in</strong>gleton’, gui_S<strong>in</strong>gleton, ...<br />
’gui_Open<strong>in</strong>gFcn’, @particles_Open<strong>in</strong>gFcn, ...<br />
’gui_OutputFcn’, @particles_OutputFcn, ...<br />
’gui_LayoutFcn’, [] , ...<br />
’gui_Callback’, []);<br />
if narg<strong>in</strong> & isstr(vararg<strong>in</strong>{1})<br />
gui_State.gui_Callback = str2func(vararg<strong>in</strong>{1});<br />
end<br />
if nargout<br />
[varargout{1:nargout}] = gui_ma<strong>in</strong>fcn(gui_State, vararg<strong>in</strong>{:});<br />
<strong>el</strong>se<br />
gui_ma<strong>in</strong>fcn(gui_State, vararg<strong>in</strong>{:});<br />
end<br />
% Hier werden E<strong>in</strong>st<strong>el</strong>lungen getroffen, bevor das GUI sichtbar wird<br />
function particles_Open<strong>in</strong>gFcn(hObject, eventdata, handles, vararg<strong>in</strong>)<br />
handles.output = hObject;<br />
guidata(hObject, handles);<br />
% Anzeige des Tit<strong>el</strong>bildes und des Logos durch Axis-Objekte<br />
axes(handles.logo)<br />
[a,map]=imread(’logo.png’); image(a); colormap(map); axis equal, axis off<br />
axes(handles.plot_axis)<br />
[a,map]=imread(’title.png’); image(a); colormap(map); axis equal, axis off<br />
function varargout = particles_OutputFcn(hObject, eventdata, handles)<br />
61
D.1 particles MATLAB<br />
varargout{1} = handles.output;<br />
function figure1_CreateFcn(hObject, eventdata, handles)<br />
handles.figure1=hObject;<br />
guidata(hObject, handles);<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
% ENDE HEAD (nicht aendern)<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
% Patrick Daum, University of Osnabrueck<br />
%<br />
% (C) Version 1.0, 30-August-2004.<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
% PARTICLES ist e<strong>in</strong> GUI zur VISUALISIERUNG der Bewegung g<strong>el</strong>adener Teilchen<br />
% <strong>in</strong> <strong>el</strong>ektro<strong>magn</strong>etischen F<strong>el</strong>dern, es ist enstanden im Rahmen e<strong>in</strong>er<br />
% Bach<strong>el</strong>or-Arbeit<br />
% globale Variablen fuer die Bewegungen<br />
global ode;<br />
global bFi<strong>el</strong>dTyp bfi<strong>el</strong>dstrength;<br />
global eFi<strong>el</strong>dTyp efi<strong>el</strong>dstrength;<br />
global nLarmor;<br />
global charge; % Ladung<br />
global xposv yposv zposv<br />
global v<strong>el</strong>x v<strong>el</strong>y v<strong>el</strong>z<br />
% ODE Funktion<br />
% Variablen fuers B-F<strong>el</strong>d<br />
% Variablen fuers E-F<strong>el</strong>d<br />
% Anzahl der Larmorradien<br />
% Werte fuer die Position<br />
% Werte fuer die Geschw<strong>in</strong>digkeit<br />
% Initialisierung der globalen Variablen der Bewegungen<br />
ode = ’eqMotion’;<br />
bFi<strong>el</strong>dTyp=1; bfi<strong>el</strong>dstrength=1;<br />
eFi<strong>el</strong>dTyp=1; efi<strong>el</strong>dstrength=0.2;<br />
nLarmor=10;<br />
charge=1;<br />
xposv=1; yposv=0; zposv=0;<br />
v<strong>el</strong>x=4; v<strong>el</strong>y=4; v<strong>el</strong>z=4;<br />
% allgeme<strong>in</strong>e globale Variablen fuer die Steuerung des GUI’s<br />
global dimview solvername reTol aTol h<strong>el</strong>pfile<br />
% Initialisierung der globalen Variablen zur Steuerung<br />
dimview=’odephas3’;<br />
% Standardwert ist 3D, hierbei<br />
% werden die <strong>in</strong>tegrierten<br />
% Draw-Mechanismen von MATLAB<br />
% verwendet, fuer e<strong>in</strong>e<br />
% Aenderung laesst sich<br />
% mitt<strong>el</strong>s type die funktion<br />
% odephas3 betrachten<br />
solvername=’ode45’;<br />
reTol = 1.e-3;<br />
aTol = 1.e-10;<br />
% Standardwert ist RK4(5)<br />
% Toleranzwerte<br />
h<strong>el</strong>pfile =’particles.html’; % Onl<strong>in</strong>e Dokumentation, diese<br />
% kann <strong>in</strong> weiteren Versionen<br />
% geaendert werden<br />
% -----------------------------------------------------------------------------<br />
% PARAMETER<br />
62
D.1 particles MATLAB<br />
% -----------------------------------------------------------------------------<br />
% Funktion um die Notation <strong>in</strong> MATLAB zu unterstuetzen (TRUE falls alles<br />
% richtig, ansonsten FALSE)<br />
function syn = matlabsyn(value)<br />
syn=1;<br />
% TRUE Wert<br />
test= size(str2num(value));<br />
if (test(2)>=2 | test(2)==0)<br />
lab<strong>el</strong>=’Fehler bei E<strong>in</strong>gabe e<strong>in</strong>es Wertes; .-Notation verwenden, ke<strong>in</strong>e Charakter<br />
Zeichen’;<br />
msgbox(lab<strong>el</strong>,’SYNTAX FEHLER’,’error’);<br />
syn=0;<br />
% FALSE Wert<br />
end;<br />
% Funktion fuer exklusive Radiobuttons<br />
function mutual_exclude(off)<br />
set(off,’Value’,0)<br />
% Wert der e<strong>in</strong>z<strong>el</strong>nen Buttons, dadurch wird die Ladung gesetzt<br />
function qCharge=charge_value(handles)<br />
if (get(handles.<strong>el</strong>ecbutton,’Value’)==1)<br />
qCharge = (-1);<br />
<strong>el</strong>se<br />
qCharge = (1);<br />
end;<br />
% ==================== RADIOBUTTON (ELEKTRON) =================================<br />
function <strong>el</strong>ecbutton_Callback(hObject, eventdata, handles)<br />
% erzeugt e<strong>in</strong>en exklusiven Radiobutton, schaltet alle weiteren Buttons<br />
% aus<br />
off = [handles.protonbutton];<br />
mutual_exclude(off);<br />
% ==================== RADIOBUTTON ENDE========================================<br />
% ==================== RADIOBUTTON (PROTON) ===================================<br />
function protonbutton_Callback(hObject, eventdata, handles)<br />
% erzeugt e<strong>in</strong>en exklusiven Radiobutton, schaltet alle weiteren Buttons<br />
% aus<br />
off = [handles.<strong>el</strong>ecbutton];<br />
mutual_exclude(off)<br />
% ==================== RADIOBUTTON ENDE========================================<br />
% ==================== POSITIONEN =============================================<br />
% x-Position des Teilchens (Erzeugung/Auswertung) -----------------------------<br />
function xpos_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
% je nach Version bzw. THREAD Handl<strong>in</strong>g <strong>in</strong> MATLAB kann es dazu kommen, dass<br />
% nicht alle Objekte im handles Vektor aufgefuehrt werden, um dieses<br />
% abzufangen, wird dem handles Vektor jeweils das entsprechende handle bei<br />
% se<strong>in</strong>er Erzeugung uebergeben<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function xpos_Callback(hObject, eventdata, handles)<br />
63
D.1 particles MATLAB<br />
global xposv<br />
if matlabsyn(get(hObject,’Str<strong>in</strong>g’))<br />
xposv=str2double(get(hObject,’Str<strong>in</strong>g’));<br />
<strong>el</strong>se<br />
set(hObject,’Str<strong>in</strong>g’,num2str(xposv));<br />
end;<br />
% y-Position des Teilchens (Erzeugung/Auswertung) -----------------------------<br />
function ypos_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function ypos_Callback(hObject, eventdata, handles)<br />
global yposv<br />
if matlabsyn(get(hObject,’Str<strong>in</strong>g’))<br />
yposv=str2double(get(hObject,’Str<strong>in</strong>g’));<br />
<strong>el</strong>se<br />
set(hObject,’Str<strong>in</strong>g’,num2str(yposv));<br />
end;<br />
% z-Position des Teilchens (Erzeugung/Auswertung) -----------------------------<br />
function zpos_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function zpos_Callback(hObject, eventdata, handles)<br />
global zposv<br />
if matlabsyn(get(hObject,’Str<strong>in</strong>g’))<br />
zposv=str2double(get(hObject,’Str<strong>in</strong>g’));<br />
<strong>el</strong>se<br />
set(hObject,’Str<strong>in</strong>g’,num2str(zposv));<br />
end;<br />
% ==================== POSITIONEN ENDE ========================================<br />
% ==================== GESCHWINDIGKEITEN ======================================<br />
% x-Komponente der Geschw<strong>in</strong>digkeit (Erzeugug/Auswertung) ----------------------<br />
function xv<strong>el</strong>_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function xv<strong>el</strong>_Callback(hObject, eventdata, handles)<br />
global v<strong>el</strong>x<br />
if matlabsyn(get(hObject,’Str<strong>in</strong>g’))<br />
64
D.1 particles MATLAB<br />
v<strong>el</strong>x=str2double(get(hObject,’Str<strong>in</strong>g’));<br />
<strong>el</strong>se<br />
set(hObject,’Str<strong>in</strong>g’,num2str(v<strong>el</strong>x));<br />
end;<br />
% y-Komponente der Geschw<strong>in</strong>digkeit (Erzeugug/Auswertung) ----------------------<br />
function yv<strong>el</strong>_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function yv<strong>el</strong>_Callback(hObject, eventdata, handles)<br />
global v<strong>el</strong>y<br />
if matlabsyn(get(hObject,’Str<strong>in</strong>g’))<br />
v<strong>el</strong>y=str2double(get(hObject,’Str<strong>in</strong>g’));<br />
<strong>el</strong>se<br />
set(hObject,’Str<strong>in</strong>g’,num2str(v<strong>el</strong>y));<br />
end;<br />
% z-Komponente der Geschw<strong>in</strong>digkeit (Erzeugug/Auswertung) ----------------------<br />
function zv<strong>el</strong>_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function zv<strong>el</strong>_Callback(hObject, eventdata, handles)<br />
global v<strong>el</strong>z<br />
if matlabsyn(get(hObject,’Str<strong>in</strong>g’))<br />
v<strong>el</strong>z=str2double(get(hObject,’Str<strong>in</strong>g’));<br />
<strong>el</strong>se<br />
set(hObject,’Str<strong>in</strong>g’,num2str(v<strong>el</strong>z));<br />
end;<br />
% ==================== GESCHWINDIGKEITEN ENDE =================================<br />
% ==================== ITERATIONEN ============================================<br />
% diese Funktionen setzten den Wert der Larmorradien<br />
function currentiterations_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function currentiterations_Callback(hObject, eventdata, handles)<br />
global nLarmor<br />
% Syntax abfangen<br />
if matlabsyn(get(hObject,’Str<strong>in</strong>g’))<br />
65
D.1 particles MATLAB<br />
value =str2double(get(hObject,’Str<strong>in</strong>g’));<br />
<strong>el</strong>se<br />
value=set(hObject,’Str<strong>in</strong>g’,num2str(nLarmor));<br />
end;<br />
% Randwertfehler abfangen<br />
if (value
D.1 particles MATLAB<br />
function bstrength_Callback(hObject, eventdata, handles)<br />
global bfi<strong>el</strong>dstrength;<br />
% Randwertfehler abfangen<br />
value =str2double(get(hObject,’Str<strong>in</strong>g’));<br />
if (value
D.1 particles MATLAB<br />
set(hObject,’Str<strong>in</strong>g’,’1’);<br />
end;<br />
% Staerke auslesen und den Wert der <strong>el</strong>ek. F<strong>el</strong>dstaerke setzen<br />
efi<strong>el</strong>dstrength=str2double(get(hObject,’Str<strong>in</strong>g’));<br />
% ==================== ELEK STRENGTH ENDE =====================================<br />
% ==================== VIEW POPUP =============================================<br />
function viewmenue_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.epop=hObject;<br />
guidata(hObject, handles);<br />
function viewmenue_Callback(hObject, eventdata, handles)<br />
global dimview<br />
% setzen der Ansichtsvariablen<br />
switch num2str(get(hObject,’Value’))<br />
case ’1’<br />
% 3D<br />
dimview = ’odephas3’;<br />
case ’2’<br />
% 2D<br />
dimview = ’odephas2’;<br />
otherwise<br />
% Fehler anfangen falls falsches handle angepackt<br />
msgbox(’Diese Konfiguration existiert nicht’,’ERROR’,’error’);<br />
end<br />
% ==================== VIEW POPUP ENDE ========================================<br />
% -----------------------------------------------------------------------------<br />
% BUTTONS<br />
% -----------------------------------------------------------------------------<br />
% ==================== START Button ===========================================<br />
function start_Callback(hObject, eventdata, handles)<br />
global reTol aTol solvername charge<br />
charge = charge_value(handles);<br />
hold off;<br />
drawTraj;<br />
rotate3d on;<br />
hold on;<br />
% ==================== STOP Button ===========================================<br />
function stop_Callback(hObject, eventdata, handles)<br />
% stoppt den Plot ueber die Funktion des odeset OutputFcn<br />
ud=get(gcf,’UserData’);<br />
ud.stop=1;<br />
set(gcf,’UserData’,ud);;<br />
% ==================== ADD Button ============================================<br />
function add_Callback(hObject, eventdata, handles)<br />
global reTol aTol solvername charge dimview<br />
% neuen Wert fuer die Ladung holen<br />
charge = charge_value(handles);<br />
% neue Trajektorie plotten<br />
drawTraj;<br />
% DIRTY TRICK !!!! basiert auf e<strong>in</strong>em Skalierungsfehler <strong>in</strong> odephas3<br />
68
D.1 particles MATLAB<br />
% daher ist es noetig das Axis Objekt zu drehen und e<strong>in</strong>en refresh zu machen<br />
% um die neue Skalierung zu bekommen<br />
if dimview==’odephas3’<br />
rot = [1 0 0];<br />
<strong>el</strong>se<br />
rot = [1 0];<br />
end;<br />
% durch die Drehung werden die Skalierungen und das Aspect-Ratio besser<br />
% gesetzt<br />
rotate(handles.plot_axis,rot,1);<br />
refresh;<br />
rotate3d on;<br />
view(30,10);<br />
% ==================== CLEAR Button ===========================================<br />
function clear_Callback(hObject, eventdata, handles)<br />
axes(handles.plot_axis)<br />
cla;<br />
% ==================== SOLVER Button ==========================================<br />
function solverbutton_Callback(hObject, eventdata, handles)<br />
% ruft den Solver Controller auf<br />
solvercontrol;<br />
% ==================== HELP Button ============================================<br />
function h<strong>el</strong>pbutton_Callback(hObject, eventdata, handles)<br />
global h<strong>el</strong>pfile<br />
% Zunaechst muss ueberprueft werden ob die Hilfe Datei zur Verfuegung steht<br />
if (exist(h<strong>el</strong>pfile)==0)<br />
msgbox(’Die Onl<strong>in</strong>e Dokumentation kann nicht gefunden werden’,’ERROR’,’error’);<br />
<strong>el</strong>se<br />
% kann die Onl<strong>in</strong>e Dokumentation aufgerufen werden<br />
H<strong>el</strong>pPath = which(h<strong>el</strong>pfile);<br />
web(H<strong>el</strong>pPath);<br />
end;<br />
% ==================== CLOSE Button ===========================================<br />
function close_Callback(hObject, eventdata, handles)<br />
% schliesst das komplette figure des GUI’s<br />
close(gcf);<br />
disp(’DANKE das Sie mit particles gearbeitet haben !’)<br />
% -----------------------------------------------------------------------------<br />
% MENUEBAR<br />
% -----------------------------------------------------------------------------<br />
% ==================== DATEI MENUE ============================================<br />
function datei_Callback(hObject, eventdata, handles)<br />
% ==================== FIGNEW EINTRAG ========================================<br />
function fignew_Callback(hObject, eventdata, handles)<br />
% Dieser Menuepunkt ermoeglicht es die Simulation <strong>in</strong> e<strong>in</strong>em eigenen<br />
% Figure-Objekt abzuspi<strong>el</strong>en, damit man dieses dann mit den Optionen der <strong>in</strong><br />
% MATLAB <strong>in</strong>tegrierten FIGURE TOOLBox bearbeiten kann<br />
figure % neues Figure wird erzeugt<br />
% Simulation mit den Parametern wird <strong>in</strong> e<strong>in</strong>em eigenen Figure Objekt erzeugt<br />
start_Callback(hObject, eventdata, handles);<br />
69
D.2 eqMotion MATLAB<br />
% ==================== TAKEOVER EINTRAG ======================================<br />
function takeover_Callback(hObject, eventdata, handles)<br />
% neues Figure erzeugen<br />
figure<br />
% Das Axis Objekt aus dem GUI kopieren, da<br />
h<strong>el</strong>p=copyobj(handles.plot_axis,gcf);<br />
% da beim Kopieren die Position <strong>in</strong>nerhalb des GUI’s uebernommen wird,<br />
% muessen die Positionen neu gesetzt werden<br />
set(h<strong>el</strong>p,’Position’,[18 5 80 25])<br />
rotate3d on;<br />
% ==================== HILFE MENUE ============================================<br />
function h<strong>el</strong>p_Callback(hObject, eventdata, handles)<br />
% ==================== HILFE EINTRAG ==========================================<br />
function prog_h<strong>el</strong>p_Callback(hObject, eventdata, handles)<br />
% gleiche Funktion wie der im GUI implementierte HELP-Button<br />
h<strong>el</strong>pbutton_Callback(hObject, eventdata, handles)<br />
% ==================== HILFE EINTRAG ==========================================<br />
function <strong>in</strong>fo_Callback(hObject, eventdata, handles)<br />
<strong>in</strong>formation;<br />
% -----------------------------------------------------------------------------<br />
% VISUALISIERUNG<br />
% -----------------------------------------------------------------------------<br />
function out = drawTraj;<br />
global ode dimview solvername reTol aTol<br />
%figNumber = watchon;<br />
%h = get(figNumber,’Children’);<br />
rotate3d on;<br />
%watchoff(figNumber);<br />
% !!!!!!!!!!!!!!!!!!!!! ODE STEUERUNG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
[tspan,y0,options] = feval(ode,[],[],’<strong>in</strong>it’);<br />
options = odeset(options,’R<strong>el</strong>Tol’,reTol,’AbsTol’,aTol,’OutputFcn’,dimview);<br />
feval(solvername,ode,tspan,y0,options);<br />
xlab<strong>el</strong>(’x’); ylab<strong>el</strong>(’y’); zlab<strong>el</strong>(’z’);<br />
% !!!!!!!!!!!!!!!!!!!!!!!!! ENDE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
D.2 eqMotion<br />
function varargout = eqMotion(t,v,flag)<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
% Patrick Daum, University of Osnabrueck<br />
%<br />
% (C) Version 1.0, 30-August-2004.<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
global mass B0 E0 R0 m0 v<strong>el</strong>scala<br />
% globale vordef<strong>in</strong>ierte Variablen, diese s<strong>in</strong>d <strong>in</strong> r<strong>el</strong>ativen E<strong>in</strong>heiten angegeben<br />
mass = 1; % r<strong>el</strong>ativ zu e<strong>in</strong>er Protonenmasse<br />
R0 = 1; % r<strong>el</strong>ativ zu e<strong>in</strong>em Erdradius<br />
m0 = 1; % r<strong>el</strong>ativ zum Dipolmoment der Erde<br />
v<strong>el</strong>scala = 1.e-2;<br />
% r<strong>el</strong>ativ Skalierung der Geschw<strong>in</strong>-<br />
70
D.2 eqMotion MATLAB<br />
% digkeit kann bei Aenderung der<br />
% r<strong>el</strong>ativen E<strong>in</strong>heiten auf 1<br />
% gesetzt werden<br />
% diese Variablen werden an dieser St<strong>el</strong>le nur fuer eventu<strong>el</strong>le Erweiterungen<br />
% bzw. Anwendungen auf spezi<strong>el</strong>le F<strong>el</strong>der e<strong>in</strong>gefuehrt, durch die e<strong>in</strong>z<strong>el</strong>ne<br />
% F<strong>el</strong>dstaerke, die im GUI e<strong>in</strong>gegeben wird kann die Staerke der F<strong>el</strong>der direkt<br />
% gesteuert werden<br />
B0 = 1;<br />
E0 = 1;<br />
% globale Variablen<br />
global ode<br />
global bFi<strong>el</strong>dTyp bfi<strong>el</strong>dstrength<br />
global eFi<strong>el</strong>dTyp efi<strong>el</strong>dstrength<br />
global nLarmor<br />
% ODE Funktion<br />
% Variablen fuers B-F<strong>el</strong>d<br />
% Variablen fuers E-F<strong>el</strong>d<br />
% Anzahl der Larmorradien<br />
% Kontroll-Funktion des <strong>in</strong>itialisierenden Aufrufs<br />
switch flag<br />
case ’’<br />
% liefert dv/dt = f(t,v) zurueck<br />
varargout{1} = f(t,v);<br />
case ’<strong>in</strong>it’<br />
% liefert [tspan,y0,options] zurueck<br />
[varargout{1:3}] = <strong>in</strong>it;<br />
otherwise<br />
error([’Unknown flag ’’’ flag ’’’.’]);<br />
end<br />
function dydt = f(t,v)<br />
% ===== Bewegungsgleichung =================================================<br />
% setzen der Globalen Variablen<br />
global ode<br />
global bFi<strong>el</strong>dTyp bfi<strong>el</strong>dstrength<br />
global eFi<strong>el</strong>dTyp efi<strong>el</strong>dstrength<br />
global charge mass B0 E0 R0 m0 q<br />
%<br />
[E,B] = feval(’EandB’,v(1),v(2),v(3),t);<br />
% Hier ist die Newton’sche Bewegungsgleichung <strong>in</strong> vektori<strong>el</strong>ler Form<br />
% dargest<strong>el</strong>lt; die Positionen v(1:3,:) st<strong>el</strong>len die Position des Teilchens und<br />
% v(4:6,:) die Geschw<strong>in</strong>digkeit des Teilchens dar<br />
dydt = [ v(4,:)<br />
v(5,:)<br />
v(6,:)<br />
charge/mass*( E(1) +(v(5,:).*B(3) -v(6,:).*B(2)) )<br />
charge/mass*( E(2) +(v(6,:).*B(1) -v(4,:).*B(3)) )<br />
charge/mass*( E(3) +(v(4,:).*B(2) -v(5,:).*B(1)) )<br />
];<br />
% Diese Funktion st<strong>el</strong>lt die e<strong>in</strong>z<strong>el</strong>nen F<strong>el</strong>dstrukturen zusammen<br />
function [E,B] = EandB(x,y,z,t)<br />
global charge mass B0 E0 R0 m0<br />
global bFi<strong>el</strong>dTyp bfi<strong>el</strong>dstrength<br />
global eFi<strong>el</strong>dTyp efi<strong>el</strong>dstrength<br />
% B-FELD: Def<strong>in</strong>ition der e<strong>in</strong>z<strong>el</strong>nen F<strong>el</strong>dstrukturen<br />
switch num2str(bFi<strong>el</strong>dTyp)<br />
71
D.2 eqMotion MATLAB<br />
case ’1’ % B=0<br />
B = B0*[ 0 0 0 ];<br />
case ’2’<br />
% Bz<br />
B = B0*[ 0 0 bfi<strong>el</strong>dstrength ];<br />
case ’3’<br />
% dBz/dy<br />
B = B0*[ 0 0 1+bfi<strong>el</strong>dstrength*y ];<br />
case ’4’<br />
% dBz/dz cusp<br />
B = B0*[ -0.5*x (-1)*bfi<strong>el</strong>dstrength*y bfi<strong>el</strong>dstrength*z];<br />
case ’5’<br />
% B toroidal<br />
% Verwendung von Toroidal Koord<strong>in</strong>aten<br />
R = sqrt(x^2 +y^2 + 1.e-10); cosphi = x/R; s<strong>in</strong>phi = y/R;<br />
B = B0*(R0/R)*[ -s<strong>in</strong>phi cosphi 0 ]*bfi<strong>el</strong>dstrength;<br />
case ’6’<br />
% B tokamak<br />
% Verwendung von Toroidal Koord<strong>in</strong>aten<br />
R = sqrt(x^2 +y^2 + 1.e-10); cosphi = x/R; s<strong>in</strong>phi = y/R;<br />
rho = sqrt((R-R0)^2 + z^2+1.e-10); s<strong>in</strong>t = -z/rho; cost = (R-R0)/rho;<br />
Bt = B0 * (R0/R)*[-s<strong>in</strong>phi cosphi 0];<br />
Bp = B0 *(rho/R)*[-cosphi*s<strong>in</strong>t -s<strong>in</strong>phi*s<strong>in</strong>t -cost ];<br />
B = Bt +Bp/q;<br />
case ’7’<br />
% B dipole<br />
r2 = x^2 +y^2 +z^2;<br />
B = m0*r2^(-2.5)*[ 3*x*z 3*y*z 3*z^2-r2]*bfi<strong>el</strong>dstrength;<br />
case ’8’<br />
% user def<strong>in</strong>ed<br />
%<br />
% ==> Hier kann e<strong>in</strong> b<strong>el</strong>iebiges Vektorf<strong>el</strong>d e<strong>in</strong>gefuegt werden<br />
%<br />
otherwise<br />
% Hier wird der Fehler, der schon im GUI abgefangen wird nochmals zur<br />
% Sicherheit ueberprueft<br />
msgbox(’Diese Konfiguration existiert nicht’,’ERROR’,’error’);<br />
end<br />
Btot = norm(B); OmegaC=charge/mass*norm(B);<br />
% E-FELD: Def<strong>in</strong>ition der e<strong>in</strong>z<strong>el</strong>nen F<strong>el</strong>dstrukturen<br />
switch num2str(eFi<strong>el</strong>dTyp)<br />
case ’1’ % E=0<br />
E = E0*[ 0 0 0 ];<br />
case ’2’<br />
% Ex<br />
E = E0*[ efi<strong>el</strong>dstrength 0 0 ];<br />
case ’3’<br />
% Ez<br />
E = E0*[ 0 0 efi<strong>el</strong>dstrength ];<br />
case ’4’<br />
% dEy/dt<br />
E = E0*[ 0 t*charge/mass*Btot 0]*efi<strong>el</strong>dstrength;<br />
case ’5’<br />
% user def<strong>in</strong>ed<br />
%<br />
% ==> Hier kann e<strong>in</strong> b<strong>el</strong>iebiges Vektorf<strong>el</strong>d e<strong>in</strong>gefuegt werden<br />
%<br />
otherwise<br />
% Hier wird der Fehler, der schon im GUI abgefangen wird nochmals zur<br />
% Sicherheit ueberprueft<br />
msgbox(’Diese Konfiguration existiert nicht’,’ERROR’,’error’);<br />
end<br />
% diese Funktion setzt die <strong>in</strong>itialisierenden Werte fuer die Berechnung<br />
function [tspan,y0,options] = <strong>in</strong>it<br />
global charge mass B0 E0 R0 m0 nLarmor v<strong>el</strong>scala<br />
global xposv yposv zposv v<strong>el</strong>x v<strong>el</strong>y v<strong>el</strong>z<br />
72
D.3 solvercontrol MATLAB<br />
OmegaC0 = charge/mass*B0; % Gyrationsfrequenz<br />
tspan = [0 nLarmor*OmegaC0*(2*pi)]; % Zeit ueber die entwick<strong>el</strong>t werden soll<br />
y0 = [<br />
% Startkoord<strong>in</strong>aten und Geschw<strong>in</strong>digkeiten<br />
xposv<br />
% x<br />
yposv<br />
% y<br />
zposv<br />
% z<br />
v<strong>el</strong>x*v<strong>el</strong>scala % vx<br />
v<strong>el</strong>y*v<strong>el</strong>scala % vy<br />
v<strong>el</strong>z*v<strong>el</strong>scala % vz<br />
];<br />
options = odeset(’Vectorized’,’on’);<br />
D.3 solvercontrol<br />
function varargout = solvercontrol(vararg<strong>in</strong>)<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
% BEGIN HEAD (nicht aendern)<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
% Initialisierung des GUI und der mit ihm verbundenen Callbacks<br />
gui_S<strong>in</strong>gleton = 1;<br />
gui_State = struct(’gui_Name’, mfilename, ...<br />
’gui_S<strong>in</strong>gleton’, gui_S<strong>in</strong>gleton, ...<br />
’gui_Open<strong>in</strong>gFcn’, @solvercontrol_Open<strong>in</strong>gFcn, ...<br />
’gui_OutputFcn’, @solvercontrol_OutputFcn, ...<br />
’gui_LayoutFcn’, [] , ...<br />
’gui_Callback’, []);<br />
if narg<strong>in</strong> & isstr(vararg<strong>in</strong>{1})<br />
gui_State.gui_Callback = str2func(vararg<strong>in</strong>{1});<br />
end<br />
if nargout<br />
[varargout{1:nargout}] = gui_ma<strong>in</strong>fcn(gui_State, vararg<strong>in</strong>{:});<br />
<strong>el</strong>se<br />
gui_ma<strong>in</strong>fcn(gui_State, vararg<strong>in</strong>{:});<br />
end<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
% ENDE HEAD (nicht aendern)<br />
% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
% Patrick Daum, University of Osnabrueck<br />
%<br />
% (C) Version 1.0, 30-August-2004.<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
% SOLVERCONTROL steuert die e<strong>in</strong>z<strong>el</strong>nen Optionen, die den ODE Solvern uebergeben<br />
% werden koennen<br />
% globale Variablen def<strong>in</strong>ieren<br />
global default_aTol default_reTol<br />
% Initialisierung der globalen Variablen, diese kommen zwar <strong>in</strong> particles.m schon<br />
% vor, s<strong>in</strong>d aber hier zur Absicherung nochmals als eigene Default Werte<br />
% deklariert, des weiteren dienen diese als E<strong>in</strong>tragsstr<strong>in</strong>g<br />
default_aTol = ’1.e-10’;<br />
default_reTol = ’1.e-3’;<br />
function solvercontrol_Open<strong>in</strong>gFcn(hObject, eventdata, handles, vararg<strong>in</strong>)<br />
73
D.3 solvercontrol MATLAB<br />
global aTol reTol solvername<br />
handles.output = hObject;<br />
guidata(hObject, handles);<br />
% setzen der momentan vorhandenen Parameter<br />
set(handles.abs_tol,’Str<strong>in</strong>g’,num2str(aTol));<br />
set(handles.r<strong>el</strong>_tol,’Str<strong>in</strong>g’,num2str(reTol));<br />
switch solvername<br />
case ’ode45’<br />
% zunaechst werden die anderen Radiobuttons ausgeschaltet<br />
ode45_Callback(hObject, eventdata, handles);<br />
% setzen des Default ODE-Solvers<br />
set(handles.ode45,’Value’,1);<br />
case ’ode23’<br />
% zunaechst werden die anderen Radiobuttons ausgeschaltet<br />
ode23_Callback(hObject, eventdata, handles);<br />
% setzen des Default ODE-Solvers<br />
set(handles.ode23,’Value’,1);<br />
case ’ode113’<br />
% zunaechst werden die anderen Radiobuttons ausgeschaltet<br />
ode113_Callback(hObject, eventdata, handles);<br />
% setzen des Default ODE-Solvers<br />
set(handles.ode113,’Value’,1);<br />
case ’ode15s’<br />
% zunaechst werden die anderen Radiobuttons ausgeschaltet<br />
ode15s_Callback(hObject, eventdata, handles);<br />
% setzen des Default ODE-Solvers<br />
set(handles.ode15s,’Value’,1);<br />
otherwise<br />
% Sicherheitsueberpruefung<br />
msgbox(’Diese Konfiguration existiert nicht’,’ERROR’,’error’);<br />
end;<br />
function varargout = solvercontrol_OutputFcn(hObject, eventdata, handles)<br />
varargout{1} = handles.output;<br />
% -----------------------------------------------------------------------------<br />
% PARAMETER<br />
% -----------------------------------------------------------------------------<br />
% Funktion fuer exklusive Radiobuttons<br />
function mutual_exclude(off)<br />
set(off,’Value’,0)<br />
% ==================== RADIOBUTTON (ODE45) ====================================<br />
function ode45_Callback(hObject, eventdata, handles)<br />
off = [handles.ode23,handles.ode113,handles.ode15s];<br />
mutual_exclude(off)<br />
% ==================== RADIOBUTTON (ODE45) ENDE ===============================<br />
% ==================== RADIOBUTTON (ODE23) ====================================<br />
function ode23_Callback(hObject, eventdata, handles)<br />
off = [handles.ode45,handles.ode113,handles.ode15s];<br />
mutual_exclude(off)<br />
% ==================== RADIOBUTTON (ODE23) ENDE ===============================<br />
% ==================== RADIOBUTTON (ODE113) ===================================<br />
function ode113_Callback(hObject, eventdata, handles)<br />
74
D.3 solvercontrol MATLAB<br />
off = [handles.ode45,handles.ode23,handles.ode15s];<br />
mutual_exclude(off)<br />
% ==================== RADIOBUTTON (ODE113) ENDE ==============================<br />
% ==================== RADIOBUTTON (ODE15s) ===================================<br />
function ode15s_Callback(hObject, eventdata, handles)<br />
off = [handles.ode45,handles.ode23,handles.ode113];<br />
mutual_exclude(off)<br />
% ==================== RADIOBUTTON (ODE15s) ENDE ==============================<br />
% ==================== TOLERANZEN =============================================<br />
% absolute Toleranz -----------------------------------------------------------<br />
function abs_tol_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function abs_tol_Callback(hObject, eventdata, handles)<br />
global default_aTol<br />
% Randwertfehler abfangen<br />
value =str2double(get(hObject,’Str<strong>in</strong>g’));<br />
if (value= 0 se<strong>in</strong>’,’ERROR’,’error’);<br />
set(hObject,’Str<strong>in</strong>g’,default_aTol);<br />
end;<br />
% r<strong>el</strong>ative Toleranz -----------------------------------------------------------<br />
function r<strong>el</strong>_tol_CreateFcn(hObject, eventdata, handles)<br />
if ispc<br />
set(hObject,’BackgroundColor’,’white’);<br />
<strong>el</strong>se<br />
set(hObject,’BackgroundColor’,get(0,’defaultUicontrolBackgroundColor’));<br />
end<br />
handles.<strong>magn</strong>pop=hObject;<br />
guidata(hObject, handles);<br />
function r<strong>el</strong>_tol_Callback(hObject, eventdata, handles)<br />
global default_reTol<br />
% Randwertfehler abfangen<br />
value =str2double(get(hObject,’Str<strong>in</strong>g’));<br />
if (value 0 se<strong>in</strong>’,’ERROR’,’error’);<br />
set(hObject,’Str<strong>in</strong>g’,default_reTol);<br />
end;<br />
% ==================== TOLERANZEN =============================================<br />
% -----------------------------------------------------------------------------<br />
% BUTTONS<br />
% -----------------------------------------------------------------------------<br />
% ==================== BACK BUTTON =============================================<br />
function backbutton_Callback(hObject, eventdata, handles)<br />
global aTol reTol solvername<br />
% Fragt alle gesetzten GUI Elemente nach ihrem Wert ab und setzt die<br />
75
D.3 solvercontrol MATLAB<br />
% entsprechenden globalen Variablen<br />
% setzen der Toleranzwerte, durch die Bed<strong>in</strong>gungen <strong>in</strong> den Parameter Objekten<br />
% ist e<strong>in</strong> falscher Wert abgefangen worden<br />
aTol=str2double(get(handles.abs_tol,’Str<strong>in</strong>g’))<br />
reTol=str2double(get(handles.r<strong>el</strong>_tol,’Str<strong>in</strong>g’))<br />
% Abfragen der e<strong>in</strong>z<strong>el</strong>nen RADIO-Buttons, man koennte hier durch exklusives<br />
% <strong>el</strong>se if e<strong>in</strong>e if Abfrage sparen, dieses traegt allerd<strong>in</strong>gs nicht zur<br />
% Lesbarkeit des Codes bei<br />
if (get(handles.ode45,’Value’)==1)<br />
solvername = ’ode45’;<br />
end;<br />
if (get(handles.ode23,’Value’)==1)<br />
solvername = ’ode23’;<br />
end;<br />
if (get(handles.ode113,’Value’)==1)<br />
solvername = ’ode113’;<br />
end;<br />
if (get(handles.ode15s,’Value’)==1)<br />
solvername = ’ode15s’;<br />
end;<br />
close(gcf);<br />
% schliessen des Controllers<br />
% ==================== BACK BUTTON ENDE =======================================<br />
% ==================== DEFAULT BUTTON =========================================<br />
function defaultbutton_Callback(hObject, eventdata, handles)<br />
global default_aTol default_reTol<br />
% setzt alle Werte auf die Default-Werte<br />
set(handles.abs_tol,’Str<strong>in</strong>g’,default_aTol);<br />
set(handles.r<strong>el</strong>_tol,’Str<strong>in</strong>g’,default_reTol);<br />
% zunaechst werden die anderen Radiobuttons ausgeschaltet<br />
ode45_Callback(hObject, eventdata, handles);<br />
% setzen des Default ODE-Solvers<br />
set(handles.ode45,’Value’,1);<br />
% ==================== DEFAULT BUTTON ENDE ====================================<br />
76
Danksagungen<br />
Diese Bach<strong>el</strong>or Arbeit entstand <strong>in</strong> der Arbeitsgruppe ”<br />
Umw<strong>el</strong>tphysik“ des Fachbereiches<br />
Physik an der Universität Osnabrück.<br />
Me<strong>in</strong> Dank gilt den Mitarbeitern der Arbeitsgruppe für die Unterstützung sowie<br />
Motivation und Frau Prof. Dr. May-Britt Kallenrode für die ausserordentlich <strong>in</strong>teressante<br />
Themenst<strong>el</strong>lung und die Begleitung bei dieser Arbeit. Me<strong>in</strong> besonderer<br />
Dank gilt Herrn PD. Dr. Bernd Heber für se<strong>in</strong>e Betreuung und se<strong>in</strong> Engagement.<br />
Se<strong>in</strong>e Vorlesungen und se<strong>in</strong>e Art der Lehre, gerade im Bereich der st<strong>el</strong>laren und<br />
<strong>in</strong>terst<strong>el</strong>laren Physik haben mich dazu veranlasst, me<strong>in</strong>e Bach<strong>el</strong>or Arbeit <strong>in</strong> diesem<br />
Bereich der Physik zu verfassen und mich auch <strong>in</strong> Zukunft <strong>in</strong> dieser Richtung zu<br />
orientieren.<br />
E<strong>in</strong> ganz besonderer Dank gilt me<strong>in</strong>en Eltern und me<strong>in</strong>er Familie, die mir das Studium<br />
der Physik erst ermöglicht haben und die mir immer f<strong>in</strong>anzi<strong>el</strong>l und mental zu<br />
Seite gestanden haben.<br />
Eidesstattliche Erklärung<br />
Hiermit erkläre ich an Eides statt, dass ich die vorliegende Bach<strong>el</strong>or Arbeit s<strong>el</strong>bstständig<br />
verfasst, ke<strong>in</strong>e anderen als die angegebenen Hilfsmitt<strong>el</strong> verwendet und zuvor<br />
noch ke<strong>in</strong>e Bach<strong>el</strong>or Prüfung abg<strong>el</strong>egt habe.<br />
Osnabrück, den 29. August 2004<br />
Patrick Daum
Soweit sich die Gesetze der Mathematik auf die Wirklichkeit beziehen,<br />
”<br />
s<strong>in</strong>d sie nicht gewiß, und soweit sie gewiß s<strong>in</strong>d, beziehen sie sich nicht<br />
auf die Wirklichkeit.“ (Albert E<strong>in</strong>ste<strong>in</strong>)<br />
Dieses soll als Schlusswort dieser Arbeit g<strong>el</strong>ten, die besprochenen Gleichungen und<br />
Prozesse s<strong>in</strong>d zwar <strong>in</strong> vi<strong>el</strong>er H<strong>in</strong>sicht bis <strong>in</strong>s kle<strong>in</strong>ste erforscht und beschrieben, jedoch<br />
st<strong>el</strong>lt das Mitt<strong>el</strong> der Numerik wahrsche<strong>in</strong>lich die Wirklichkeit <strong>in</strong> ihrer, <strong>in</strong> ihr s<strong>el</strong>bst<br />
<strong>in</strong>ne ruhenden Ungenauigkeit am besten dar.