Steinkamp | Der Python-Kurs für Ingenieure und Naturwissenschaftler | E-Book | sack.de
E-Book

E-Book, Deutsch, 549 Seiten

Reihe: Rheinwerk Computing

Steinkamp Der Python-Kurs für Ingenieure und Naturwissenschaftler


2. Auflage 2023
ISBN: 978-3-8362-9288-7
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

E-Book, Deutsch, 549 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-8362-9288-7
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Dieses Handbuch bietet Ingenieuren und Wissenschaftlern einen praxisnahen Einstieg in die Programmierung mit Python. Python ist die ideale Sprache für schnelle, unkomplizierte Lösungen von klar umrissenen Problemen. Grenzwerte bestimmen, Differenzialgleichungen lösen, Testreihen visualisieren und vieles mehr - die Ingenieurs- und Naturwissenschaften stecken voller Aufgaben, die Sie elegant mit Python lösen können. Wie das geht, lernen Sie in übersichtlich strukturierten Kapiteln mit kommentierten Codebeispielen, Übungen und Musterlösungen.

Aus dem Inhalt:

  • Python: Grundlagen und Sprachstruktur
  • Boolesche Algebra
  • Statistische Berechnungen
  • Rechnen mit komplexen Zahlen
  • Numerische Berechnungen mit NumPy
  • Computeralgebra mt SymPy
  • Funktionsdarstellungen mit Matplotlib
  • Simulationen mit SciPy
  • 3D-Grafik mit VPython


Dr. Veit Steinkamp unterrichtete viele Jahre Elektrotechnik, Maschinenbau und Anwendungsentwicklung an Berufskollegs. Er hatte außerdem Lehraufträge an Fachhochschulen in Theoretischer Elektrotechnik und den Grundlagen der Elektrotechnik inne.
Steinkamp Der Python-Kurs für Ingenieure und Naturwissenschaftler jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


Materialien zum Buch ... 14  1.  Einführung ... 15  1.1 ... Entwicklungsumgebungen ... 16  1.2 ... Die Module von Python ... 20  1.3 ... Die Schlüsselwörter von Python ... 25  1.4 ... Ihr Weg durch dieses Buch ... 26  2.  Programmstrukturen ... 29  2.1 ... Lineare Programmstruktur ... 29  2.2 ... Funktionen ... 38  2.3 ... Verzweigungsstrukturen ... 47  2.4 ... Wiederholungsstrukturen ... 52  2.5 ... Datenstrukturen ... 67  2.6 ... Funktionaler Programmstil ... 81  2.7 ... Objektorientierter Programmstil ... 84  2.8 ... Projektaufgabe: Dimensionierung einer Welle ... 91  2.9 ... Aufgaben ... 93  3.  Numerische Berechnungen mit NumPy ... 95  3.1 ... NumPy-Funktionen ... 95  3.2 ... Vektoren ... 106  3.3 ... Matrizenmultiplikation ... 114  3.4 ... Lineare Gleichungssysteme ... 122  3.5 ... Projektaufgabe: Blitzschutzsystem ... 126  3.6 ... Aufgaben ... 129  4.  Funktionsdarstellungen und Animationen mit Matplotlib ... 131  4.1 ... 2D-Funktionsplots ... 131  4.2 ... 3D-Funktionsplots ... 174  4.3 ... Vektoren ... 179  4.4 ... Figuren, Linien und Pfeile darstellen ... 183  4.5 ... Animationen ... 191  4.6 ... Projektaufgabe: Stirling-Kreisprozess ... 200  4.7 ... Projektaufgabe: Animation eines Fadenpendels ... 207  4.8 ... Projektaufgabe: Animation eines Getriebes ... 211  4.9 ... Aufgaben ... 215  5.  Symbolisches Rechnen mit SymPy ... 219  5.1 ... Mathematische Grundoperationen ... 223  5.2 ... Matrizen multiplizieren ... 230  5.3 ... Gleichungen ... 233  5.4 ... Vereinfachungen von Ausdrücken ... 239  5.5 ... Reihenentwicklung ... 241  5.6 ... Partialbrüche ... 242  5.7 ... Kettenbrüche ... 244  5.8 ... Grenzwerte ... 248  5.9 ... Differenzieren ... 252  5.10 ... Integrieren ... 255  5.11 ... Differenzialgleichungen ... 260  5.12 ... Laplace-Transformation ... 270  5.13 ... Projektaufgabe: Sprungantwort einer Kettenschaltung ... 279  5.14 ... Projektaufgabe: Durchbiegung eines einseitig eingespannten Balkens ... 281  5.15 ... Projektaufgabe: Reaktionskinetik ... 287  5.16 ... Projektaufgabe: Zweimassenschwinger ... 291  5.17 ... Aufgaben ... 294  6.  Numerische Berechnungen und Simulationen mit SciPy ... 297  6.1 ... Nullstellen numerisch berechnen ... 298  6.2 ... Optimierungen ... 300  6.3 ... Interpolationen ... 302  6.4 ... Numerisches Differenzieren ... 304  6.5 ... Numerisches Integrieren ... 312  6.6 ... Differenzialgleichungen numerisch lösen ... 327  6.7 ... Diskrete Fourier-Transformation ... 349  6.8 ... Schreiben und Auslesen von Sounddateien ... 356  6.9 ... Signalverarbeitung ... 359  6.10 ... Projektaufgabe: Simulation eines Wälzlagerschadens ... 365  6.11 ... Projektaufgabe: Räuber-Beute-Modell ... 368  6.12 ... Projektaufgabe: Simulation einer Epidemie ... 373  6.13 ... Aufgaben ... 375  7.  3D-Grafik und Animationen mit VPython ... 379  7.1 ... Das Koordinatensystem ... 380  7.2 ... Grundkörper, Punkte und Linien ... 382  7.3 ... Körper bewegen sich ... 397  7.4 ... Animation von Schwingungen ... 411  7.5 ... Ereignisverarbeitung ... 416  7.6 ... Projektaufgabe: Animation eines gekoppelten Federpendels ... 419  7.7 ... Projektaufgabe: Animation von zwei gekoppelten Fadenpendeln ... 422  7.8 ... Aufgaben ... 425  8.  Rechnen mit komplexen Zahlen ... 427  8.1 ... Mathematische Operationen ... 428  8.2 ... Die eulersche Formel ... 430  8.3 ... Rechnen mit komplexen Widerständen ... 432  8.4 ... Funktionsplots mit komplexen Größen ... 435  8.5 ... Projektaufgabe: Elektrisches Energieübertragungssystem ... 439  8.6 ... Aufgaben ... 445  9.  Statistische Berechnungen ... 447  9.1 ... Messwerte erzeugen, abspeichern und auslesen ... 449  9.2 ... Häufigkeitsverteilung ... 454  9.3 ... Lageparameter ... 457  9.4 ... Streuungsparameter ... 461  9.5 ... Normalverteilung ... 465  9.6 ... Schiefe ... 468  9.7 ... Regressionsanalyse ... 470  9.8 ... Projektaufgabe: Simulation einer Qualitätsregelkarte ... 475  9.9 ... Aufgaben ... 480

10.  Boolesche Algebra ... 483  10.1 ... Logische Verknüpfungen ... 484  10.2 ... Gesetze der booleschen Algebra ... 488  10.3 ... Schaltungssynthese ... 490  10.4 ... Projektaufgabe: Siebensegmentcodierung ... 495  10.5 ... Aufgaben ... 498

11.  Interaktive Programmierung mit Tkinter ... 501  11.1 ... Interaktionen mit Befehlsschaltflächen, Textfeldern und Bezeichnungsfeldern ... 503  11.2 ... Der Layout-Manager von Tkinter ... 505  11.3 ... Auswahl mit Radiobutton ... 512  11.4 ... Slider ... 514  11.5 ... Die Zeichenfläche Canvas ... 515  11.6 ... Projektaufgabe: Drehfrequenzregelung eines fremderregten Gleichstrommotors ... 521  11.7 ... Aufgaben ... 534  Anhang ... 535  A.1 ... Glossar: Grundbegriffe der praktischen Informatik ... 535  A.2 ... Ableitungen elementarer Funktionen ... 536  A.3 ... Stammfunktionen elementarer Funktionen ... 537  A.4 ... Fourier-Reihen wichtiger elektrotechnischer Spannungsverläufe ... 538  A.5 ... Korrespondenztabelle wichtiger inverser Laplace-Transformationen ... 539  A.6 ... Literaturverzeichnis ... 540  Index ... 543


1    Einführung


Dieses Kapitel gibt Ihnen einen kurzen Überblick über die Erweiterungsmöglichkeiten, Einsatzgebiete und die Funktionalität der Programmiersprache Python.

