Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Ideal für Einsteiger und Umsteiger
Sie möchten Python als erste Programmiersprache erlernen oder die grundlegenden mathematisch-naturwissenschaftlichen Python-Bibliotheken kennen lernen? Dieses Buch bietet einen Einstieg in die Programmierung und die mathematischen Anwendungen von Python.
Es eignet sich besonders für Studierende im Nebenfach Informatik, z.B. Ingenieure oder Naturwissenschaftler, und setzt keine Vorkenntnisse voraus. Auch Personen mit Programmiererfahrung finden in diesem Buch einen Einstieg in die wichtigsten mathematisch-naturwissenschaftlichen Python-Bibliotheken.
Schwerpunkte des Buches sind die mathematischen Anwendungen sowie die Arbeit mit Numpy, Matplotlib, Sympy, Scipy, Scikit-Image und VPython. Mit zahlreichen Aufgaben und ausführlich kommentierten Lösungen.
Die vierte Auflage des Buches wurde inhaltlich wie auch optisch komplett überarbeitet. Ein neues Kapitel erklärt, wie man mithilfe der Programmbibliothek Scikit-Image Grafiken und Fotographien bearbeiten kann. Folgende Themen werden dabei im Detail erklärt:
- Grafiken und Bilder einlesen, darstellen und ausgeben
- Farbbilder in Graustufenbilder wandeln und Bilder skalieren
- Graustufenbilder durch Programmanweisungen erzeugen
- Ecken ermitteln – Corner Detection
- Kanten detektieren – Canny Filter
- Kreise erkennen – Hough Transformation
- Abgleich von Vorlagen – Template Matching
Auf plus.hanser-fachbuch.de finden Sie zu diesem Titel digitales Zusatzmaterial Form von Beispielen sowie ausführlichen Lösungen zu den Aufgaben.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 388
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Hans-Bernhard Woyand
Python für Ingenieure und Naturwissenschaftler
Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen
4., vollständig überarbeitete und erweiterte Auflage
Autor:
Prof. Dr.-Ing. Hans-Bernhard WoyandBergische Universität WuppertalFakultät für Maschinenbau und Sicherheitstechnik
Alle in diesem Buch enthaltenen Informationen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt geprüft und getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor(en, Herausgeber) und Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Weise aus der Benutzung dieser Informationen – oder Teilen davon – entsteht.Ebenso wenig übernehmen Autor(en, Herausgeber) und Verlag die Gewähr dafür, dass die beschriebenen Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften.
Bibliografische Information der Deutschen Nationalbibliothek:Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.
Dieses Werk ist urheberrechtlich geschützt.Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2021 Carl Hanser Verlag MünchenInternet: www.hanser-fachbuch.de
Lektorat: Dipl.-Ing. Natalia Silakova-HerzbergHerstellung: Anne KurthCovergestaltung: Max KostopoulosCoverkonzept: Marc Müller-Bremer, www.rebranding.de, München
Print-ISBN 978-3-446-46483-4E-Book-ISBN 978-3-446-46501-5E-Pub-ISBN 978-3-446-46484-1
Seit vielen Jahren halte ich an der Bergischen Universität Wuppertal die Lehrveranstaltung Informatik im Grundstudium Maschinenbau. Mehr als 10 Jahre haben wir in diesen Kursen die Programmiersprache C/C++ eingesetzt. Seit mehreren Jahren verwenden wir stattdessen nun Python als erste Programmiersprache und das mit großem Erfolg. Es zeigte sich, dass gerade bei Ingenieuren, die oftmals Schwierigkeiten mit dem algorithmischen Denken haben, Python einen leichteren Zugang ermöglicht.
Im Studiengang Maschinenbau wie auch in vielen anderen Studiengängen spielt das wissenschaftliche Rechnen und Visualisieren eine große Rolle. In der Literatur zu Python ist das nicht so: entweder werden die wissenschaftlichen Anwendungen gar nicht bzw. nur am Rande behandelt, oder die Bücher sind so umfangreich, dass sie als vorlesungsbegleitender Text ungeeignet sind. So entstand die Idee, das Skript zur Vorlesung zu diesem Buch auszuarbeiten.
Das Buch richtet sich an Programmieranfänger, die Python als erste Programmiersprache lernen möchten. Es wird also zuerst in Python eingeführt und dann werden die Grundlagen erläutert. Es folgen Vertiefungen und ein eigenes Kapitel über die objektorientierte Programmierung. Dann beginnt das wissenschaftliche Rechnen und Visualisieren. Hierzu wird in die Nutzung der wichtigsten Programmbibliotheken (Packages) eingeführt. Hauptzielgruppe sind also Studierende wissenschaftlicher Studiengänge, die Python erlernen wollen und bei denen die mathematischen und grafischen Anwendungen eine wichtige Rolle spielen. Vorausgesetzt wird nur mathematisch-naturwissenschaftliches Wissen, wie es an höheren Schulen vermittelt wird.
Mehr als 90 Aufgabenstellungen mit fast immer kommentierten Lösungen werden im Buch behandelt. Nach meiner Erfahrung lernen Studierende am meisten durch das selbstständige Lösen von Aufgaben.
Die Software, die benötigt wird, um mit diesem Buch zu arbeiten, ist kostenfrei erhältlich. Es handelt sich dabei um die neuere Variante 3.2 bzw. 3.5 der Programmiersprache Python, sowie deren Vorgängerversionen 2.6 und 2.7. Die wissenschaftlichen Anwendungspakete sind nämlich noch nicht alle mit der neuen Python-Version kompatibel. Es ist zu erwarten, dass es auch noch einige Zeit dauern wird, bis die wissenschaftlichen Pakete unter der neuesten Version laufen. Für Programmieranfänger ist der Unterschied zwischen diesen Versionen sowieso nicht sehr bedeutsam.
Zu dem vorliegenden Buch existiert eine Webseite, auf der in loser Folge Ergänzungen, Fehlerberichtigungen usw. bereitgestellt werden. Weiterhin können alle Beispiele sowie die Lösungen der Aufgaben dort abgerufen werden. Für Nutzer des Betriebssystems MS-Windows sind auch Hinweise zur Installation der Software dort verfügbar. Die Web-Adresse ist
http://woyand.eu/python_buch
Außerdem sind die Daten zum Buch unter folgender Webadresse aufrufbar:
http://plus.hanser-fachbuch.de.
Geben Sie hierfür folgenden Plus-Code ein: plus-wt9h3-e58lw
Hinweise, Fehlermeldungen und Anregungen werden über die E-Mail-Adresse
gern entgegengenommen.
Das Buch wurde mit größtmöglicher Sorgfalt erstellt. Trotzdem können Fehler nicht ganz ausgeschlossen werden. Aus diesem Grund sind die in diesem Buch dargestellten Verfahren mit keinerlei Garantie verbunden. Ich weise darauf hin, dass weder Autor noch Verlag eine Haftung für direkt oder indirekt entstandene Schäden übernehmen, die sich aus der Benutzung dieses Buches ergeben könnten.
Ich danke meiner Frau Annette Woyand für die sorgfältige Durchsicht des Manuskripts. Frau Mirja Werner vom Carl Hanser Verlag danke ich für Ihr Engagement beim Zustandekommen dieses Buches.
Ich wünsche allen Lesern viel Erfolg und Spaß beim Einstieg in Python.
Wuppertal, im März 2017
Hans-Bernhard Woyand
Vorwort zur zweiten AuflageFür die zweite Auflage wurden einige inhaltliche Verbesserungen vorgenommen und ein neues Kapitel hinzugefügt. In diesem Kapitel wird gezeigt, wie numerische Berechnungen mit der Python-Bibliothek Scipy durchgeführt werden können. Scipy ist sehr umfangreich. Deshalb werden – dem Ansatz dieses Buches entsprechend – wichtige Teilbereiche dieser Software-Bibliothek auf wenigen Seiten vorgestellt. Behandelt wird die numerische Berechnung von Integralen, die Interpolation, die Berechnung von Nullstellen, die numerische Optimierung, die Signalanalyse mit der schnellen Fourier Transformation (FFT) sowie die numerische Integration gewöhnlicher Differenzialgleichungen.
Ich hoffe, dass diese Erweiterung des Buchs für viele Leser hilfreich und anregend ist und wünsche viel Erfolg und Spaß mit Python.
Wuppertal, im Juli 2018
Hans-Bernhard Woyand
Vorwort zur dritten AuflageFür die dritte Auflage wurde das Kapitel 8 (3D-Grafik mit VPython) völlig überarbeitet, da sich die neue Version VPython 7 deutlich von den Vorgängerversionen unterscheidet. Mit dieser neuen Version von VPython können die dreidimensionalen Szenen im Webbrowser dargestellt werden. Auch die Benutzerinteraktionen wurden erheblich vereinfacht und neu strukturiert.
Weiterhin wurde das Kapitel 10 (Numerische Analysen mit Scipy) um zwei Themen erweitert. Es handelt sich um die Erzeugung von Dreiecksnetzen mit der Delaunay-Triangulierung sowie um die Berechnung der konvexen Hülle einer Punktmenge. Vier weitere Aufgaben mit kommentierten Lösungen wurden dem Buch hinzugefügt.
Wuppertal, im Januar 2019
Hans-Bernhard Woyand
Vorwort zur vierten AuflageFür die vierte Auflage des Buches wurden einige kleinere, inhaltliche Verbesserungen vorgenommen. Zudem wurde ein neues Kapitel 11 mit dem Titel „Bildverarbeitung mit scikit-image“ hinzugefügt. Scikit-image ist ein Erweiterungspaket der Programmiersprache Python, das zur automatisierten Manipulation und Analyse von Bildern (Fotos, Grafiken) entwickelt wurde. Es wird gezeigt, wie Bilder eingelesen, gewandelt und geschrieben werden können. Weiterhin werden Algorithmen zum Auffinden von Kanten, Ecken und Kreisen sowie zum Abgleich von Vorlagen vorgestellt und erläutert. Zwei weitere Aufgaben und deren Lösungen wurden ergänzt.
Witten, im November 2020
Hans-Bernhard Woyand
Titelei
Impressum
Inhalt
Vorwort
1 Einführung
1.1 Die Programmiersprache Python
1.2 Hinweise zur Installation
1.3 Erste Schritte – der Python-Interpreter
1.3.1 Addition und Subtraktion
1.3.2 Multiplikation und Division
1.3.3 Vergleichsausdrücke
1.3.4 Logische Ausdrücke
1.3.5 Mathematische Funktionen
1.3.6 Grundlegendes über Variablen und Zuweisungen
1.3.7 Zeichenketten (Strings)
1.3.8 Turtle-Grafik
1.4 Python-Programme mit IDLE erstellen
1.5 Aufgaben
1.6 Lösungen
2 Grundlagen
2.1 Einfache Objekttypen
2.1.1 Ganze Zahlen – Integer
2.1.2 Gleitpunktzahlen – Float
2.1.3 Komplexe Zahlen – Complex
2.1.4 Zeichenketten – Strings
2.1.5 Aufgaben
2.1.6 Lösungen
2.2 Operatoren und mathematische Standardfunktionen
2.2.1 Operatoren zur arithmetischen Berechnung
2.2.2 Mathematische Standardfunktionen
2.2.3 Aufgaben
2.2.4 Lösungen
2.3 Variablen und Zuweisungen
2.4 Funktionen
2.4.1 Funktionen mit Rückgabewert
2.4.2 Funktionen ohne Rückgabewert
2.4.3 Aufgaben
2.4.4 Lösungen
2.5 Ein- und Ausgabe
2.6 Programmverzweigungen
2.6.1 Einfache if-Anweisung
2.6.2 Erweiterte if-Anweisung
2.6.3 Aufgaben
2.6.4 Lösungen
2.7 Bedingungen
2.8 Programmschleifen
2.8.1 for-Schleifen
2.8.2 while-Schleifen
2.9 Aufgaben
2.10 Lösungen
3 Vertiefung
3.1 Listen
3.1.1 Aufgaben
3.1.2 Lösungen
3.2 Tupels
3.3 Sets – Mengen
3.4 Dictionaries
3.4.1 Aufgaben
3.4.2 Lösungen
3.5 Slicing
3.6 List Comprehensions
3.7 Iteratoren und die zip-Funktion
3.8 Funktionen, Module und Rekursion
3.8.1 Schlüsselwort-Parameter
3.8.2 Module
3.8.3 Rekursion
3.8.4 Globale und lokale Variablen
3.9 Turtle-Grafik – verbessert
3.10 Dateien lesen und schreiben
3.11 Aufgaben
3.12 Lösungen
4 Objektorientiertes Programmieren
4.1 Klassen und Objekte
4.1.1 Die Grundidee
4.1.2 Klassen
4.1.3 Methoden
4.2 Konstruktoren und Destruktoren
4.3 Überladen von Operatoren
4.4 Vererbung
4.5 Aufgaben
4.6 Lösungen
5 Numerische Berechnungen mit Numpy
5.1 Hinweise zur Installation
5.2 Arrays
5.3 Darstellung von Matrizen
5.4 Spezielle Funktionen
5.5 Operationen
5.6 Lineare Algebra
5.7 Zufallswerte
5.8 Aufgaben
5.9 Lösungen
6 Grafische Darstellungen mit Matplotlib
6.1 Hinweise zur Installation
6.2 XY-Diagramme
6.3 Balkendiagramme
6.4 Tortendiagramme
6.5 Polardiagramme
6.6 Histogramme
6.7 Subplots
6.8 Axes
6.9 Anmerkungen und Legenden
6.10 Aufgaben
6.11 Lösungen
7 Computeralgebra mit Sympy
7.1 Hinweise zur Installation
7.2 Differentiation
7.3 Integration
7.3.1 Unbestimmte Integrale
7.3.2 Bestimmte Integrale
7.3.3 Uneigentliche Integrale
7.4 Potenzreihen
7.5 Matrizenrechnung – lineare Algebra
7.6 Die Datentypen Rational und Float
7.7 Nützliche Ergänzungen
7.8 Aufgaben
7.9 Lösungen
8 3D-Grafik mit VPython 7
8.1 Hinweise zur Installation
8.2 Szenen
8.3 Grundkörper
8.4 Dreieck- und Viereckflächen (Triangle/Quad)
8.4.1 triangle
8.4.2 quad
8.4.3 STL-Dateien lesen und mit VPython darstellen
8.5 Widgets
8.6 Steuerung mit Tastatur und Maus
8.7 Aufgaben
8.8 Lösungen
9 Python-Versionen, Programmbibliotheken und Distributionen
9.1 Python 2
9.2 Die Python-Distribution Anaconda
9.3 Die Python-Distribution WinPython
9.4 Aufgaben
9.5 Lösungen
10 Numerische Analysen mit Scipy
10.1 Hinweise zur Installation
10.2 Numerische Berechnung von Integralen
10.3 Interpolation
10.4 Berechnung von Nullstellen – Rootfinding
10.5 Optimierung
10.6 Signalanalyse mit der Schnellen Fourier Transformation (FFT)
10.7 Numerische Integration gewöhnlicher Differenzialgleichungen
10.8 Delaunay-Triangulierung
10.9 Berechnung der konvexen Hülle
10.10 Aufgaben
10.11 Lösungen
11 Bildverarbeitung mit scikit-image
11.1 Hinweise zur Installation
11.2 Bilder einlesen, darstellen und ausgeben
11.3 Farbbilder in Graustufenbilder wandeln und Bilder skalieren
11.4 Graustufenbild durch Programmanweisungen erzeugen
11.5 Ecken ermitteln – Corner Detection
11.6 Kanten detektieren – Canny-Filter
11.7 Kreise erkennen – Hough-Transformation
11.8 Abgleich von Vorlagen – Template-Matching
11.9 Aufgaben
11.10 Lösungen
Literaturverzeichnis