Der Einsatz des Computers zum Lösen ingenieurmathematischer Aufgabenstellungen kann auf unterschiedliche Weise erfolgen.
2.1.1Modellierung und Diskretisierung¶
Allen Herangehensweisen gemeinsam ist, dass das zu lösende Problem zunächst manuell (also ohne Computer) präzise in der Sprache der Mathematik formuliert werden muss, damit es überhaupt der Bearbeitung mit dem Computer zugänglich wird. Am Ende dieses Prozessen steht meist eine Standardaufgabe wie
Optimierungsproblem,
Integralgleichung,
Differentialgleichung,
statisitisches Problem (Parameterschätzung, Hypothesentest,...).
Die meisten aus technischen und physikalischen Betrachtungen abgeleiteten mathematischen Modelle sind kontinuierlich, verwenden also lückenlose Zeit-, Orts- und andere Wertangaben. Mit solchen kann der Computer nicht umgehen. Man sagt, die Modelle müssen erst diskretisiert werden. Beispielsweise müssen zeitlich Verläufe auf die Betrachtung endliche vieler Zeitpunkte reduziert werden.
2.1.2Symbolisches vs. numerisches Rechnen¶
Für das Ausführen von Berechnungen mit dem Computer gibt es zwei grundlegend verschiedene Herangehensweisen:
Beim symbolischen Rechnen werden mathematische Formeln durch den Computer in der gleichen Weise umgeformt, kombiniert und gelöst wie man es beim manuellen Rechnen tun würde. Dadurch erhält man exakte Ergebnisse, die wiederum als Formeln vorliegen. Bei der verwendeten Software spricht man auch von Computer-Algebra-Systemen (CAS).
Beim numerischen Rechnen werden nur Grundrechenarten verwendet. An vielen Stellen des Rechenweges werden gerundete oder nur näherungsweise ermittelte Zwischenergebnisse verwendet. Als Endergebnis stehen nur Zahlen zur Verfügung, bei denen nicht mehr erkennbar ist, wie diese entstanden sind (z.B. 1.41421356 statt ).
Im technischen und wissenschaftlichen Bereich wird praktisch nur numerisch gerechnet. Gründe:
Numerische Berechnungen sind viele schneller, da Computer für diese Art von Berechnungen gebaut sind. Üblich sind heute mehrere Milliarden Grundrechenoperationen pro Sekunde.
Symbolisches Rechnen liefert bei komplexen Aufgabenstellungen meist keine Lösung, da die Lösungen nicht explizit als Formeln darstellbar sind.
Gelegentlich verwendet man CAS für kleine, klar abgegrenzte Teilschritte, bei denen das Vorliegen einer expliziten Formel in den Folgeschritten (Geschwindigkeits-)Vorteile bringt.
Grundlage von “KI” sind künstliche neuronale Netze. Das sind aus Tausenden oder Millionen einfacher Grundfunktionen zusammengesetzte nichtlineare Funktionen, welche Millionen durch ein Optimierungsverfahren zu bestimmende Parameter enthalten. Für die Durchführung der Optimierung werden die partiellen Ableitungen des neuronalen Netzes bezüglich der Parameter benötigt. Diese können gut symbolisch berechnet werden, was Näherungsfehler vermeidet. Außerdem beschleunigt das konkrete Vorliegen einer Formel die Auswertung der Ableitungen während der Optimierung. Verfahrensbedingt müssen diese Ableitungen millionenfach ausgewertet werden.
Das symbolische Berechnen der Ableitungen von Funktionen, die aus einfachen Grundfunktionen zusammengesetzt sind, nennt man auch automatisches Differenzieren. Die eigentliche Optimierung erfolgt dann numerisch, da das Problem aufgrund seiner Komplexität nicht symbolisch lösbar ist.
2.1.3Programmcode vs. grafische Oberfläche¶
Für praktisch alle Standardaufgaben im Ingenieurwesen gibt es Software mit grafischer Benutzeroberfläche (kurz: GUI für “graphical user interface”). Diese habe jedoch einige Nachteile:
Möglich ist nur, was die GUI vorsieht. Erweiterungen oder Änderungen sind für Nutzer nur schwer oder gar nicht umsetzbar.
Abläufe lassen sich schlecht automatisieren, da diese aus Folgen von Mausklicks bestehen.
Für Aufgabenstellungen, die erstmalig oder nur selten auftreten, existiert keine Software mit GUI (oder ist extrem teuer).
Aus diesen Gründen ist der Einsatz einer geeigneten (!) Programmiersprache auch im Ingenieurbereich für zahlreiche Aufgaben deutlich vorteilhafter. Insbesondere
sind die Anwendungsmöglichkeiten unbeschränkt,
lassen sich alle Abläufe ohne große Anpassungen automatisieren,
kann bei Bedarf im Nachgang eine GUI hinzugefügt werden.
Hinzu kommt, dass sich Programmcode einfacher versionieren lässt und gemeinsames Bearbeiten (auch in Echtzeit) problemlos möglich ist.
Üblich im Ingenieurbereich sind:
Python/Jupyter (wird in dieser Veranstaltung verwendet),
Für die Arbeit mit GUI (z.B. bei FEM-Simulationen) kann beispielsweise FreeCAD verwendet werden.
Die Arbeit mit Programmcode statt grafischer Oberfläche ist keineswegs komplizierter. Lediglich der Funktionsumfang ist größer. Aufgrund der Vielzahl von Möglichkeiten ist es nicht zweckmäßig für jede Funktion einen Button oder einen Menüeintrag zu bieten. Stattdessen werden alle Aktionen durch Textbefehle ausgelöst.