Im Rahmen eines Praktikums entsteht bei uns eine oder mehrere Mathematik-Units.
Ziel ist das nichtlineare Kurven-Fitting (= Nichtlineare Ausgleichsrechnung = Nonlinear Approximation = Berechnung von n linearen und m nichtlinearen Parametern einer Kuve, die an l Punkte angepasst werden soll, n+m > l) durch Interation (Zweischritt-Verfahren).
Hierbei entstehen natürlich auch die Verfahren auf denen das basiert:
lineares Kurven-Fitting (= lineare Ausgleichsrechnung = linear Approximation) und
Iterative Suche eines lokalen Minimums einer Kurve
Das lineare Kurven-Fitting (Berechnung der n linearen Koeffizienten einer Funktion, die an l Punkte angepasst werden soll, l>n) basiert wiederum auf der Berechnung der n linearen Koeffizienten einer Funktion, die durch n Punkte geht. Und das basiert schließlich auf der Lösung eines linearen Gleichungssystems.
Das funktioniert alles schon ganz gut.
Die Sache mit dem linearen Gleichungssystem haben wir zusammen mit einigen Suport-Funktionen in eine "Matrix" Unit gepackt, die jetzt in einem veröffentlichungs-fähigen Zustand ist.
Wir hatten im Internet nach Delphi-Funktionen zur Lösung eines Linearen Gleichungssystems gesucht und zwei gefunden, die beide ineffektiv und buggy waren. Deshalb haben wir es neu programmiert. Scheint mir so weit funktionsfähig, stabil und performant zu sein (zumindest invertiert es es in wenigen Sekunden eine 1000*1000 Matrix mit Random-werten und einer Genauigkeit von (meisten) 10^-19).
Hat jemand Interesse, das zu testen (und/oder zu benutzen) ?
-Michael
Matrix - Mathematik
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Matrix - Mathematik
- Dateianhänge
-
- Matrix.pas
- Matrix-Mathematik (u.a. lineare Gleichungssysteme lösen)
-Michael Schnell - (8.26 KiB) 100-mal heruntergeladen