Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
14
1 Einführung
15
1.1 Entwicklungsumgebungen
16
1.1.1 Thonny
16
1.1.2 Anaconda
17
1.1.3 Pip
19
1.2 Die Module von Python
19
1.2.1 NumPy
19
1.2.2 Matplotlib
20
1.2.3 SymPy
21
1.2.4 SciPy
22
1.2.5 VPython
22
1.3 Die Schlüsselwörter von Python
24
1.4 Ihr Weg durch dieses Buch
25
2 Programmstrukturen
27
2.1 Lineare Programmstruktur
27
2.1.1 Lineare Programme ohne Funktionsaufrufe
28
2.2 Funktionen
36
2.2.1 Eingebaute Funktionen
37
2.2.2 Funktionen ohne Parameter und ohne Rückgabewert
38
2.2.3 Funktionen mit Parametern und Rückgabe
39
2.2.4 Funktionen mit mehreren Rückgabewerten
41
2.2.5 Funktionen rufen andere Funktionen auf
44
2.2.6 Rekursion - eine Funktion ruft sich selbst auf
45
2.3 Verzweigungsstrukturen
49
2.3.1 Einfachauswahl
49
2.3.2 Mehrfachauswahl
51
2.4 Wiederholungsstrukturen
54
2.4.1 while-Schleife
54
2.4.2 for-Schleife
60
2.5 Datenstrukturen
67
2.5.1 Listen
67
2.5.2 Tupel
71
2.5.3 Dictionaries
74
2.5.4 Sets
77
2.6 Objektorientierter Programmstil
79
2.6.1 Objekte und Klassen
80
2.6.2 Vererbung
83
2.7 Funktionaler Programmstil
85
2.8 Projektaufgabe: Dimensionierung einer Welle
88
2.9 Aufgaben
90
3 Numerische Berechnungen mit NumPy
93
3.1 NumPy-Funktionen
93
3.1.1 Arrays mit arange() und linspace() erzeugen
93
3.1.2 Wertetabellen für ausgewählte Funktionen
97
3.1.3 Zufallszahlen und statistische Funktionen
98
3.2 Vektoren
100
3.2.1 Addition von Vektoren
101
3.2.2 Skalarprodukt
103
3.2.3 Kreuzprodukt
105
3.2.4 Spatprodukt
106
3.2.5 Dyadisches Produkt
107
3.3 Matrizenmultiplikation
108
3.4 Lineare Gleichungssysteme
117
3.4.1 Gleichungssysteme mit reellen Koeffizienten
118
3.4.2 Gleichungssysteme mit komplexen Koeffizienten
120
3.5 Polynome
123
3.5.1 Grundoperationen und Nullstellen
124
3.5.2 Ableitung und Integral
126
3.6 Projektaufgabe: Blitzschutzsystem
132
3.7 Aufgaben
136
4 Funktionsdarstellungen und Animationen mit Matplotlib
137
4.1 2D-Funktionsplots
137
4.1.1 Grundstruktur eines Funktionsplots
138
4.1.2 Gitternetzlinien
140
4.1.3 Beschriftungen
142
4.1.4 Linienstile
145
4.1.5 Achsengestaltung
146
4.1.6 Flächen einfärben
152
4.1.7 Unterdiagramme
155
4.1.8 Parameterdarstellung
161
4.1.9 Funktionsparameter interaktiv ändern
164
4.1.10 Konturplots
167
4.2 3D-Funktionsplots
170
4.2.1 Schraubenlinie
170
4.2.2 Kreisring
172
4.2.3 Kombination eines 3D-Plots mit einem Konturplot
174
4.3 Vektoren
176
4.3.1 Addition von Vektoren
177
4.3.2 Vektorfeld
178
4.4 Figuren, Linien und Pfeile darstellen
180
4.4.1 Rechtecke
180
4.4.2 Kreise und Linien
182
4.4.3 Pfeile
184
4.4.4 Polygone
186
4.4.5 Anwendungsbeispiel: Metallstab im magnetischen Feld
188
4.5 Animationen
189
4.5.1 Eine einfache Animation: Verschieben einer Sinusfunktion
190
4.5.2 Animierter schiefer Wurf
192
4.5.3 Animierte Planetenbahn
195
4.6 Projektaufgabe: Animation eines Getriebes
197
4.7 Aufgaben
200
5 Symbolisches Rechnen mit SymPy
201
5.1 Mathematische Grundoperationen
204
5.1.1 Addition
204
5.1.2 Multiplikation von Termen
205
5.1.3 Multiplikation von Linearfaktoren
206
5.1.4 Division
207
5.1.5 Potenzieren
208
5.1.6 Anwendungsbeispiel: Analyse eines elektrischen Energieübertragungssystems
209
5.2 Matrizen multiplizieren
210
5.2.1 Rechenregel
211
5.2.2 Übertragungsfunktion einer Kettenschaltung
212
5.3 Gleichungen
214
5.3.1 Lineare Gleichungssysteme
214
5.3.2 Nichtlineare Gleichungssysteme
216
5.4 Vereinfachungen von Ausdrücken
220
5.5 Reihenentwicklung
221
5.6 Partialbrüche
222
5.7 Kettenbrüche
225
5.8 Grenzwerte
228
5.8.1 Grenzwerte von Folgen
228
5.8.2 Grenzwerte von Funktionen
230
5.8.3 Differenzialquotient
231
5.9 Differenzieren
233
5.10 Integrieren
236
5.10.1 Unbestimmtes Integral
236
5.10.2 Bestimmtes Integral
238
5.10.3 Anwendungsbeispiel: Gespeicherte elektrische Energie
239
5.11 Differenzialgleichungen
242
5.11.1 Lineare DGL erster Ordnung
243
5.11.2 Allgemeine Lösung einer DGL zweiter Ordnung
246
5.11.3 Spezielle Lösung einer DGL zweiter Ordnung
249
5.12 Laplace-Transformation
251
5.12.1 Lösen von Differenzialgleichungen
252
5.12.2 Analyse von Netzwerken mit Übertragungsfunktion
257
5.13 Projektaufgabe: Sprungantwort einer Kettenschaltung
260
5.14 Aufgaben
262
6 Numerische Berechnungen und Simulationen mit SciPy
265
6.1 Nullstellen numerisch berechnen
267
6.2 Optimierungen
269
6.3 Interpolationen
271
6.4 Numerisches Differenzieren
273
6.4.1 Methoden der numerischen Differenziation
274
6.4.2 Tangentensteigung zeichnen
275
6.4.3 Ableitung einer Sinusfunktion
277
6.4.4 Anwendungsbeispiel: freier Fall
279
6.5 Numerisches Integrieren
281
6.5.1 Methoden der numerischen Integration
282
6.5.2 Bestimmtes Integral
284
6.5.3 Eine Konstante integrieren
285
6.5.4 Anwendungsbeispiel: Freier Fall
287
6.5.5 Uneigentliches Integral
290
6.5.6 Bogenlängen berechnen
292
6.5.7 Volumen und Oberflächen von Rotationskörpern
294
6.5.8 Zweifachintegrale
295
6.5.9 Dreifachintegrale
296
6.6 Differenzialgleichungen numerisch lösen
298
6.6.1 Numerische Lösung von Differenzialgleichungen
298
6.6.2 Lineare DGL erster Ordnung
303
6.6.3 Lineare DGL zweiter Ordnung
305
6.6.4 Nichtlineare DGL zweiter Ordnung
309
6.6.5 DGL-System zweiter Ordnung: Gekoppeltes Federpendel
314
6.6.6 Nichtlineares DGL-System zweiter Ordnung: Doppelpendel
318
6.7 Diskrete Fourier-Transformation
322
6.7.1 Grundsätzliche Verwendung der FFT
323
6.7.2 Frequenzspektren von nicht sinusförmigen periodischen Signalen
324
6.7.3 Verrauschtes Signal rekonstruieren
328
6.8 Schreiben und Auslesen von Sounddateien
330
6.8.1 Signale erzeugen und abspeichern
330
6.8.2 Signale auslesen und darstellen
331
6.9 Signalverarbeitung
332
6.9.1 Frequenzgang eines Butterworth-Tiefpasses
333
6.9.2 Frequenzgang einer Frequenzweiche
335
6.9.3 Signale filtern
337
6.10 Projektaufgabe: Simulation eines Wälzlagerschadens
339
6.11 Projektaufgabe: Räuber-Beute-Modell
343
6.11.1 Exponentielles Wachstum
343
6.11.2 Logistisches Wachstum
344
6.11.3 Räuber-Beute-Beziehung
346
6.11.4 Räuber-Beute-Modell mit logistischem Wachstum
349
6.12 Projektaufgabe: Simulation einer Epidemie
353
6.13 Aufgaben
356
7 3D-Grafik und Animationen mit VPython
359
7.1 Das Koordinatensystem
361
7.2 Grundkörper, Punkte und Linien
363
7.2.1 Zylinder
364
7.2.2 Quader
366
7.2.3 Punkte
368
7.2.4 Linien
369
7.2.5 Kugel
371
7.2.6 Durchdringung
374
7.2.7 Zusammengesetzte Körper
376
7.3 Körper bewegen sich
378
7.3.1 Senkrechte Bewegung
378
7.3.2 Waagerechte Bewegung
379
7.3.3 Bewegung im Raum
381
7.3.4 Zusammengesetzte Bewegung
383
7.3.5 Rotationsbewegungen
385
7.3.6 Zufällige Bewegung von Körpern
390
7.4 Animation von Schwingungen
392
7.4.1 Fadenpendel
392
7.4.2 Federpendel
394
7.5 Ereignisverarbeitung
397
7.6 Projektaufgabe: Animation eines gekoppelten Federpendels
400
7.7 Projektaufgabe: Animation eines Doppelpendels
403
7.8 Aufgaben
407
8 Rechnen mit komplexen Zahlen
409
8.1 Mathematische Operationen
410
8.2 Die eulersche Formel
412
8.3 Rechnen mit komplexen Widerständen
414
8.4 Funktionsplots mit komplexen Größen
416
8.4.1 Komplexer Frequenzgang eines Reihenschwingkreises
417
8.4.2 Ortskurven
419
8.5 Projektaufgabe: Elektrisches Energieübertragungssystem
421
8.6 Aufgaben
427
9 Statistische Berechnungen
429
9.1 Messwerte erzeugen, abspeichern und auslesen
431
9.1.1 Messwerte erzeugen
431
9.1.2 Messreihe in eine Tabelle umwandeln
433
9.1.3 Messwerte in eine Datei schreiben
434
9.1.4 Messwerte aus einer Datei auslesen
435
9.2 Häufigkeitsverteilung
436
9.2.1 Häufigkeitstabellen
436
9.2.2 Histogramme
438
9.3 Lageparameter
440
9.3.1 Arithmetischer Mittelwert
440
9.3.2 Modus, Median, harmonischer und geometrischer Mittelwert
441
9.4 Streuungsparameter
443
9.5 Normalverteilung
447
9.5.1 Grafische Darstellung der Dichtefunktion
448
9.5.2 Wahrscheinlichkeitsverteilung
449
9.6 Schiefe
451
9.7 Regressionsanalyse
453
9.7.1 Berechnung der Regressionsparameter
454
9.7.2 Darstellung des Streudiagramms und der Regressionsgeraden
456
9.8 Projektaufgabe: Simulation einer Qualitätsregelkarte
457
9.9 Aufgaben
463
10 Boolesche Algebra
465
10.1 Logische Verknüpfungen
466
10.1.1 Konjunktion
466
10.1.2 Disjunktion
467
10.1.3 Negation I
468
10.2 Gesetze der booleschen Algebra
470
10.2.1 Einfache Postulate
470
10.2.2 Die demorganschen Gesetze
470
10.2.3 Distributivgesetz
471
10.3 Schaltungssynthese
472
10.3.1 Vereinfachen von Logikfunktionen durch Ausklammern
472
10.3.2 Vereinfachung mit der disjunktiven Normalform
474
10.3.3 Vereinfachung mit der konjunktiven Normalform
476
10.4 Projektaufgabe: Siebensegmentcodierung
477
10.5 Aufgaben
480
11 Interaktive Programmierung mit Tkinter
481
11.1 Interaktionen mit Befehlsschaltflächen, Textfeldern und Bezeichnungsfeldern
483
11.1.1 Bezeichnungsfelder
483
11.1.2 Textfelder und Befehlsschaltflächen
484
11.2 Der Layout-Manager von Tkinter
488
11.2.1 Die pack()-Methode
489
11.2.2 Die frame()-Methode
490
11.2.3 Die place()-Methode
492
11.2.4 Die grid()-Methode
494
11.2.5 Zusammenfassung
496
11.3 Auswahl mit Radiobutton
497
11.4 Schieberegler
499
11.5 Die Zeichenfläche Canvas
504
11.5.1 Linien darstellen
505
11.5.2 Funktionsplots
506
11.5.3 Mauskoordinaten abfragen
508
11.6 Projektaufgabe: Drehfrequenzregelung eines fremderregten Gleichstrommotors
510
11.7 Aufgaben
523
Anhang
525
A.1 Glossar: Grundbegriffe der praktischen Informatik
525
A.2 Ableitungen elementarer Funktionen
526
A.3 Stammfunktionen elementarer Funktionen
527
A.4 Fourier-Reihen wichtiger elektrotechnischer Spannungsverläufe
528
A.5 Korrespondenztabelle wichtiger inverser Laplace-Transformationen
529
A.6 Literaturverzeichnis
530
Index
531