Hugendubel.info - Die B2B Online-Buchhandlung 

Merkliste
Die Merkliste ist leer.
Bitte warten - die Druckansicht der Seite wird vorbereitet.
Der Druckdialog öffnet sich, sobald die Seite vollständig geladen wurde.
Sollte die Druckvorschau unvollständig sein, bitte schliessen und "Erneut drucken" wählen.

Mathematische Algorithmen mit Python

E-BookEPUB0 - No protectionE-Book
567 Seiten
Deutsch
Rheinwerk Verlag GmbHerschienen am01.08.20242. Auflage
Tauchen Sie ein in die Welt der Algorithmen und erforschen Sie die Verbindung zwischen Programmierung und Mathematik. Dr. Veit Steinkamp löst mit Ihnen Aufgaben aus verschiedenen Bereichen und zeigt, wie Rechnungen in Code umgesetzt werden. Sie lernen die grundlegenden Programm- und Datenstrukturen Pythons kennen und erfahren, welche Module Ihnen viel Arbeit abnehmen. Rasch programmieren Sie Algorithmen zum Lösen von Gleichungssystemen nach, automatisieren Kurvendiskussionen und berechnen Integrale. Abstrakte Zusammenhänge werden so deutlich, und ganz nebenbei verbessern Sie Ihre Python-Fähigkeiten und programmieren geschickter und gekonnter.

Aus dem Inhalt:

Python installieren und anwenden
Daten- und Programmstrukturen
Module: NumPy, SymPy, SciPy, Matplotlib
Zahlen
Gleichungssysteme
Folgen und Reihen
Funktionen
Differenzial- und Integralrechnung
Differenzialgleichungen
Ausgleichsrechnungen
Statistik
Fraktale Geometrie



Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Der Titel verspricht nicht zu viel. Man lernt nicht nur Mathematik, sondern spielend auch die Umsetzung von mathematischen Konzepten in ein Programm und damit die praktische Anwendung von Python.«
c't: »Überhaupt beweist der Autor ein gutes didaktisches Händchen. Mit Hintergrundinformationen lockert er seinen Text auf; hinzu kommen zahlreiche Abbildungen mit Funktionsplots sowie gut gewählte Übungen.«



Dr. Veit Steinkamp hat Elektrotechnik und Deutsch für das Lehramt studiert und dieses Wissen an beruflichen Schulen und Fachhochschulen weitergegeben. Dort hat er E-Technik, Anwendungsentwicklung und Maschinenbautechnik unterrichtet sowie Lehraufträge in Theoretischer Elektrotechnik und den Grundlagen der Elektrotechnik durchgeführt. Die Faszination für Mathematik und das Programmieren gibt er in diesem Buch weiter. Wenn Sie mehr über Veit Steinkamp und seine Python-Bücher erfahren möchten, besuchen Sie seine Webpräsenz auf drsteinkamp.de.
mehr
Verfügbare Formate
BuchKartoniert, Paperback
EUR34,90
E-BookEPUB0 - No protectionE-Book
EUR34,90

Produkt

KlappentextTauchen Sie ein in die Welt der Algorithmen und erforschen Sie die Verbindung zwischen Programmierung und Mathematik. Dr. Veit Steinkamp löst mit Ihnen Aufgaben aus verschiedenen Bereichen und zeigt, wie Rechnungen in Code umgesetzt werden. Sie lernen die grundlegenden Programm- und Datenstrukturen Pythons kennen und erfahren, welche Module Ihnen viel Arbeit abnehmen. Rasch programmieren Sie Algorithmen zum Lösen von Gleichungssystemen nach, automatisieren Kurvendiskussionen und berechnen Integrale. Abstrakte Zusammenhänge werden so deutlich, und ganz nebenbei verbessern Sie Ihre Python-Fähigkeiten und programmieren geschickter und gekonnter.

Aus dem Inhalt:

Python installieren und anwenden
Daten- und Programmstrukturen
Module: NumPy, SymPy, SciPy, Matplotlib
Zahlen
Gleichungssysteme
Folgen und Reihen
Funktionen
Differenzial- und Integralrechnung
Differenzialgleichungen
Ausgleichsrechnungen
Statistik
Fraktale Geometrie



Die Fachpresse zur Vorauflage:
iX - Magazin für professionelle Informationstechnik: »Der Titel verspricht nicht zu viel. Man lernt nicht nur Mathematik, sondern spielend auch die Umsetzung von mathematischen Konzepten in ein Programm und damit die praktische Anwendung von Python.«
c't: »Überhaupt beweist der Autor ein gutes didaktisches Händchen. Mit Hintergrundinformationen lockert er seinen Text auf; hinzu kommen zahlreiche Abbildungen mit Funktionsplots sowie gut gewählte Übungen.«



Dr. Veit Steinkamp hat Elektrotechnik und Deutsch für das Lehramt studiert und dieses Wissen an beruflichen Schulen und Fachhochschulen weitergegeben. Dort hat er E-Technik, Anwendungsentwicklung und Maschinenbautechnik unterrichtet sowie Lehraufträge in Theoretischer Elektrotechnik und den Grundlagen der Elektrotechnik durchgeführt. Die Faszination für Mathematik und das Programmieren gibt er in diesem Buch weiter. Wenn Sie mehr über Veit Steinkamp und seine Python-Bücher erfahren möchten, besuchen Sie seine Webpräsenz auf drsteinkamp.de.
Details
Weitere ISBN/GTIN9783367100071
ProduktartE-Book
EinbandartE-Book
FormatEPUB
Format Hinweis0 - No protection
Erscheinungsjahr2024
Erscheinungsdatum01.08.2024
Auflage2. Auflage
Seiten567 Seiten
SpracheDeutsch
Dateigrösse7995 Kbytes
Artikel-Nr.15169244
Rubriken
Genre9200

Inhalt/Kritik

Inhaltsverzeichnis
Materialien zum Buch ... 15
1. Einführung ... 17

1.1 ... Entwicklungsumgebungen ... 22
1.2 ... Die Installation der Module ... 25
1.3 ... Schlüsselwörter von Python ... 28
1.4 ... Maschinengenauigkeit, Rundungsfehler und Stellenauslöschung ... 30
1.5 ... Algorithmenbegriffe ... 34
1.6 ... Übungen ... 37

2. Datentypen und Datenstrukturen ... 41

2.1 ... Tupel ... 42
2.2 ... Set ... 49
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.4 ... Wiederholstrukturen ... 76
3.5 ... Operation auf Vektoren und Matrizen ... 89
3.6 ... Unterprogrammtechnik mit Funktionen ... 95
3.7 ... Einen Algorithmus optimieren ... 107
3.8 ... Objektorientierte Programmierung ... 113
3.9 ... Laufzeitanalyse ... 120
3.10 ... Aufgaben ... 127

4. Die Python-Erweiterungsmodule NumPy, Matplotlib, SymPy und SciPy ... 131

4.1 ... NumPy ... 132
4.2 ... Matplotlib ... 139
4.3 ... SymPy ... 151
4.4 ... SciPy ... 155
4.5 ... Aufgaben ... 158

5. Zahlen ... 161

5.1 ... Natürliche und ganze Zahlen ... 165
5.2 ... Rationale Zahlen ... 198
5.3 ... Irrationale Zahlen ... 202
5.4 ... Transzendente Zahlen ... 206
5.5 ... Aufgaben ... 218

6. Gleichungssysteme ... 219

6.1 ... Lineare Gleichungssysteme ... 219
6.2 ... Iterative Verfahren ... 250
6.3 ... Nichtlineare Gleichungssysteme ... 263
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.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.4 ... Optimale Schrittweite ... 323
9.5 ... Höhere Ableitungen ... 326
9.6 ... Kurvendiskussion ... 333
9.7 ... Aufgaben ... 348

10. Reihen ... 351

10.1 ... Divergierende Reihen ... 352
10.2 ... Konvergente Reihen ... 358
10.3 ... Geometrische Reihen ... 366
10.4 ... Potenzreihen und die Taylor-Entwicklung ... 371
10.5 ... Aufgaben ... 381

11. Numerische Integration ... 383

