Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen

Ähnliche Dokumente
WIRTSCHAFTS- INFORMATIK

Objektorientiertes Programmieren für Ingenieure

DIN EN ISO 9001 : 2015 UMSETZEN. Pocket Power ANNI KOUBEK. Herausgegeben von Gerd F. Kamiske

Fit für die Prüfung Elektrotechnik Effektives Lernen mit Beispielen und ausführlichen Lösungen

Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten

Prüfprozesseignung nach VDA 5 und ISO

/.../ ein absolut lohnenswertes Buch. Prof. Dr. Stephan Kleuker, FH Nordakademie

Peter Kröner. Einstieg in CSS3. Standards und Struktur. 1. Auflage. Open Source Press

Bleiben Sie auf dem Laufenden!

SPD als lernende Organisation

Informatik. Christian Kuhn. Web 2.0. Auswirkungen auf internetbasierte Geschäftsmodelle. Diplomarbeit

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

Wahrscheinlichkeitsrechnung und Statistik downloaded from by on August 7, For personal use only.

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

Die gesetzliche Unfallversicherung - von der Behörde zum modernen Dienstleistungsunternehmen

Ist Europa ein optimaler Währungsraum?

wettbewerbsfähig gestalten

Mädchen spielen mit Puppen Jungen auch?

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten

Bibliografische Information der Deutschen Nationalbibliothek:

Kennzahlenbasiertes Prozeßcontrolling für den Produktionsbereich in einem Unternehmen der Investitionsgüterindustrie

Sport. Silke Hubrig. Afrikanischer Tanz. Zu den Möglichkeiten und Grenzen in der deutschen Tanzpädagogik. Examensarbeit

Bibliografische Information der Deutschen Nationalbibliothek:

Grundlagen der Wahrscheinlichkeitsrechnung und Statistik

Leseprobe. Hans-Bernhard Woyand. Python für Ingenieure und Naturwissenschaftler

Kundenzufriedenheit im Mittelstand

Spätes Bietverhalten bei ebay-auktionen

Otto Forster Thomas Szymczak. Übungsbuch zur Analysis 2

Das Konzept der organisationalen Identität

Massenentlassungen, Betriebsstilllegungen, Unternehmensinsolvenzen

Hans-Georg Kemper Henning Baars. Business Intelligence Arbeits- und Übungsbuch

Kapitalbedarfs- und Liquiditätsplanung bei einer Existenzgründung

Medientechnik. Basiswissen Nachrichtentechnik, Begriffe, Funktionen, Anwendungen. Ulrich Freyer

Yoga - die Kunst, Körper, Geist und Seele zu formen

Diplomarbeit BESTSELLER. Eva-Maria Matzker. Einrichtungen des Gesundheitswesens strategisch steuern. Anwendung der Balanced Scorecard

STRATEGISCHES PROZESS - MANAGEMENT

Personalbeschaffung im Internet

Das Spannungsverhältnis von Teamarbeit und Führung

Die Balanced Scorecard als Instrument des strategischen Managements aus Sicht eines mittelständischen Logistikunternehmens

Kundenorientierung von Dienstleistungsunternehmen als kritischer Erfolgsfaktor

Sichere Lagerung gefährlicher Stoffe

CATIA V5 downloaded from by on January 20, For personal use only.

Differenzialgleichungen für Einsteiger

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Robert Rieg. Planung und Budgetierung

Ulrich Schacht / Matthias Fackler (Hrsg.) Praxishandbuch Unternehmensbewertung

Frost- bzw. Frost-Taumittel-Widerstand von Beton

Technisches Zeichnen mit CATIA V5

Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik

Handbuch SEBLOD. Mehr als nur das Standard-Joomla!: Das Content Construction Kit SEBLOD in der Praxis. Axel Tüting

Erfolgsfaktoren für virtuelle Teams

Bibliografische Information der Deutschen Nationalbibliothek:

For personal use only.

Arbeitsbuch Mathematik

Aufgabensammlung Fertigungstechnik

Das Ingenieurwissen: Technische Thermodynamik

Management globaler Produktionsnetzwerke

Paul Chlebek. Praxis der User Interface-Entwicklung

Klientenzentrierte Gesprächsführung in der Physiotherapie:

Bibliografische Information der Deutschen Nationalbibliothek:

Aktivierung latenter Steueransprüche nach IFRS für steuerliche Verlust- und Zinsvorträge

Rainer Lasch/Gregor Schulte. Quantitative Logistik-Fallstudien

Innovative Preismodelle für hybride Produkte

Bibliografische Information der Deutschen Nationalbibliothek:

Entwicklung eines E-learning-Moduls zur Gesundheitsberichterstattung

Henrike Viehrig. Militärische Auslandseinsätze

Das Insolvenzverfahren unter Berücksichtigung der Ertragssteuern und der Umsatzsteuer

Bibliografische Information der Deutschen Nationalbibliothek:

Best Ager. Katja Zaroba

