Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Materialien zum Buch
15
1 Einführung
17
1.1 Entwicklungsumgebungen
22
1.1.1 IDLE
23
1.1.2 Thonny
24
1.2 Die Installation der Module
25
1.3 Schlüsselwörter von Python
28
1.4 Maschinengenauigkeit, Rundungsfehler und Stellenauslöschung
30
1.4.1 Maschinengenauigkeit
31
1.4.2 Rundungsfehler
32
1.4.3 Stellenauslöschung
34
1.5 Algorithmenbegriffe
34
1.6 Übungen
37
2 Datentypen und Datenstrukturen
41
2.1 Tupel
42
2.1.1 Exkurs: Elementare Datentypen von Python
44
2.1.2 Würfelsimulation
47
2.1.3 Vertauschen von Objekten
48
2.2 Set
49
2.2.1 Mengenlehre
50
2.2.2 Vereinigungsmenge
51
2.2.3 Schnittmenge
51
2.2.4 Differenzmenge
51
2.3 Liste
54
2.4 Dictionary
60
2.5 Zusammenfassung
65
2.6 Aufgaben
66
3 Programmstrukturen
67
3.1 Mathematische Operatoren
68
3.2 Die lineare Programmstruktur
69
3.3 Verzweigungsstrukturen
72
3.3.1 Einfachauswahl
73
3.3.2 Mehrfachauswahl
75
3.4 Wiederholstrukturen
76
3.4.1 Die while-Schleife
77
3.4.2 Die for-Schleife
82
3.5 Operation auf Vektoren und Matrizen
89
3.5.1 Skalarprodukt
89
3.5.2 Addition von Matrizen
90
3.5.3 Multiplikation von Matrizen
92
3.6 Unterprogrammtechnik mit Funktionen
95
3.6.1 Eingebaute Funktionen
96
3.6.2 Selbst erstellte Funktionen
97
3.6.3 Funktionen mit einem Rückgabewert
98
3.6.4 Funktionen mit mehreren Rückgabewerten
100
3.6.5 Namensraum
101
3.6.6 Rekursion: Eine Funktion ruft sich selbst auf
103
3.7 Einen Algorithmus optimieren
107
3.7.1 Binäre Exponentiation
107
3.7.2 Das Horner-Schema
110
3.8 Objektorientierte Programmierung
113
3.8.1 Definition einer Klasse
113
3.8.2 Vererbung
118
3.9 Laufzeitanalyse
120
3.9.1 Messen der Laufzeit
120
3.9.2 Komplexitätsklassen
123
3.10 Aufgaben
127
4 Die Python-Erweiterungsmodule NumPy, Matplotlib, SymPy und SciPy
131
4.1 NumPy
132
4.1.1 Wichtige NumPy-Funktionen
132
4.1.2 Wertetabellen für mathematische Funktionen erstellen
135
4.1.3 Die Datenstruktur von ndarray
136
4.1.4 Rechnen mit Matrizen
136
4.2 Matplotlib
139
4.2.1 Die objektorientierte API
140
4.2.2 Funktionsplot mit Beschriftungen
141
4.2.3 Unterdiagramme
144
4.2.4 Das Slider-Steuerelement
146
4.2.5 Funktionsplotter
148
4.3 SymPy
151
4.3.1 Symbolische Operationen mit Matrizen
152
4.3.2 Symbolisches Differenzieren und Integrieren
154
4.4 SciPy
155
4.5 Aufgaben
158
5 Zahlen
161
5.1 Natürliche und ganze Zahlen
165
5.1.1 Teilbarkeit
165
5.1.2 Division mit Rest
168
5.1.3 Der euklidische Algorithmus
171
5.1.4 Der erweiterte euklidische Algorithmus
176
5.1.5 Primzahlen
178
5.1.6 RSA-Verschlüsselung
190
5.2 Rationale Zahlen
198
5.3 Irrationale Zahlen
202
5.4 Transzendente Zahlen
206
5.4.1 Die Kreiszahl ?
206
5.4.2 Die eulersche Zahl e
216
5.5 Aufgaben
218
6 Gleichungssysteme
219
6.1 Lineare Gleichungssysteme
219
6.1.1 Lösbarkeit eines linearen Gleichungssystems
220
6.1.2 Der Gauß-Algorithmus
224
6.1.3 Der Gauß-Jordan-Algorithmus
231
6.1.4 Lösung mit Determinanten: Die cramersche Regel
235
6.1.5 Lösung mit der Inversen einer Matrix
241
6.1.6 Lösung mit der NumPy-Funktion solve()
244
6.1.7 Lösung mit SymPy-Methoden
245
6.2 Iterative Verfahren
250
6.2.1 Das Jacobi-Verfahren
251
6.2.2 Das Gauß-Seidel-Verfahren
257
6.2.3 Konvergenzverhalten
261
6.3 Nichtlineare Gleichungssysteme
263
6.3.1 Lösung mit SciPy
264
6.3.2 Lösung mit SymPy
265
6.4 Aufgaben
266
7 Folgen
269
7.1 Divergente Folgen
269
7.2 Differenzfolgen
273
7.3 Konvergente Folgen
275
7.4 Rekursive Folgen
278
7.5 Geometrische Folgen
280
7.6 Der Grenzwert von Folgen
284
7.6.1 Grenzwertdarstellung im Koordinatensystem
285
7.6.2 Symbolische Berechnung des Grenzwertes
287
7.7 Aufgaben
288
8 Nullstellen berechnen
289
8.1 Bisektionsverfahren
290
8.2 Fixpunktverfahren
295
8.3 Newton-Verfahren
301
8.4 Vergleich der Verfahren
304
8.5 Numerische Berechnung mehrerer Nullstellen
306
8.6 Aufgaben
308
9 Numerische Differenziation
309
9.1 Simulation des Grenzwertprozesses
310
9.2 Tangentengleichung
313
9.3 Vorwärts-, Rückwärts- und zentraler Differenzenquotient
316
9.3.1 Vorwärtsdifferenzenquotient
317
9.3.2 Rückwärtsdifferenzenquotient
318
9.3.3 Der zentrale Differenzenquotient
318
9.3.4 Differenzenquotienten mit selbst erstellten Funktionen berechnen
320
9.4 Optimale Schrittweite
323
9.5 Höhere Ableitungen
326
9.5.1 Höhere Ableitungen aus vorgegebenen Formeln berechnen
326
9.5.2 Höhere Ableitungen aus der 1. Ableitung berechnen
328
9.5.3 Höhere Ableitungen mit dem erweiterten Horner-Schema berechnen
330
9.5.4 Höhere Ableitungen mit dem Modul Numdifftools berechnen
332
9.6 Kurvendiskussion
333
9.6.1 Statische Darstellung von Extremwerten und Wendepunkt
334
9.6.2 Kriterien für Extremstellen
336
9.6.3 Simulation der Tangentensteigung für ein Polynom 3. Grades
337
9.6.4 Kurvendiskussion mit Numdifftools
339
9.6.5 Kurvendiskussion mit SymPy
343
9.6.6 Umgekehrte Kurvendiskussion
345
9.7 Aufgaben
348
10 Reihen
351
10.1 Divergierende Reihen
352
10.1.1 Die Reihe der Quadratzahlen
352
10.1.2 Harmonische Reihe
355
10.2 Konvergente Reihen
358
10.2.1 Die eulersche Zahl e
358
10.2.2 Vergleich von Konvergenzgeschwindigkeiten
362
10.2.3 Konvergenzkriterien
364
10.3 Geometrische Reihen
366
10.4 Potenzreihen und die Taylor-Entwicklung
371
10.4.1 Potenzreihen
372
10.4.2 Taylor-Entwicklung
376
10.5 Aufgaben
381
11 Numerische Integration
383
11.1 Das Problem der Flächenberechnung
383
11.1.1 Simulation eines bestimmten Integrals
385
11.1.2 Simulation des Fehlers
388
11.2 Verfahren der Flächenberechnung
391
11.2.1 Die summierte Mittelpunktregel
391
11.2.2 Die summierte Trapezregel
395
11.2.3 Das Simpson-Verfahren
398
11.2.4 Vergleich der Verfahren
401
11.3 Bogenlängen
406
11.4 Rotationskörper
409
11.5 Zweifachintegrale
413
11.5.1 Zweifachintegrale mit konstanten Integrationsgrenzen
413
11.5.2 Zweifachintegrale mit variablen Integrationsgrenzen
418
11.6 Aufgaben
421
12 Differenzialgleichungen
423
12.1 Das eulersche Polygonzugverfahren
424
12.2 Richtungsfelder
429
12.3 Differenzialgleichungen 1. Ordnung
431
12.3.1 Die konstante Wachstumsrate
432
12.3.2 Die konstante Wachstumsrate mit oberer Wachstumsschranke
435
12.3.3 Die logistische Wachstumsrate
437
12.4 Nichtlineare Differenzialgleichungen 2. Ordnung
438
12.5 DGL-System für ein gekoppeltes Fadenpendel
443
12.6 DGL-System mit zwei Unbekannten
446
12.7 DGL-System mit drei Unbekannten
449
12.8 Optimierungen des Euler-Verfahrens
452
12.8.1 Das Heun-Verfahren
452
12.8.2 Das vierstufige Runge-Kutta-Verfahren
452
12.8.3 Vergleich der Verfahren
453
12.9 Lösung von Differenzialgleichungen mit SciPy
455
12.10 Lösen von Differenzialgleichungen mit Sympy
459
12.11 Aufgaben
462
13 Ausgleichsrechnungen
463
13.1 Lineare Ausgleichsprobleme
464
13.1.1 Lösung mit linearen Gleichungssystemen
464
13.1.2 Lösung mit dem Vektoransatz
470
13.1.3 Lösung mit dem erweiterten Vektoransatz
473
13.1.4 Anwendungsbeispiel: Bremsweg
476
13.1.5 Anwendungsbeispiel: Planetenbahn
479
13.2 Nichtlineare Ausgleichsprobleme
483
13.2.1 Exponentialfunktion
483
13.2.2 Potenzfunktion
485
13.3 Aufgaben
487
14 Algorithmen für die Berechnung statistischer Kennzahlen
489
14.1 Normalverteilte Zufallszahlen erzeugen
490
14.1.1 Histogramm
492
14.1.2 Normalverteilung
493
14.2 Lageparameter
494
14.2.1 Modus
495
14.2.2 Median
495
14.2.3 Arithmetischer Mittelwert
500
14.2.4 Harmonischer Mittelwert
501
14.2.5 Geometrischer Mittelwert
503
14.3 Streuparameter
504
14.3.1 Spannweite
504
14.3.2 Standardabweichung
507
14.4 Strukturparameter
508
14.4.1 Schiefe
508
14.4.2 Wölbung
511
14.5 Aufgaben
514
15 Fraktale
517
15.1 Turtle-Grafik
518
15.2 Die kochsche Schneeflocke
521
15.3 Das Sierpinski-Dreieck
527
15.4 Der Pythagoras-Baum
531
15.5 Mandelbrot- und Julia-Mengen
534
15.5.1 Mandelbrot-Menge
535
15.5.2 Julia-Menge
540
15.5.3 Farbige Darstellung von Julia-Mengen
543
15.6 Aufgaben
546
Anhang
549
A.1 Wichtige mathematische Begriffe und Sätze
549
A.1.1 Grundlegende Begriffe der Mathematik
549
A.1.2 Wichtige Sätze der Mathematik
550
A.2 Matplotlib-Eigenschaften
552
Literaturverzeichnis
555
Index
559