Mathematische Algorithmen mit Python (eBook)
567 Seiten
Rheinwerk Computing (Verlag)
978-3-367-10007-1 (ISBN)
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.
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...
Erscheint lt. Verlag | 1.8.2024 |
---|---|
Sprache | deutsch |
Themenwelt | Mathematik / Informatik ► Informatik ► Programmiersprachen / -werkzeuge |
ISBN-10 | 3-367-10007-2 / 3367100072 |
ISBN-13 | 978-3-367-10007-1 / 9783367100071 |
Haben Sie eine Frage zum Produkt? |
![EPUB](/img/icon_epub_big.jpg)
Größe: 8,0 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich