[LEHRVERANSTALTUNGEN]   [SOFTWARE]   [KONTAKT]

Software

Technisch-wissenschaftliche Anwendungen in C/C++

Die hier zur Verfügung gestellte Software kann frei verwendet werden. Es ist erlaubt, sie zu kopieren, zu verändern und zu verbreiten (Boost Software License, externer Link!). An Weiterentwicklungen, zum Beispiel im Rahmen studentischer Projektarbeiten, bin ich sehr interessiert. Schreiben Sie mir einfach eine E-Mail! Über Rückmeldungen zu Programmierfehlern oder über Erweiterungsideen freue ich mich ebenso wie über Anwendungsbeispiele aus der Praxis.


HMChart - 2D-Charts für Windows, Linux und OS X

HMChart ermöglicht die Programmierung einfacher 2D-Charts in C/C++ unter Microsoft Windows und dem X Window System (X11). Die X11-Version kann sowohl unter Linux als auch unter Mac OS X genutzt werden. Die Charts werden in separaten Fenstern angezeigt, der Einsatz von HMChart ist daher – gerade auch – aus Konsolenanwendungen heraus möglich. Ein Popup-Menü (rechte Maustaste) stellt Funktionen zum Vergrößern und Verkleinern sowie zum Ausdrucken der Charts zur Verfügung. Animierte Charts werden ebenfalls unterstützt. Unter Microsoft Windows ist es möglich, Charts in bestehende Benutzeroberflächen zu integrieren (siehe Dokumentation).


HMExcel - Automatisierung von Microsoft Excel

HMExcel ermöglicht die Automatisierung (Fernsteuerung) der Tabellenkalkulation Microsoft Excel unter dem Betriebssystem Microsoft Windows. Es existieren Funktionen zum Schreiben und Lesen von Zahlenwerten und Texten an beliebigen Positionen im Arbeitsblatt. Es können bestehende Arbeitsmappen geöffnet oder neue, leere Arbeitsmappen angelegt werden. Seit Oktober 2016 wird auch das Abspeichern von Arbeitsmappen auf der Festplatte unterstützt. Der Einsatz von HMExcel unter anderen Betriebssystemen wie Linux oder Mac OS X ist zurzeit allerdings nicht möglich!


HMMatrix - Vektoren und Matrizen

Die Funktions- und Klassenbibliothek HMMatrix dient zur Arbeit mit Vektoren und quadratischen Matrizen in C/C++. Für beide Sprachen werden eigene Schnittstellen (Header-Dateien) zur Verfügung gestellt. Grundlegende Operationen wie die Addition und Multiplikation von Vektoren und Matrizen sind mit HMMatrix möglich, ebenso wie QR- und LU-Zerlegungen. Zur Ein- und Ausgabe auf dem Bildschirm und in Dateiform existieren verschiedene Funktionen.

In den neueren Versionen von HMMatrix wurden Funktionen zur Berechnung von Eigenwerten, Eigenvektoren und Polynomen hinzugefügt: Die Berechnung von Eigenwerten und Eigenvektoren geschieht über das zyklische Jakobiverfahren (für symmetrische Matrizen) oder die von-Mises-Vektoriteration (Siehe Dokumentation, Anhang B). Funktionswerte und Nullstellen von Polynomen können nun berechnet werden, charakteristische Polynome von Matrizen ebenfalls. Weitere Funktionen dienen zur Lösung linearer Gleichungssysteme und zur Berechnung der schnellen Fouriertransformation (FFT, Fast Fourier Transform). Multiplikationen größerer Matrizen können bei Bedarf mittels OpenMP auf mehrere Prozessorkerne verteilt und so oft deutlich beschleunigt werden (siehe Dokumentation, Anhang C).


HMNull - Numerische Verfahren zur Nullstellenbestimmung

In der Funktionsbibliothek HMNull sind die folgenden drei Verfahren zur numerischen Nullstellenbestimmung implementiert: das Bisektionsverfahren (auch Intervallhalbierungsverfahren), das Newtonverfahren (auch Newton-Raphson-Verfahren) und das Sekantenverfahren. In C++-Projekten stehen zusätzliche Funktions-Templates zur Verfügung, wodurch die Berechnungsverfahren im Vergleich zur Programmierung in C etwas einfacher anzuwenden sind.


HMDGL - Numerische Integration von Differentialgleichungen

HMDGL ermöglicht die numerische Lösung gewöhnlicher Differentialgleichungen in den Programmiersprachen C und C++. Die Differentialgleichung muss in der Form u' = f(u, t) vorliegen, Differentialgleichungen n-ter Ordnung sind daher zunächst in ein System von n Differentialgleichungen erster Ordnung umzuwandeln, u' und u sind in diesem Fall Vektoren mit jeweils n Elementen. Als Lösungsverfahren stehen das Euler-, das Heun- und das klassische vierstufige Runge-Kutta-Verfahren zur Verfügung. Im Juni 2017 wurde die Programmierung in C++ durch eine neu erstellte Programmierschnittstelle deutlich vereinfacht.