Wenn Sie für Ihre wissenschaftliche Arbeit umfangreiche Berechnungen durchführen müssen und die Ergebnisse auch grafisch ansprechend präsentieren wollen, dann sollten Sie sich ernsthaft mit Python beschäftigen. Python ist eine Programmiersprache, die über eine ähnliche Funktionalität wie MATLAB verfügt, wenn sie durch entsprechende Module erweitert wird. Außerdem wird Python einschließlich aller Erweiterungsmodule kostenfrei zur Verfügung gestellt. Mit Python können Sie z. B. Gleichungssysteme lösen, Funktionsplots erstellen, differenzieren, integrieren und auch Differenzialgleichungen lösen. Auch das Erstellen grafischer Benutzeroberflächen ist möglich. Für fast jede Problemstellung in den Ingenieur- und Naturwissenschaften gibt es Lösungsangebote, die nicht nur ein breites Anwendungsgebiet abdecken, sondern zusätzlich auch noch durch Benutzerfreundlichkeit und Leistungsfähigkeit überzeugen.

Die Programmiersprache Python wurde Anfang der 1990er-Jahre von Guido van Rossum am Centrum Wiskunde & Informatica in Amsterdam entwickelt. Die Namensgebung hat nichts mit der gleichnamigen Schlange Python zu tun, sondern bezog sich auf die britische Komikergruppe Monty Python.

Die besonderen Vorteile und Leistungsmerkmale der Programmiersprache sind folgende:

  • Python ist eine leicht zu erlernende und leistungsfähige Programmiersprache.

  • Sie stellt effiziente Datenstrukturen bereit.

  • Sie erlaubt auch objektorientierte Programmierung.

  • Sie hat eine übersichtliche Syntax und eine dynamische Typisierung.

  • Python-Programme werden mit einem Interpreter übersetzt und eignen sich deshalb für eine schnelle Entwicklung von Prototypen.

  • Python steht für Linux, macOS und Windows zur Verfügung.

  • Python kann durch Module erweitert werden.

Das Modulkonzept ist der Grundpfeiler und eine der herausragenden Stärken von Python. Ein Modul ist ein Baustein eines Softwaresystems, das eine funktional in sich abgeschlossene Einheit bildet und einen bestimmten Dienst bereitstellt. Für ein abgrenzbares wissenschaftliches Problem wird jeweils ein Modul zur Verfügung gestellt, das genau auf diese Problemstellung zugeschnitten ist. In diesem Buch stelle ich Ihnen die fünf Module NumPy, Matplotlib, SymPy, SciPy und VPython vor.

1.1    Entwicklungsumgebungen


Eine Entwicklungsumgebung ist ein Softwareprogramm, das aus einem Texteditor, einem Debugger und einem Interpreter besteht. Der Texteditor einer Entwicklungsumgebung unterstützt den Programmierer beim Schreiben von Programmen, z. B. durch Syntaxhervorhebung, automatisches Einrücken des Quelltextes usw. Der Debugger hilft dem Programmierer bei der Fehlersuche, und der Interpreter führt die Anweisungen des Programms aus. Von den vielen Entwicklungsumgebungen, mit denen Python-Programme entwickelt werden können, sollen hier nur die Entwicklungsumgebungen IDLE, Thonny und Spyder kurz vorgestellt werden.

1.1.1    IDLE


Die Abkürzung IDLE steht für Integrated Development and Learning Environment. Abbildung 1.1 zeigt die Bedienoberfläche von IDLE.

Abbildung 1.1     Die Entwicklungsumgebung IDLE

Die IDLE ist Bestandteil des Python-Downloads. Mit der Installation von Python wird sie gleichzeitig zusammen mit dem Paketmanager Pip installiert. Unter der URL https://www.python.org/downloads/ können Sie die aktuelle Version von Python für die Betriebssysteme Linux, macOS und Windows herunterladen. Die einzelnen Module NumPy, Matplotlib, SymPy, SciPy und VPython müssen Sie mit dem Paketmanager Pip installieren (siehe Abschnitt 1.1.4). Dabei kann es zu Problemen kommen, wenn Sie eine neue Python-Version installieren: Die Module können mit der neuen IDLE-Version nicht mehr importiert werden und die Programme werden nicht mehr ausgeführt. Wie Sie dieses Problem eventuell beheben können, zeige ich Ihnen in Abschnitt 1.1.4. Falls Sie mit der Installation der Python-Module scheitern sollten, empfehle ich Ihnen die Entwicklungsumgebung Thonny.

Wenn Sie auf RunPython Shell klicken, öffnet sich die Python-Shell. Hinter dem Eingabeprompt >>> können Sie direkt Python-Befehle oder mathematische Ausdrücke eingeben, z. B. 2+3, 3*5 oder 7/5. Jede Eingabe müssen Sie mit der (¢)-Taste abschließen.