Günther Bourier. Statistik-Übungen

Alfred Böge I Walter Schlemmer. Lösungen zuraufgabensammlung Technische Mechanik

Nachhaltige Entwicklung im Tourismus in den Alpen

Sicherheitsaspekte kryptographischer Verfahren beim Homebanking

Lernen zu lernen. Werner Metzig Martin Schuster. Lernstrategien wirkungsvoll einsetzen

Wirksamkeit einer D&O Versicherung als Haftungsbeschränkung für Gesellschafter und Geschäftsführer im Innenverhältnis

Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen

Bibliografische Information der Deutschen Nationalbibliothek:

Bibliografische Information der Deutschen Nationalbibliothek:

Gerd Czycholl. Theoretische Festkörperphysik Band 1. Grundlagen: Phononen und Elektronen in Kristallen 4. Auflage

Waveletanalyse von EEG-Zeitreihen

LASER CUTTING. Eigene Designs erstellen, schneiden und gravieren. Anika Kehrer Teja Philipp Sven Rens

Für Oma Christa und Opa Karl. Ihr seid die Besten - Danke.

Das Internet als Instrument der Unternehmenskommunikation unter besonderer Berücksichtigung der Investor Relations

Bibliografische Information der Deutschen Nationalbibliothek:

Dennis Julius Broich. Mitarbeiterbindung in KMU. Analyse von Instrumenten und Maßnahmen

Grundlagen der doppelten Buchführung

Förderung der Autonomieentwicklung im Umgang mit Kinderliteratur in der Grundschule

Unternehmen. Unternehmen Stiftung downloaded from by on February 1, 2017 STIFTUNG

Change Management. Das Praxisbuch für Führungskräfte. Claudia Kostka

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Auswirkungen von Trainerwechseln auf den sportlichen Erfolg in der Fußball-Bundesliga

William K. Frankena. Ethik. Eine analytische Einführung 6. Auflage

Oliver Kruse I Volker Wittberg (Hrsg.) Fallstudien zur Unternehmensführung

Qualitätsmanagement - Lehrbuch für Studium und Praxis downloaded from by on July 28, 2017

Zielvereinbarung - Erfolgsfaktoren bei der Umsetzung

Wolfgang Grundmann / Rudolf Rathner. Abschlussprüfungen

Matthias Moßburger. Analysis in Dimension 1

Bachelorarbeit. Grundlagen im Dienstleistungsunternehmen. Mit Qualitätsmanagement und Kundenorientierung zum Erfolg. Tobias Müller

Projektmanagement und interkulturelle Kommunikation

Transkript:

hans-bernhard WOYAND PYTHON FÜR INGENIEURE UND NATURWISSENSCHAFTLER Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen Im Internet: Beispiele und Lösungen zu den Aufgaben

Woyand Python für Ingenieure und Naturwissenschaftler

Hans-Bernhard Woyand Python für Ingenieure und Naturwissenschaftler Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen Mit zahlreichen Bildern und Tabellen sowie 68 Aufgaben

Prof. Dr.-Ing. Hans-Bernhard Woyand Bergische Universität Wuppertal Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt 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. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht. Ebenso übernehmen Autoren und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb 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 mit Ausnahme der in den 53, 54 URG genannten Sonderfälle, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. 2017 Carl Hanser Verlag München Lektorat: Mirja Werner Herstellung: Franziska Kaufmann Satz: Hans-Bernhard Woyand Coverconcept: Marc Müller-Bremer, www.rebranding.de, München Coverrealisierung: Stephan Rönigk Druck und Bindung: Hubert & Co, Göttingen Printed in Germany ISBN: 978-3-446-45198-8 E-Book-ISBN: 978-3-446-45300-5 www.hanser-fachbuch.de

Vorwort Diese Einführung in die Programmiersprache Python entstand aus meinem Buch "Python Einführung in die Programmierung und mathematische Anwendungen". Es war im J. Schlembach Fachverlag erschienen und ist mittlerweile vergriffen. Für das vorliegende Buch wurde der Inhalt neu überarbeitet und erweitert. Insbesondere wird die neue Sprachversion Python 3 verwendet. 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 jedoch 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 graphische 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. Internet-Seite zum Buch Zu dem vorliegenden Buch existiert eine Internet-Seite, 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

VI Vorwort http://woyand.eu/python_buch Falls sich diese Adresse einmal ändern sollte, so kann der Leser den neuen Standort über die Internet-Seiten des Verlages http://www.hanser-fachbuch.de/buch/ Python+fuer+Ingenieure+und+Naturwissenschaftler/9783446451988 erfahren. Hinweise, Fehlermeldungen und Anregungen werden über die email-adresse info@woyand.eu gern entgegen genommen. 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 Manuskriptes. Frau Mirja Werner und Frau Franziska Kaufmann 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