11.1 ... Das Problem der Flächenberechnung ... 383
11.2 ... Verfahren der Flächenberechnung ... 391
11.3 ... Bogenlängen ... 406
11.4 ... Rotationskörper ... 409
11.5 ... Zweifachintegrale ... 413
11.6 ... Aufgaben ... 421

12. Differenzialgleichungen ... 423

12.1 ... Das eulersche Polygonzugverfahren ... 424
12.2 ... Richtungsfelder ... 429
12.3 ... Differenzialgleichungen 1. Ordnung ... 431
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.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.2 ... Nichtlineare Ausgleichsprobleme ... 483
13.3 ... Aufgaben ... 487

14. Algorithmen für die Berechnung statistischer Kennzahlen ... 489

14.1 ... Normalverteilte Zufallszahlen erzeugen ... 490
14.2 ... Lageparameter ... 494
14.3 ... Streuparameter ... 504
14.4 ... Strukturparameter ... 508
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.6 ... Aufgaben ... 546

Anhang ... 549

A.1 ... Wichtige mathematische Begriffe und Sätze ... 549
A.2 ... Matplotlib-Eigenschaften ... 552

Literaturverzeichnis ... 555
Index ... 559
mehr
Leseprobe


1    Einführung

Dieses Kapitel gibt Ihnen einen kurzen Überblick über die Inhalte des Buches. Es stellt außerdem zwei Entwicklungsumgebungen vor und beschreibt die Problematik der Rundungsfehler. Eine Übersicht über die Schlüsselwörter von Python soll die erste Orientierung erleichtern. Zum Ende des Kapitels werden verschiedene Aspekte des Algorithmusbegriffs analysiert.

Wenn Sie in die Welt der Algorithmen eintauchen wollen, dann möchten Sie sicherlich auch lernen, wie Sie Algorithmen in ein Computerprogramm umsetzen können. Dazu müssen Sie eine Programmiersprache beherrschen. Bei der Auswahl einer Programmiersprache haben Sie unglaublich viele Möglichkeiten, denn es gibt inzwischen Hunderte Sprachen für unterschiedliche Einsatzgebiete.

Die Entscheidung ist zwar mit dem Titel des Buches bereits gefallen, sie lässt sich aber leicht begründen, denn Python ist laut PYPL-Index (PopularitY of Programming Languages) die aktuell beliebteste Programmiersprache (Juni 2024). Dafür gibt es gute Gründe, denn:

Python ermöglicht als interpretierende Programmiersprache eine interaktive Entwicklung von Programmen. Python ist deshalb für den Einstieg in das Programmieren besser geeignet als Compilersprachen, die erst in einem zweiten Schritt ausführbar gemacht werden.


Die Syntax von Python ist im Vergleich zu anderen Programmiersprachen relativ einfach zu erlernen.


Python ist durch Module (Softwarebibliotheken) erweiterbar. Das gilt zwar auch für viele andere Programmiersprachen. In Python gestaltet sich die Einbindung von Erweiterungsmodulen aber einfacher. Für numerische und symbolische Berechnungen sowie Computergrafik werden spezifische Module bereitgestellt, die ich Ihnen in diesem Buch vorstellen möchte.


Python steht kostenlos zur Verfügung und läuft auf den Betriebssystemen Windows, Linux und macOS.

Das Konzept
Wenn Sie eine Programmiersprache erlernen wollen, dann gibt es verschiedene Wege, die zum Ziel führen. Sie könnten die Dokumentation der Programmiersprache durcharbeiten und versuchen, mit den so erworbenen Kenntnissen eigene Programme zu schreiben. Dieser Weg ist zwar denkbar, aber dann müssen Sie sich durch eine unübersichtliche Vielfalt an Informationen arbeiten, denn die Python-Dokumentation und die Unterlagen der Zusatzmodule haben einen Umfang von mehreren Tausend Seiten. Tutorials für den Programmiereinstieg können dieses Problem zwar abfedern, die dort behandelten Beispiele haben aber in der Regel keinen direkten Bezug zu dem konkreten Programmierproblem, für das Sie sich gerade interessieren, und verlangen von Ihnen damit eine ziemlich schwierige Transferleistung.

