Maxwell verstehen

Elektrodynamik mit Python und numerischen Methoden

Autoren

Dipl. Ing. Sören Gebbert

Claude Fable 5

Veröffentlichungsdatum

20. Juni 2026

Vorwort

Worum es geht

Vier Gleichungen beschreiben alles, was Licht, Funk, Strom und Magnetismus tun: die Maxwell-Gleichungen. Dieses Buch erklärt sie nicht mit Formelseiten, sondern mit Python: Jede Größe, jede Gleichung, jedes Phänomen wird sofort numerisch angefasst — Code ausführen, Bild ansehen, verstehen.

Der Weg ist lang, aber er führt weit: von den ersten Pfeilen eines Vektorfeldes (Kapitel 1) über ein selbstgebautes Simulationsprogramm aus dreißig Zeilen NumPy (Teil II) bis zu Antennen, photonischen Kristallen, Metamaterialien und einem Computer, der optische Bauteile selbst entwirft (Teil VIII). Die acht Teile bauen streng aufeinander auf — das Buch ist zum linearen Lesen gedacht, jedes Kapitel benutzt, was die früheren aufgebaut haben. Wer am Ende noch nicht genug hat, findet eine Zugabe: dieselben Gleichungen, übersetzt in die Welt des Schalls und gebaut aus Holzdübeln (Kapitel 32).

Du brauchst dafür:

  • Python-Grundkenntnisse (Schleifen, Funktionen, NumPy-Arrays werden benutzt, aber jede neue Bibliotheksfunktion wird beim ersten Auftreten erklärt),
  • Schulmathematik (Sinus, Vektoren als Pfeile, Steigung). Alles darüber hinaus — Ableitungen von Feldern, Rotation, komplexe Zahlen — wird in diesem Buch von Grund auf entwickelt, und zwar numerisch: Eine Ableitung ist hier zuerst eine Differenz zweier Array-Einträge, dann erst ein Symbol.

Wie man dieses Buch liest

Dieses Buch ist zum Mitmachen gebaut, nicht zum Durchblättern. Ein paar wiederkehrende Bausteine solltest du kennen:

  • Vorhersage-Punkte — vor größeren Programmläufen wirst du gefragt: „Was erwartest du — und warum?“ Halte kurz inne und lege dich fest, bevor du weiterliest. Dieses Festlegen (auch wenn die Vorhersage danebenliegt — gerade dann) ist der wirksamste Lernschritt im Buch.
  • „Naheliegende Vermutung”-Kästchen — viele Fehlvorstellungen über Felder sind völlig vernünftig und trotzdem falsch. Diese Kästchen nehmen die Vermutung ernst, erklären, warum sie naheliegt — und was stattdessen stimmt.
  • Merkkästen — die drei bis fünf Sätze, die vom Kapitel bleiben sollen.
  • Roter Faden — jedes Kapitel sagt am Ende, wo seine Ideen schon vorkamen und wo sie wieder auftauchen.
  • Übungen — gestuft in Verstehen (ohne Rechner beantwortbar), Verändern (das Kapitel-Programm gezielt umbauen) und Übertragen (etwas Eigenes damit bauen). Musterlösungen sind in der HTML-Fassung aufklappbar.

Dieses Buch gibt es in zwei Fassungen aus einer Quelle. Die HTML-Fassung ist lebendig: Viele Abbildungen sind in Wahrheit Animationen mit Abspielknopf (eine Welle, die wirklich läuft, sagt mehr als jedes Standbild), und am Ende der meisten Kapitel stehen Spielwiesen — kleine Programme, die direkt im Browser laufen und die du an Ort und Stelle umschreiben kannst: an einer Schraube drehen, „Run” drücken, das Ergebnis sehen. Die PDF-Fassung ist fürs Drucken und Offline-Lesen gedacht; dort werden aus den Animationen Standbild-Streifen, und die Bildunterschrift nennt den Namen der zugehörigen Datei. Wer also die volle Wirkung will, liest am Bildschirm und probiert mit.

Und eine Verabredung zum Code: Die Code-Zellen eines Kapitels teilen sich ihren Zustand — wie die Zellen eines Notebooks. Importe, Konstanten und Funktionen gelten ab ihrer ersten Zelle im ganzen Kapitel weiter; import numpy as np und matplotlib stehen deshalb nur einmal am Kapitelanfang. Damit du nie rätseln musst, wo ein Name herkommt, beginnt jede Zelle, die Definitionen aus früheren Zellen benutzt, mit einem Herkunfts-Kommentar:

# von oben: simuliere(), gauss(), X   (Abschnitt „Das Labor")

Das gilt auch für importierte Naturkonstanten wie c, mu_0 oder epsilon_0 (sie kommen stets aus scipy.constants) — nur die Modul-Kürzel np und plt werden nicht eigens erwähnt.

