Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
14
1 Einführung
15
1.1 Entwicklungsumgebungen
16
1.1.1 IDLE
16
1.1.2 Thonny
17
1.1.3 Spyder
19
1.1.4 Pip
19
1.2 Die Module von Python
20
1.2.1 NumPy
20
1.2.2 Matplotlib
21
1.2.3 SymPy
22
1.2.4 SciPy
23
1.2.5 VPython
23
1.3 Die Schlüsselwörter von Python
25
1.4 Ihr Weg durch dieses Buch
26
2 Programmstrukturen
29
2.1 Lineare Programmstruktur
29
2.1.1 Lineare Programme ohne Funktionsaufrufe
30
2.2 Funktionen
38
2.2.1 Eingebaute Funktionen
39
2.2.2 Funktionen ohne Parameter und ohne Rückgabewert
40
2.2.3 Funktionen mit Parametern und Rückgabe
42
2.2.4 Funktionen mit mehreren Rückgabewerten
44
2.2.5 Funktionen rufen andere Funktionen auf
46
2.3 Verzweigungsstrukturen
47
2.3.1 Einfachauswahl
48
2.3.2 Mehrfachauswahl
49
2.4 Wiederholungsstrukturen
52
2.4.1 Die while-Schleife
52
2.4.2 Die for-Schleife
59
2.5 Datenstrukturen
67
2.5.1 Tupel
67
2.5.2 Listen
70
2.5.3 Dictionaries
76
2.5.4 Sets
79
2.6 Funktionaler Programmstil
81
2.7 Objektorientierter Programmstil
84
2.7.1 Objekte und Klassen
85
2.7.2 Vererbung
89
2.8 Projektaufgabe: Dimensionierung einer Welle
91
2.9 Aufgaben
93
3 Numerische Berechnungen mit NumPy
95
3.1 NumPy-Funktionen
95
3.1.1 Eindimensionale Arrays mit arange() und linspace() erzeugen
96
3.1.2 Zweidimensionale Arrays mit array() erzeugen
99
3.1.3 Slicing
101
3.1.4 Mathematische NumPy-Funktionen
102
3.1.5 Statistische NumPy-Funktionen
104
3.2 Vektoren
106
3.2.1 Addition von Vektoren
106
3.2.2 Skalarprodukt
109
3.2.3 Kreuzprodukt
110
3.2.4 Spatprodukt
112
3.2.5 Dyadisches Produkt
113
3.3 Matrizenmultiplikation
114
3.4 Lineare Gleichungssysteme
122
3.4.1 Gleichungssysteme mit reellen Koeffizienten
122
3.4.2 Gleichungssysteme mit komplexen Koeffizienten
124
3.5 Projektaufgabe: Blitzschutzsystem
126
3.6 Aufgaben
129
4 Funktionsdarstellungen und Animationen mit Matplotlib
131
4.1 2D-Funktionsplots
131
4.1.1 Grundstruktur eines Funktionsplots
132
4.1.2 Gitternetzlinien
139
4.1.3 Beschriftungen
141
4.1.4 Linienstile
144
4.1.5 Achsengestaltung
146
4.1.6 Flächen einfärben
152
4.1.7 Unterdiagramme
155
4.1.8 Parameterdarstellung
162
4.1.9 Funktionsparameter interaktiv ändern
165
4.1.10 Konturplots
171
4.2 3D-Funktionsplots
174
4.2.1 Schraubenlinie
174
4.2.2 Kreisring
176
4.2.3 Kombination eines 3D-Plots mit einem Konturplot
177
4.3 Vektoren
179
4.3.1 Addition von Vektoren
180
4.3.2 Vektorfeld
181
4.4 Figuren, Linien und Pfeile darstellen
183
4.4.1 Rechtecke
183
4.4.2 Kreise und Linien
185
4.4.3 Pfeile
187
4.4.4 Polygone
188
4.4.5 Anwendungsbeispiel: Metallstab im magnetischen Feld
190
4.5 Animationen
191
4.5.1 Eine einfache Animation: Verschieben einer Sinusfunktion
193
4.5.2 Animierter schiefer Wurf
196
4.5.3 Animierte Planetenbahn
198
4.6 Projektaufgabe: Stirling-Kreisprozess
200
4.7 Projektaufgabe: Animation eines Fadenpendels
207
4.8 Projektaufgabe: Animation eines Getriebes
211
4.9 Aufgaben
215
5 Symbolisches Rechnen mit SymPy
219
5.1 Mathematische Grundoperationen
223
5.1.1 Addition
223
5.1.2 Multiplikation von Termen
225
5.1.3 Multiplikation von Linearfaktoren
226
5.1.4 Division
227
5.1.5 Potenzieren
228
5.1.6 Anwendungsbeispiel: Analyse eines elektrischen Energieübertragungssystems
228
5.2 Matrizen multiplizieren
230
5.2.1 Rechenregel
230
5.2.2 Übertragungsfunktion einer Kettenschaltung
231
5.3 Gleichungen
233
5.3.1 Lineare Gleichungssysteme
234
5.3.2 Nichtlineare Gleichungssysteme
236
5.4 Vereinfachungen von Ausdrücken
239
5.5 Reihenentwicklung
241
5.6 Partialbrüche
242
5.7 Kettenbrüche
244
5.8 Grenzwerte
248
5.8.1 Grenzwerte von Folgen
248
5.8.2 Grenzwerte von Funktionen
250
5.8.3 Differenzialquotient
251
5.9 Differenzieren
252
5.10 Integrieren
255
5.10.1 Unbestimmtes Integral
256
5.10.2 Bestimmtes Integral
257
5.10.3 Anwendungsbeispiel: Gespeicherte elektrische Energie
258
5.11 Differenzialgleichungen
260
5.11.1 Lineare DGL erster Ordnung
261
5.11.2 Allgemeine Lösung einer DGL zweiter Ordnung
265
5.11.3 Spezielle Lösung einer DGL zweiter Ordnung
268
5.12 Laplace-Transformation
270
5.12.1 Lösen von Differenzialgleichungen
270
5.12.2 Analyse von Netzwerken mit Übertragungsfunktion
275
5.13 Projektaufgabe: Sprungantwort einer Kettenschaltung
279
5.14 Projektaufgabe: Durchbiegung eines einseitig eingespannten Balkens
281
5.14.1 Flächenmoment 2. Grades
281
5.14.2 Gleichung der Biegelinie
283
5.15 Projektaufgabe: Reaktionskinetik
287
5.16 Projektaufgabe: Zweimassenschwinger
291
5.17 Aufgaben
294
6 Numerische Berechnungen und Simulationen mit SciPy
297
6.1 Nullstellen numerisch berechnen
298
6.2 Optimierungen
300
6.3 Interpolationen
302
6.4 Numerisches Differenzieren
304
6.4.1 Methoden der numerischen Differenziation
304
6.4.2 Tangentensteigung zeichnen
306
6.4.3 Ableitung einer Sinusfunktion
307
6.4.4 Anwendungsbeispiel: freier Fall
309
6.5 Numerisches Integrieren
312
6.5.1 Methoden der numerischen Integration
312
6.5.2 Bestimmtes Integral
314
6.5.3 Eine Konstante integrieren
316
6.5.4 Anwendungsbeispiel: Freier Fall
318
6.5.5 Uneigentliches Integral
320
6.5.6 Bogenlängen berechnen
322
6.5.7 Volumen und Oberflächen von Rotationskörpern
323
6.5.8 Zweifachintegrale
324
6.5.9 Dreifachintegrale
326
6.6 Differenzialgleichungen numerisch lösen
327
6.6.1 Numerische Lösung von Differenzialgleichungen
328
6.6.2 Lineare DGL erster Ordnung
332
6.6.3 Lineare DGL zweiter Ordnung
335
6.6.4 Nichtlineare DGL zweiter Ordnung
339
6.6.5 DGL-System zweiter Ordnung: Gekoppeltes Federpendel
343
6.6.6 Nichtlineares DGL-System zweiter Ordnung: Doppelpendel
346
6.7 Diskrete Fourier-Transformation
349
6.7.1 Grundsätzliche Verwendung der FFT
351
6.7.2 Frequenzspektren von nicht sinusförmigen periodischen Signalen
351
6.7.3 Verrauschtes Signal rekonstruieren
354
6.8 Schreiben und Auslesen von Sounddateien
356
6.8.1 Signale erzeugen und abspeichern
357
6.8.2 Signale auslesen und darstellen
358
6.9 Signalverarbeitung
359
6.9.1 Frequenzgang eines Butterworth-Tiefpasses
359
6.9.2 Frequenzgang einer Frequenzweiche
362
6.9.3 Signale filtern
363
6.10 Projektaufgabe: Simulation eines Wälzlagerschadens
365
6.11 Projektaufgabe: Räuber-Beute-Modell
368
6.11.1 Exponentielles Wachstum
369
6.11.2 Logistisches Wachstum
369
6.11.3 Räuber-Beute-Beziehung für exponentielles Wachstum
370
6.11.4 Räuber-Beute-Beziehung für logistisches Wachstum
370
6.12 Projektaufgabe: Simulation einer Epidemie
373
6.13 Aufgaben
375
7 3D-Grafik und Animationen mit VPython
379
7.1 Das Koordinatensystem
380
7.2 Grundkörper, Punkte und Linien
382
7.2.1 Zylinder
383
7.2.2 Quader
385
7.2.3 Punkte
387
7.2.4 Linien
389
7.2.5 Kugel
391
7.2.6 Durchdringung
394
7.2.7 Zusammengesetzte Körper
395
7.3 Körper bewegen sich
397
7.3.1 Senkrechte Bewegung
397
7.3.2 Waagerechte Bewegung
398
7.3.3 Bewegung im Raum
400
7.3.4 Zusammengesetzte Bewegung
402
7.3.5 Rotationsbewegungen
404
7.3.6 Zufällige Bewegung von Körpern
409
7.4 Animation von Schwingungen
411
7.4.1 Fadenpendel
411
7.4.2 Federpendel
413
7.5 Ereignisverarbeitung
416
7.6 Projektaufgabe: Animation eines gekoppelten Federpendels
419
7.7 Projektaufgabe: Animation von zwei gekoppelten Fadenpendeln
422
7.8 Aufgaben
425
8 Rechnen mit komplexen Zahlen
427
8.1 Mathematische Operationen
428
8.2 Die eulersche Formel
430
8.3 Rechnen mit komplexen Widerständen
432
8.4 Funktionsplots mit komplexen Größen
435
8.4.1 Komplexer Frequenzgang eines Reihenschwingkreises
435
8.4.2 Ortskurven
437
8.5 Projektaufgabe: Elektrisches Energieübertragungssystem
439
8.6 Aufgaben
445
9 Statistische Berechnungen
447
9.1 Messwerte erzeugen, abspeichern und auslesen
449
9.1.1 Messwerte erzeugen
449
9.1.2 Messreihe in eine Tabelle umwandeln
451
9.1.3 Messwerte in eine Datei schreiben
452
9.1.4 Messwerte aus einer Datei auslesen
453
9.2 Häufigkeitsverteilung
454
9.2.1 Häufigkeitstabellen
454
9.2.2 Histogramme
456
9.3 Lageparameter
457
9.3.1 Arithmetischer Mittelwert
458
9.3.2 Modus, Median, harmonischer und geometrischer Mittelwert
459
9.4 Streuungsparameter
461
9.5 Normalverteilung
465
9.5.1 Grafische Darstellung der Dichtefunktion
466
9.5.2 Wahrscheinlichkeitsverteilung
467
9.6 Schiefe
468
9.7 Regressionsanalyse
470
9.7.1 Berechnung der Regressionsparameter
471
9.7.2 Darstellung des Streudiagramms und der Regressionsgeraden
474
9.8 Projektaufgabe: Simulation einer Qualitätsregelkarte
475
9.9 Aufgaben
480
10 Boolesche Algebra
483
10.1 Logische Verknüpfungen
484
10.1.1 Konjunktion
484
10.1.2 Disjunktion
485
10.1.3 Negation
486
10.2 Gesetze der booleschen Algebra
488
10.2.1 Einfache Postulate
488
10.2.2 Die demorganschen Gesetze
488
10.2.3 Distributivgesetz
489
10.3 Schaltungssynthese
490
10.3.1 Vereinfachen von Logikfunktionen durch Ausklammern
491
10.3.2 Vereinfachung mit der disjunktiven Normalform
492
10.3.3 Vereinfachung mit der konjunktiven Normalform
494
10.4 Projektaufgabe: Siebensegmentcodierung
495
10.5 Aufgaben
498
11 Interaktive Programmierung mit Tkinter
501
11.1 Interaktionen mit Befehlsschaltflächen, Textfeldern und Bezeichnungsfeldern
503
11.1.1 Bezeichnungsfelder
503
11.1.2 Textfelder und Befehlsschaltflächen
504
11.2 Der Layout-Manager von Tkinter
505
11.2.1 Die pack-Methode
506
11.2.2 Die grid-Methode
509
11.2.3 Zusammenfassung
511
11.3 Auswahl mit Radiobutton
512
11.4 Slider
514
11.5 Die Zeichenfläche Canvas
515
11.5.1 Linien darstellen
515
11.5.2 Funktionsplots
517
11.5.3 Mauskoordinaten abfragen
519
11.6 Projektaufgabe: Drehfrequenzregelung eines fremderregten Gleichstrommotors
521
11.7 Aufgaben
534
Anhang
535
A.1 Glossar: Grundbegriffe der praktischen Informatik
535
A.2 Ableitungen elementarer Funktionen
536
A.3 Stammfunktionen elementarer Funktionen
537
A.4 Fourier-Reihen wichtiger elektrotechnischer Spannungsverläufe
538
A.5 Korrespondenztabelle wichtiger inverser Laplace-Transformationen
539
A.6 Literaturverzeichnis
540
Index
543