Ich habe die Erfahrung gemacht, dass ein anderer Lernweg besser ist: Konzentrieren Sie sich auf konkrete Inhalte aus der Praxis des wissenschaftlichen Arbeitens, und üben Sie damit das Programmieren. Das Lernen orientiert sich dann nicht an der Fachsystematik der Programmiersprache, sondern an der Fachsystematik einer wissenschaftlichen Disziplin, die Sie idealerweise bereits kennen.

Doch welche Wissenschaft sollte man aus dem reichhaltigen Angebot wählen? Hier bietet sich die Mathematik an, weil sie als Grundlagenwissenschaft der Natur- und Ingenieurwissenschaften von allen Fachkundigen ohnehin beherrscht werden muss. Wenn Sie also das Erlernen einer Programmiersprache mit den Inhalten der Mathematik verknüpfen, dann beherrschen Sie am Ende nicht nur das Programmieren, sondern haben auch noch Ihre Mathematikkenntnisse vertieft.

Dieser Weg hat jedoch auch einen Nachteil: Wenn sich das Erlernen einer Programmiersprache an den Inhalten der Mathematik orientiert, dann werden zwangsläufig nicht alle Möglichkeiten erfasst, die die Syntax einer Programmiersprache bietet. Es gibt hier aber einen einfachen Ausweg: Sollten beim Programmieren Probleme auftreten, dann schlagen Sie gezielt die fehlenden Informationen in den entsprechenden Dokumentationen oder in einem einschlägigen Fachbuch nach. Wenn Sie bereits über grundlegendes Wissen verfügen, lässt sich nämlich viel zielgerichteter mit diesen Informationsquellen arbeiten.

Weil dieses Buch sich an der Fachsystematik der Mathematik orientiert, wiederholen sich zwangsläufig viele Programmierkonstruktionen, z. B. Summenalgorithmen in Schleifen oder Fallunterscheidungen in Verzweigungsstrukturen. Das muss jedoch kein Nachteil sein, denn durch die vielen Wiederholungen wird eine Schwäche unseres Gedächtnisses, nämlich das Vergessen, kompensiert.

Die Quelltexte werden, bis auf wenige Ausnahmen, vollständig mit der zugehörigen Ausgabe abgedruckt, damit sie auch ohne Nutzung des Computers analysiert werden können. Für das Verstehen des Codes eines Programms ist es besonders wichtig, die Ausgabe der Ergebnisse mit in die Quelltextanalyse einzubeziehen, denn nur durch die Einsicht in den kausalen Zusammenhang zwischen Struktur des Quelltextes und Ausgabe der Resultate kann der Quelltext vollständig verstanden werden.

Der Lernprozess beginnt mit der Analyse von zunächst einfachen Programmquelltexten. Es wird nicht immer die hinsichtlich Rechenaufwand effizienteste Lösung gewählt, sondern eher Wert auf Nachvollziehbarkeit des Algorithmus gelegt.

Erst wenn Sie einige Beispielprogramme vollständig verstanden und auch getestet haben, sollten Sie mit eigenen Programmierprojekten beginnen. Beim Testen von Programmbeispielen ist es mitunter sinnvoll, bewusst Fehler in den Quelltext einzubauen und nach dem Programmstart die Fehlermeldungen zu analysieren. Auch das Einfügen von eigenen Ergänzungen in bestehende Quelltexte kann den Lernfortschritt unterstützen. Zögern Sie also nicht, den Code zu verändern und sich z. B. Zwischenergebnisse auf der Kommandozeile ausgeben zu lassen, wenn Sie den Ablauf eines Programms besser verstehen möchten.
Die Zielgruppe
Dieses Buch wendet sich an alle, die Python als erste Programmiersprache erlernen wollen. Als Leserkreis werden dabei besonders Studierende der Natur- und Ingenieurwissenschaften und der Informatik angesprochen. Das Buch kann aber auch für den Mathematikunterricht von großem Nutzen sein, wenn mathematische Begriffe, z. B. Grenzwertprozesse, durch Visualisierung dynamisch veranschaulicht werden sollen. Im Informatikunterricht könnten Programmierprojekte, die sich an den aktuellen Themen des Mathematikunterrichts orientieren, mathematische Lernprozesse unterstützen und zusätzlich das Lernen in der Programmierausbildung durch einen sinnhaften Anwendungsbezug stärker motivieren. Angesprochen werden auch Schülerinnen und Schüler der gymnasialen Oberstufe mit den Leistungskursen Mathematik und Informatik. Durch Synergieeffekte könnten Verständnisprobleme in beiden Fächern überwunden werden. Die Notwendigkeit, präzise Unterscheidungen zu treffen, könnte auch dazu beitragen, die Begriffsbildungen in den beiden Lerngebieten zu präzisieren.