Zwischen den Kapiteln wird dagegen nichts geteilt — jedes Kapitel startet frisch. Und wer alles an einem Stück sehen will: Jedes Kapitel hat ein eigenständiges Programm in programme/kapNN/ — ein gewöhnliches .py-Skript ohne jeden versteckten Zustand, das du ohne das Buch ausführen, lesen und umbauen kannst.

Notation

Diese Symbole tauchen im ganzen Buch auf; jedes wird bei seinem ersten Auftritt ausführlich eingeführt. Die Tabelle ist zum Zurückblättern da.

Symbol Bedeutung Einheit
\(\vec{E}\) elektrisches Feld V/m
\(\vec{H}\), \(\vec{B}\) magnetisches Feld / Flussdichte A/m, T
\(\rho\), \(\vec{J}\) Ladungsdichte, Stromdichte C/m³, A/m²
\(\varepsilon_0\), \(\mu_0\) elektrische / magnetische Feldkonstante As/(Vm), Vs/(Am)
\(c\) Lichtgeschwindigkeit, \(c = 1/\sqrt{\varepsilon_0\mu_0}\) m/s
\(f\), \(\omega\) Frequenz, Kreisfrequenz \(\omega = 2\pi f\) Hz, 1/s
\(\lambda\), \(k\) Wellenlänge, Wellenzahl \(k = 2\pi/\lambda\) m, 1/m
\(\vec{S}\) Poynting-Vektor \(\vec{S} = \vec{E} \times \vec{H}\) W/m²
\(\nabla\cdot\), \(\nabla\times\) Divergenz (Quellstärke), Rotation (Wirbelstärke)
\(\Delta x\), \(\Delta t\) Gitterabstand, Zeitschritt (Numerik) m, s

Die Einheiten dahinter

Alle Einheiten der Tabelle sind aus diesen Bausteinen zusammengesetzt. Die Alltagsanker geben ein Gefühl für die Größenordnung:

Einheit Name misst Alltagsanker
m Meter Länge
s Sekunde Zeit
kg Kilogramm Masse
A Ampere elektrischen Strom (Ladung pro Sekunde) Haushaltssicherung 16 A
C Coulomb elektrische Ladung; 1 C = 1 As ein Blitz: einige C
V Volt elektrische Spannung — den „Antrieb” pro Ladung Batterie 1,5 V; Steckdose 230 V
J Joule Energie 1 g Schokolade ≈ 20 000 J
W Watt Leistung (Energie pro Sekunde); 1 W = 1 J/s LED-Lampe ≈ 5 W; Wasserkocher ≈ 2000 W
Hz Hertz Frequenz (Schwingungen pro Sekunde); 1 Hz = 1/s Stromnetz 50 Hz; WLAN 2,4 GHz
T Tesla magnetische Flussdichte; 1 T = 1 Vs/m² Erdmagnetfeld ≈ 50 µT; MRT 1,5–3 T

Zusammengesetzte Einheiten liest du wörtlich: V/m (elektrisches Feld) ist Spannungsgefälle pro Meter Weg; A/m² (Stromdichte) ist Strom pro Querschnittsfläche; W/m² (Energiefluss) ist Leistung, die durch einen Quadratmeter Fläche tritt — der Anker dafür: Sonnenschein am Mittag liefert etwa 1000 W/m². Auch die beiden Feldkonstanten entschlüsseln sich so: \(\varepsilon_0\) in As/(Vm) verknüpft Ladung mit Spannung pro Länge, \(\mu_0\) in Vs/(Am) Strom mit Spannung mal Zeit pro Länge — ihre Zahlenwerte fallen das erste Mal in Kapitel 3 an, wo wir mit ihnen rechnen.

Vorsilben skalieren jede Einheit in Tausenderschritten: µ (Mikro, \(10^{-6}\)), m (Milli, \(10^{-3}\)), k (Kilo, \(10^{3}\)), M (Mega, \(10^{6}\)), G (Giga, \(10^{9}\)) — aus 2 400 000 000 Hz wird so das handliche 2,4 GHz.

Werkzeuge

Alle Programme laufen mit Python 3, NumPy und Matplotlib; ab Teil III kommen die Feldlöser Meep (FDTD), NEC (Momentenmethode) und openEMS (FIT) dazu. Die Einrichtung der Umgebung wird dort erklärt, wo sie erstmals gebraucht wird.

Ein letzter Rat, bevor es losgeht: Lies dieses Buch mit der Tastatur in Reichweite. Die Gleichungen verstehst du nicht, indem du sie liest, sondern indem du sie laufen lässt, an ihnen drehst und dich überraschen lässt, wo deine Vorhersage danebenlag. Genau dafür ist alles hier gebaut. Viel Freude.