1.1.2    Thonny


Thonny ist zwar, gemessen an den professionellen Angeboten, eine recht einfach gestaltete Entwicklungsumgebung mit einem vergleichsweise geringen Funktionsumfang, sie ist aber aufgrund der leichten Bedienbarkeit besonders für Programmieranfänger geeignet. Mit Thonny können Sie alle hier im Buch besprochenen Programmbeispiele ausführen und testen. Abbildung 1.2 zeigt die Bedienoberfläche.

Abbildung 1.2     Die Entwicklungsumgebung Thonny

Thonny steht unter der URL https://thonny.org für die Betriebssysteme Linux, macOS und Windows als Download zur Verfügung.

Der Quelltext des Programms wird in den Texteditor (linker oberer Bereich) eingegeben. Nachdem das Programm mit der Funktionstaste (F5) oder mit einem Mausklick auf den Start-Button gestartet wurde, erscheint ein Dialogfenster, in das der Dateiname des Programms eingegeben werden muss. Das Ergebnis von numerischen Berechnungen wird dann in dem Fenster Komandozeile links unten in der Python-Shell ausgegeben. Funktionsplots von Matplotlib-Programmen werden in einem separaten Fenster ausgegeben. In der Shell, auch Python-Konsole genannt, können Sie auch direkt Python-Befehle eingeben. Der Assistent auf der rechten Seite des Hauptfensters unterstützt Sie bei der Fehlersuche. Allerdings sollten Sie diesbezüglich keine zu hohen Erwartungen haben.

Ein besonders wichtiges Feature von Thonny ist, dass Sie die Module NumPy, Matplotlib, SymPy, SciPy und VPython einfach nachinstallieren und aktualisieren können. Dazu brauchen Sie nur den Dialog WerkzeugeVerwalte Pakete zu öffnen (siehe Abbildung 1.3). Dann geben Sie oben links im Textfeld den Namen des zu installierenden Moduls ein und klicken auf Installieren oder Aktualisieren.

Abbildung 1.3     Installation von Modulen

Wenn Sie ein Modul deinstallieren wollen, dann müssen Sie das entsprechende Modul im linken Fenster auswählen. Dann erscheint rechts neben der Befehlsschaltfläche Installieren die Befehlsschaltfläche Deinstallieren. Ein besonderer Vorteil des Paketmanagers von Thonny besteht darin, dass Sie auch ältere Versionen aller verfügbaren Module testen können. Dazu müssen Sie nur auf die Befehlsschaltfläche direkt rechts neben der Befehlsschaltfläche Installieren klicken, und es öffnet sich ein Fenster, in dem Sie die gewünschte Version des Moduls auswählen können.

1.1.3    Spyder


Spyder ist die Entwicklungsumgebung der Anaconda-Distribution. Bis auf VPython sind die in diesem Buch behandelten Module NumPy, Matplotlib, SymPy und SciPy schon eingebaut.

Abbildung 1.4     Die Entwicklungsumgebung Spyder

Spyder steht unter der URL https://www.spyder-ide.org für Linux, macOS und Windows als kostenfreier Download zur Verfügung.

Wenn Sie eine Animation mit einem Matplotlib-Programm ausführen wollen, dann müssen Sie in den Einstellungen unter IPython-KonsoleGrafik als Backend Automatisch auswählen. Nach dem Programmstart erscheint dann ein separates Fenster, in dem die Animation ausgeführt wird. Auch Matplotlib-Programme, die Slider-Steuerelemente enthalten, können nur mit dieser Option interaktiv ausgeführt werden.

Spyder ist zwar eine sehr leistungsfähige Entwicklungsumgebung. Sie hat allerdings den Nachteil, dass die Nachinstallation von standardmäßig nicht mitinstallierten Modulen, wie z. B. VPython, für Anfänger nicht leicht zu handhaben ist. Nähere Hinweise zur Installation von Python-Modulen finden Sie in der Dokumentation zu Spyder (https://www.spyder-ide.org).

1.1.4    Pip


Wenn Sie andere Entwicklungsumgebungen als Thonny oder Spyder benutzen wollen, dann können Sie Python-Module mit Pip installieren. Pip ist keine Entwicklungsumgebung, sondern der Paketmanager von Python, der...


Steinkamp, Veit
Dr. Veit Steinkamp unterrichtete viele Jahre Elektrotechnik, Maschinenbau und Anwendungsentwicklung an Berufskollegs. Er hatte außerdem Lehraufträge an Fachhochschulen in Theoretischer Elektrotechnik und den Grundlagen der Elektrotechnik inne.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.