Als Voraussetzung für das Verständnis der Inhalte des Buches sind Mathematikkenntnisse erforderlich, wie sie auf einem Gymnasium oder auf einer Fachoberschule vermittelt werden. Sie sollten die mathematischen Grundbegriffe Funktion, Konvergenz, Grenzwert, Ableitung und Integral kennen. Bei Verständnisschwierigkeiten können Sie Ihr Wissen mithilfe der Lehrbücher [Bossek] oder [Kammermeyer] auffrischen. Eine (ganz) kurze Zusammenfassung finden Sie auch im Anhang dieses Buches.
Ein kurzer Überblick über die Inhalte
Sie können bis auf die Kapitel 2 und 3 alle anderen Kapitel unabhängig voneinander lesen. Kapitel 2 und 3 sollten Sie jedoch intensiv studieren und die zugehörigen Aufgaben bearbeiten. Denn dort werden die Grundlagen für das Verständnis der nachfolgenden Kapitel gelegt.

In Kapitel 2, »Datentypen und Datenstrukturen«, werden die grundlegenden Datenstrukturen von Python behandelt, wie Tupel, Sets (Mengen), Listen und Dictionarys. Bis auf Sets werden diese Datenstrukturen in allen folgenden Kapiteln wieder verwendet.

Kapitel 3, »Programmstrukturen«, beschreibt die Programmstrukturen Sequenz, Verzweigung und Wiederholung anhand einfacher Beispiele. Hier wird auch der Begriff der Laufzeitkomplexität eingeführt.

In Kapitel 4, »Die Python-Erweiterungsmodule NumPy, Matplotlib, SymPy und SciPy«, werden die Module numpy, matplotlib, sympy und scipy kurz vorgestellt. Funktionen dieser Module, z. B. solve(), dsolve(), diff(), integrate() und quad(), werden später benutzt, um zu überprüfen, ob die selbst erstellten Algorithmen korrekte Berechnungen ausführen. Das Modul matplotlib wird verwendet, um 2D- und 3D-Funktionsplots zu erstellen.

Kapitel 5, »Zahlen«, handelt von Algorithmen mit Zahlen. Hier beschreibe ich, wie Sie mit dem euklidischen Algorithmus den größten gemeinsamen Teiler berechnen. Es wird gezeigt, wie das Sieb des Eratosthenes Primzahlen findet. Mit der Implementierung des RSA-Algorithmus wird die praktische Bedeutung der Primzahlen herausgestellt. Der Heron-Algorithmus berechnet näherungsweise Werte für irrationale Zahlen als Quadrat- und Kubikwurzeln. Die Kreiszahl Ï wird näherungsweise mit den Algorithmen von Archimedes, Viète, Wallis, Brent und Salamin berechnet. Das Kapitel endet mit einem Überblick über die...

mehr

Autor

Dr. Veit Steinkamp hat Elektrotechnik und Deutsch für das Lehramt studiert und dieses Wissen an beruflichen Schulen und Fachhochschulen weitergegeben. Dort hat er E-Technik, Anwendungsentwicklung und Maschinenbautechnik unterrichtet sowie Lehraufträge in Theoretischer Elektrotechnik und den Grundlagen der Elektrotechnik durchgeführt. Die Faszination für Mathematik und das Programmieren gibt er in diesem Buch weiter.

Wenn Sie mehr über Veit Steinkamp und seine Python-Bücher erfahren möchten, besuchen Sie seine Webpräsenz auf drsteinkamp.de.