Inhaltsverzeichnis 1 Einführung... 1 1.1 Die Programmiersprache Python... 1 1.2 Hinweise zur Installation...... 2 1.3 Erste Schritte - Der Interpretermodus von Python.... 3 1.3.1 Addition und Subtraktion... 4 1.3.2 Multiplikation und Division..... 4 1.3.3 Vergleichsausdrücke... 6 1.3.4 Logische Ausdrücke..... 7 1.3.5 Mathematische Funktionen..... 7 1.3.6 Grundlegendes über Variablen und Zuweisungen.... 8 1.3.7 Zeichenketten..... 10 1.3.8 Turtle-Grafik... 10 1.4 Python-Programme mit IDLE erstellen... 12 Aufgaben... 18 Lösungen...... 22 2 Grundlagen... 31 2.1 Einfache Objekttypen... 31 2.1.1 Ganze Zahlen - Integer. 31 2.1.2 Gleitpunktzahlen - Float... 32 2.1.3 Komplexe Zahlen - Complex... 34 2.1.4 Zeichenketten - Strings... 35 Aufgaben... 41 Lösungen... 42 2.2 Operatoren und mathematische Standardfunktionen... 45 2.2.1 Operatoren zur arithmetischen Berechnung... 45 2.2.2 Mathematische Standardfunktionen... 46 Aufgaben... 49 Lösungen... 49 2.3 Variablen und Zuweisungen... 50 2.4 Funktionen... 55 2.4.1 Funktionen mit Rückgabewert... 55 2.4.2 Funktionen ohne Rückgabewert... 59 Aufgaben... 60 Lösungen..... 62 2.5 Eingabe und Ausgabe.... 64 2.6 Programmverzweigungen... 67 2.6.1 Einfache if-anweisungen..... 67 2.6.2 Erweiterte if-anweisung... 68 Aufgaben... 70 Lösungen... 71 2.7 Bedingungen... 72

VIII Inhaltsverzeichnis 2.8 Programmschleifen...... 73 2.8.1 for-schleifen.... 73 2.8.2 while-schleifen... 78 Aufgaben... 81 Lösungen... 81 3 Vertiefung... 85 3.1 Listen..... 85 Aufgaben... 90 Lösungen... 91 3.2 Tuples... 95 3.3 Sets... 97 3.4 Dictionaries... 98 Aufgaben... 102 Lösungen... 103 3.5 Slicing... 105 3.6 List Comprehensions... 108 3.7 Iteratoren und die ZIP-Funktion... 109 3.8 Funktionen, Module und Rekursion... 111 3.8.1 Schlüsselwort-Parameter... 111 3.8.2 Module... 112 3.8.3 Rekursion... 114 3.8.4 Globale und lokale Variablen... 116 3.9 Turtle-Grafik - verbessert... 117 3.10 Dateien lesen und schreiben... 120 Aufgaben... 124 Lösungen... 129 4 Objektorientiertes Programmieren... 141 4.1 Klassen und Objekte... 141 4.2 Konstruktoren und Destruktoren... 149 4.3 Überladen von Operatoren... 152 4.4 Vererbung... 156 Aufgaben... 159 Lösungen... 161 5 Numerische Berechnungen mit Numpy... 173 5.1 Hinweise zur Installation... 173 5.2 Arrays...... 173 5.3 Darstellung von Matrizen.... 175 5.4 Spezielle Funktionen... 175 5.5 Operationen.... 176 5.6 Lineare Algebra. 178 5.7 Zufallswerte...... 179 Aufgaben..... 180 Lösungen... 181 6 Graphische Darstellungen mit Matplotlib...... 183 6.1 Hinweise zur Installation... 183 6.2 XY-Diagramme... 183

Inhaltsverzeichnis IX 6.3 Balken-Diagramme... 187 6.4 Torten-Diagramme... 189 6.5 Polar-Diagramme... 190 6.6 Histogramme... 191 6.7 Subplots... 192 6.8 Axes... 194 6.9 Anmerkungen und Legenden... 195 Aufgaben... 197 Lösungen... 197 7 Computeralgebra mit Sympy... 201 7.1 Hinweise zur Installation... 201 7.2 Differentiation... 202 7.3 Integration... 203 7.4 Potenzreihen... 205 7.5 Matrizenrechnung - lineare Algebra... 206 7.6 Die Datentypen Rational und Float... 208 7.7 Nützliche Ergänzungen 209 Aufgaben 211 Lösungen... 212 8 3D-Grafik mit VPython... 215 8.1 Hinweise zur Installation..... 215 8.2 Szenen.... 216 8.3 Grundkörper.... 220 8.4 Faces... 228 8.5 Controls... 231 8.6 Steuerung mit Tastatur und Maus... 236 Aufgaben... 240 Lösungen... 242 9 Python-Versionen, Programmbibliotheken und Distributionen... 249 9.1 Python 2... 250 9.2 Die Python-Distribution Anaconda... 252 Aufgaben... 253 Lösungen... 255 Literaturverzeichnis... 259 Sachwortverzeichnis. 261