24.02.2014 Aufrufe

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!