Nichtlineare Kurvenanpassung - LM-Formel-String
- Aktualisiert2025-07-30
- 5 Minute(n) Lesezeit
Bestimmt anhand des Levenberg-Marquardt-Algorithmus die Parameter, die die Eingangspaare (X, Y) und damit eine nichtlineare Funktion des Typs y = f(x,a) am besten erfüllen (a sind die Parameter). Die polymorphe Instanz muss manuell ausgewählt werden.

Ein-/Ausgänge
Anfangsparameter
—
Anfangsparameter gibt die vermutete Lösung für Parameter für beste Anpassung an. Die Länge von Anfangsparameter muss der Länge von Parameter in Modellbeschreibung entsprechen. Der Erfolg einer nicht linearen Kurvenanpassung hängt davon ab, wie nah die Anfangsparameter an Parameter für beste Anpassung liegen. Daher sollten Sie vor Anwendung dieses VIs alle zur Verfügung stehenden Quellen verwenden, um möglichst genaue Anfangsparameter für die Schätzung zu erhalten.
Y
—
Y ist das Array mit den abhängigen Werten oder den Beobachtungswerten. Die Anzahl der Eingangspunkte muss größer 0 sein.
X
—
X ist das Array mit den unabhängigen Werten. Die Anzahl der Eingangspunkte muss größer 0 sein.
Gewichtung
—
Gewichtung ist ein Array mit den Gewichtungen für die Beobachtungswerte Y. Wenn Gewichtung offen gelassen wird, werden alle Elemente von Gewichtung automatisch auf 1 gesetzt. Wenn Gewichtung weniger Elemente als Y enthält, füllt dieses VI das Ende von Gewichtung mit Einsen auf, so dass die Länge von Gewichtung der Länge von Y entspricht. Wenn Gewichtung mehr Elemente als Y enthält, ignoriert das VI die zusätzlichen Elemente am Ende von Gewichtung. Bei Elementen kleiner als 0 wird mit dem Absolutwert gearbeitet.
Modellbeschreibung
—
Modellbeschreibung gibt die Beschreibung des Formel-Strings des Modells an, auf das eine nicht lineare Kurvenanpassung angewendet werden soll. Wenn sich die Formelknoten und der Parser in den Mathematik-VIs unterscheiden, verwendet dieses VI die Syntax des Parsers. Verwenden Sie beispielsweise zur Potenzierung die Parser-Syntax ^ und nicht die Formelknoten-Syntax **.
Fehler (Eingang, kein Fehler)
—
Fehler (Eingang) beschreibt Fehlerbedingungen, die vor der Ausführung des Knotens auftreten. An Fehler (Eingang) werden Standardfehlerdaten übergeben.
Abbruch
—
Abbruch gibt die Bedingungen für den Abbruch des Anpassungsprozesses an.
Beste nichtlineare Anpassung
—
Beste nichtlineare Anpassung gibt die y-Werte des angepassten Modells aus, das den unabhängigen Werten in X entspricht.
Parameter für beste Anpassung
—
Parameter für beste Anpassung gibt das Array aus Parametern aus, mit denen der mittlere gewichtete Fehler zwischen Beste nichtlineare Anpassung und beobachteten Y-Werten minimiert wird.
Kovarianz
—
Kovarianz ist die Matrix der Kovarianzen. Cjk ist die Kovarianz zwischen a[j] und a[k]. c[jj] ist die Varianz von a[j]. Dieses VI erzeugt die Kovarianz Cgemäß der folgenden Gleichung: C = (0,5D)^-1 , wobei D die Hessian der Funktion in Bezug auf ihre Parameter ist.
Fehler (Ausgang)
—
Fehler (Ausgang) enthält Angaben zum Fehler. Dieser Ausgang ist ein Standardausgang zur Fehlerausgabe.
Restbetrag
—
Restbetrag gibt den mittleren gewichteten Fehler zwischen Beste nichtlineare Anpassung und beobachteten Y-Werten aus. |
Dieses VI berechnet mithilfe der Levenberg-Marquardt-Methode die Parameter für beste Anpassung, mit denen der mittlere gewichtete Fehler zwischen beobachteten Y-Werten und Beste nichtlineare Anpassung minimiert wird. Das Kurvenmodell wird durch folgende Gleichung bestimmt:
y[i] = f(x[i], a0, a1, a2, …)wobei a0, a1, a2, … die Parameter sind.
Für die Levenberg-Marquardt-Methode wird y nicht für eine lineare Beziehung mit den Parametern benötigt.
Die Hesse-Matrix wird häufig für numerische Optimierungen wie die Newton-Methode eingesetzt. Um die Schwäche der singulären Hesse-Matrix zu vermeiden, wird mit der Levenberg-Marquardt-Methode der Hesse-Matrix eine positive definite Diagonalmatrix hinzugefügt. Diese positive definite Diagonalmatrix ist der Hauptunterschied zwischen der Levenberg-Marquardt- und der Gauß-Newton-Methode. Weitere Informationen zur Levenberg-Marquardt-Methode finden Sie unter Numerische Optimierung im Hilfethema Literaturhinweise zur Mathematik.
Das nichtlineare Levenberg-Marquardt-Verfahren funktioniert sowohl für lineare als auch für nichtlineare Kurven. Zur Anpassung an lineare Kurven ist das VI Allgemeine lineare Anpassung jedoch besser geeignet. Da die Richtigkeit der Ergebnisse beim Levenberg-Marquardt-Verfahren nicht immer garantiert werden kann, müssen Sie die Ergebnisse nachprüfen.
Beispiele
Die folgenden Beispieldateien sind in LabVIEW enthalten.
- labview\examples\Mathematics\Fitting\Ellipse fit.vi
- labview\examples\Mathematics\Fitting\Sum of 3 Gaussians with offset fit.vi
- labview\examples\Mathematics\Fitting\Gaussian surface with offset fit.vi
Anfangsparameter
—
Modellbeschreibung
—
Modell
—
Parameter
—
Fehler (Eingang, kein Fehler)
—
Abbruch
—
Max. Iterationen
—
Toleranz
—
Beste nichtlineare Anpassung
—
Kovarianz
—
Fehler (Ausgang)
—
Restbetrag
—