Python für Ingenieure und Naturwissenschaftler - Hans-Bernhard Woyand - E-Book

Python für Ingenieure und Naturwissenschaftler E-Book

Hans-Bernhard Woyand

0,0
23,99 €

Beschreibung

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

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 388

Bewertungen
0,0
0
0
0
0
0



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

Vorwort

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.

Zielgruppe

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.

Aufgabenorientierte Lehre

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.

Software

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.

Webseite zum Buch

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

[email protected]

gern entgegengenommen.

Haftungsausschluss

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.

Danksagung

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 Auflage

Fü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 Auflage

Fü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 Auflage

Fü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

Inhalt

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

1Einführung