Theorie der nichtlinearen Kurvenanpassung

So passt Origin eine Linie an

Das Ziel der nichtlinearen Anpassung ist es, die Parameterwerte abzuschätzen, die die Daten am besten beschreiben. Allgemein können wir den Prozess der nichtlinearen Kurvenanpassung wie unten beschreiben.

  1. Erzeugen Sie eine Anfangsfunktionskurve aus den Initialisierungswerten.
  2. Führen Sie eine Iteration durch, um die Parameterwerte anzupassen, so dass die Datenpunkte näher an der Kurve liegen.
  3. Hören Sie auf, wenn die minimale Distanz das Stopp-Kriterium erreicht, um die beste Anpassung zu erhalten.

Origin enthält Optionen für verschiedene Algorithmen, die unterschiedliche iterative Prozeduren und Statistiken haben, um die minimale Distanz zu definieren.

Explizite Funktionen

Anpassungsmodell

Ein allgemeines nichtlineares Modell kann wie folgt ausgedrückt werden:

Y=f(X, \boldsymbol{\beta})+\varepsilon (1)

wobei X = (x_1, x_2, \cdots , x_k)' die unabhängige Variable und \boldsymbol{\beta} = (\beta_1, \beta_2, \cdots , \beta_k)' der Parameter ist.

Beispiele für die explizite Funktion

  • y=y_0+Ae^{-x/t}

Algorithmen der kleinsten Quadrate

Der Algorithmus der kleinsten Quadrate besteht darin, die Parameter zu wählen, die die Abweichungen der theoretischen Kurve(n) von den experimentellen Punkten minimieren. Diese Methode wird auch Chi-Quadrat-Minimierung genannt und wird wie folgt definiert:

\chi ^2=\sum_{i=1}^n \left [ \frac{Y_i-f(x_i^{\prime },\hat{\beta }) } {\sigma _i} \right ]^2 (2)

wobei x_i^{\prime } der Zeilenvektor für die i-te (i = 1, 2, …, n) Beobachtung ist.

Diese Abbildung stellt das Konzept in einem einfachen linearen Modell dar (Beachten Sie, dass die mehrfache Regression und der nichtlineare Fit sich ähneln).

Illustration of the Least Squares Method.png

Die am besten angepasste Kurve stellt das angenommene theoretische Modell dar. Für einen bestimmten Punkt (x_i,y_i)\,\! im ursprünglichen Datensatz wird der entsprechende theoretische Wert bei x_i\,\! mit bezeichnet \widehat{y_i}.

Gibt es zwei unabhängige Variable im Regressionsmodell, minimiert das Schätzen der kleinsten Quadrate die Abweichung der experimentellen Datenpunkte zur am besten angepassten Oberfläche. Gibt es mehr als 3 unabhängige Variablen, ist das angepasste Modell eine Hyperfläche. In diesem Fall wird die angepasste Oberfläche (oder Kurve) nach der Regression nicht gezeichnet.

Origin bietet zwei Optionen, um die Parameterwerte in der iterativen Prozedur anzupassen.

Algorithmus Levenberg-Marquardt (L-M)

Der Algorithmus Levenberg-Marquardt (L-M)11 ist eine iterative Prozedur, die die Gauss-Newton-Methode und die Methode des steilsten Abstiegs kombiniert. Der Algorithmus funktioniert gut für die meisten Fälle und ist Standard für nichtlineare Routinen der kleinste Quadrate.

  1. Berechnen Sie den \chi ^2(b)-Wert aus den gegebenen Initialisierungswerten: b .
  2. Wählen Sie einen moderaten Wert für \lambda, sagen wir \lambda = 0,001.
  3. Löschen Sie die Levenberg-Marquardt-Funktion11 für \delta b und werten Sie \chi ^2(\beta + \delta b) aus.
  4. Wenn \chi ^2(\beta + \delta b) \geq \chi ^2(b), erhöhen Sie \lambda um einen Faktor von 10 und kehren Sie zurück zu Schritt 3.
  5. Wenn \chi ^2(\beta + \delta b) \leq \chi ^2(b), verringern Sie \lambda um einen Faktor von 10, aktualisieren Sie die Parameterwerte auf \delta b und kehren Sie zurück zu Schritt 3.
  6. Stoppen Sie, bis die Temp-Regression and Curve Fitting-image125.gif-Werte, die in zwei aufeinanderfolgenden Iterationen berechnet werden, klein genug sind (verglichen mit der Toleranz).
Downhill-Simplex-Algorithmus

Neben der L-M-Methode bietet Origin auch eine Downhill-Simplex-Approximation9,10. In der Geometrie ist ein Simplex ein Polytop von N + 1 Sattelpunkten in N Dimensionen. Bei einer nichtlinearen Optimierung existiert ein Analogon für eine Zielfunktion von N Variablen. Während der Iterationen passt der Simplex-Algorithmus (auch bekannt als Nelder-Mead) den Parameter "Simplex" an, bis er bis zu einem lokalen Minimum konvergiert.

Anders als die L-M-Methode benötigt die Simplex-Methode keine Ableitungen und bleibt effektiv, auch wenn die Rechenbelastung gering ist. Normalerweise, wenn Sie keinen guten Wert für die Parameterinitialisierung erhalten haben, können Sie diese Methode ausprobieren, um den ungefähren Parameterwert zur weiteren Anpassungsberechnung mit L-M zu erhalten. Die Simplex-Methode ist insofern stabiler, als dass sie weniger in unbedeutendere Bereiche des Parameterraums wandert; allerdings ist sie im Allgemeinen langsamer als L-M, besonders in der Nähe eines lokalen Minimums. Tatsächlich gibt es keinen "perfekten" Algorithmus für eine nichtlineare Anpassung, und vieles kann das Ergebnis beeinflussen (z.b. Initialisierungswerte). Bei komplizierten Modellen ist eine Methode vielleicht besser geeignet als eine andere. Außerdem möchten Sie vielleicht beide Methoden testen, um die Anpassungsoperation durchzuführen.

Algorithmus der orthogonalen Distanzregression (ODR)

Der Algorithmus der ODR (Orthogonale Distanzregression) minimiert die Summe der Fehlerquadrate, indem sowohl Anpassungsparameter und Werte der unabhängigen Variable in dem iterativen Prozess angepasst werden. Das Residuum in der ODR ist nicht die Differenz zwischen dem beobachteten Wert und dem vorhergesagten Wert für die abhängige Variable, sondern die orthogonale Distanz zwischen den Daten zu der angepassten Kurve.

Origin verwendet den ODR-Algorithmus in ODRPACK958.

Für eine explizite Funktion könnte der ODR-Algorithmus folgendermaßen ausgedrückt werden:

\min\left (\sum_{i=1}^{n}\left (w_{yi}\cdot \epsilon_{i} ^{2}+w_{xi}\cdot \delta_{i}^{2} \right ) \right )

unterliegt den Nebenbedingungen:

y_{i}=f\left ( x_{i} +\delta_{i}; \beta \right )-\epsilon _{i}\ \ \ \ \ \ i=1,...,n

wobei w_{xi} und w_{yi} die Gewichtungen der Anwendereingabe von x_{i} und y_{i} sind sowie \delta_{i} und \epsilon_{i} das Residuum der entsprechenden x_{i} und y_{i}. \beta ist der Anpassungsparameter.

Weitere Einzelheiten zum ODR-Algorithmus finden Sie unter ODRPACK958.

Vergleich zwischen ODR und L-M

Um zwischen ODR- und L-M-Algorithmus für Ihre Anpassung zu wählen, können Sie in der folgenden Informationstabelle nachlesen:

Orthogonale Distanzregression Levenberg-Marquardt
Anwendung Implizite und explicit Funktionen Nur explizite Funktionen
Gewichtung Unterstützt sowohl X- als auch Y-Gewichtung Unterstützt nur Y-Gewichtung
Residuumsquelle Die orthogonale Distanz von den Daten zu der angepassten Kurve Die Differenz zwischen dem beobachteten Wert und dem vorhergesagten Wert
Iterationsprozess Anpassen der Werte der Anpassungsparameter und der unabhängigen Variablen Anpassen der Werte der Anpassungsparameter

Implizite Funktionen

Anpassungsmodell

Eine allgemeine implizite Funktion könnte ausgedrückt werden mit:

f\left ( X, Y, \beta \right )-const=0 (5)

wobei X = (x_1, x_2, \cdots , x_k)' und Y = (y_1, y_2, \cdots , y_k)' Variablen sind, \beta die Anpassungsparameter sind und const eine Konstante ist.

Beispiele für die implizite Funktion:

  • f = \left(\frac{x-x_c}{a}\right)^2 + \left(\frac{y-y_c}{b}\right)^2 - 1

 

Algorithmus der orthogonalen Distanzregression (ODR)

Die ODR-Methode kann für sowohl implizite als auch explizite Funktionen verwendet werden. Um weitere Einzelheiten der ODR-Methode zu erfahren, lesen Sie bitte die Beschreibung der ODR-Methode im obigen Abschnitt.

Für implizite Funktionen könnte der ODR-Algorithmus folgendermaßen ausgedrückt werden:

\min\left (\sum_{i=1}^{n}\left ( w_{xi}\cdot \delta_{xi}^{2}+w_{yi}\cdot \delta_{yi}^{2} \right ) \right )

unter der Bedingung:

f\left ( x_{i}+\delta_{xi},y_{i}+\delta_{yi},\beta \right )= 0\ \ \ \ \ \ i=1,...,n

wobei w_{xi} und w_{yi} die Gewichtungen der Anwendereingabe von x_{i} und y_{i} sind sowie \delta_{xi} und \delta_{yi} das Residuum der entsprechenden x_{i} und y_{i}. \beta ist der Anpassungsparameter.

Gewichtete Anpassung

Sind die Messfehler unbekannt, wird \sigma _i\,\! für alle i auf 1 gesetzt und die Anpassung ohne Gewichtung ausgeführt. Sind die Fehler aber bekannt, können wir diese Fehler als Gewichtungen betrachten und gewichtete Anpassung verwenden. In diesem Fall kann Chi^2 wie folgt dargestellt werden:

\chi ^2=\sum_{i=1}^nw_i[Y_i-f(x_i^{\prime },\hat \beta )]^2

(6)

Es sind eine Reihe von gewichteten Methoden in Origin verfügbar. Bitte entnehmen Sie weitere Informationen dem Abschnitt Anpassen mit Fehlern und Gewichtung in der Origin-Hilfe.

Parameter

Die mit der Anpassung verbundenen Formeln werden hier zusammengefasst:

The Fit Results.png

Der angepasste Wert

Das Berechnen der angepassten Werte in nichtlinearer Regression ist eine iterative Vorgehensweise. Sie können eine kurze Einführung in dem oben stehenden Abschnitt lesen (So passt Origin die Kurve an) oder sich mit Hilfe des unten erwähnten Materials weiterführend informieren.

Die Parameterstandardfehler

Während der L-M-Iteration müssen wir die partielle Ableitungsmatrix F berechnen, deren Element in der i-ten Zeile und der j-ten Spalte folgendermaßen lautet:

F_{ij}=\frac{\partial f(x,\theta )}{\sigma _i\partial \theta _j}

(7)

wobei \sigma _i der Fehler von Y für die i-te Beobachtung ist, falls das instrumentelle Gewicht verwendet wird. Falls es kein Gewicht gibt, \sigma _i = 1. Und F_{ij} wird für jede Beobachtung x_i in jeder Iteration ausgewertet.

Anschließend können wir die Varianz-Kovarianz-Matrix für die Parameter Temp-Regression and Curve Fitting-image124.gif wie folgt ermitteln:

C=(F'F)^{-1}s^2\,\!

(8)

wobei F' die Transponierte der F-Matrix ist. s2 ist die mittlere Residuenvarianz, auch als Reduziertes Chi-Quadrat bezeichnet oder die Abweichung des Modells, und kann folgendermaßen berechnet werden:

s^2=\frac{RSS}{n-p}

(9)

wobei n die Anzahl der Punkte ist und p die Anzahl der Parameter.

Die Quadratwurzel des diagonalen Hauptwerts dieser Matrix C ist der Standardfehler des entsprechenden Parameters.

s_{\theta _i}=\sqrt{c_{ii}}\,\!

(10)

wobei Cii das Element in der i-ten Zeile und i-ten Spalte der Matrix C ist. Cij ist die Kovarianz zwischen θi und θj.

Sie können wählen, ob s2 ausgeschlossen wird, wenn die Kovarianzmatrix berechnet wird. Die hat Einfluss auf die Standardfehlerwerte. Beim Ausschließen von s2 deaktivieren Sie das Kontrollkästchen Reduziertes Chi^2 verwenden auf der Seite Erweitert im Bedienfeld Fit-Steuerung. Die Kovarianz wird dann berechnet durch:

c=(F'F)^{-1}\,\!

(11)

Die Standardfehler sind dann:

s_{\theta _i}^{\prime }=\frac{s_{\theta _i}}s\,\!

(12)

Die Parameterstandardfehler kann uns einen Eindruck von der Genauigkeit der angepassten Werte geben. Normalerweise sollte der Betrag der Standardfehlerwerte niedriger sein als die angepassten Werte. Wenn die Standardfehlerwerte größer sind als die angepassten Werte kann das Anpassungsmodell überparameterisiert sein.

Der Standardfehler für abgeleitete Parameter

Origin schätzt die Standardfehler für die abgeleiteten Parameter gemäß der Fehlerverbreitungsformel, eine approximative Formel.

z = f\left (\theta _1, \theta _2, ..., \theta _p \right ) sei die Funktion mit einer Kombination von (linearen oder nichtlinearen) p\, Variablen \theta _1, \theta _2, ..., \theta _p \,.

Die allgemeine Regel der Fehlerverbreitung ist:

\sigma_z^2 = \sum_i^p \sum_j^p \frac {\partial z}{\partial \theta_i} COV_{\theta_i \theta_j} \frac {\partial z}{\partial \theta_j}

wobei COV_{\theta_i \theta_j}\, der Kovarianzwert für \left (\theta_i, \theta_j \right ) und \left (i = 1, 2, ..., p \right ), \left (j = 1, 2, ..., p \right ) ist.

Sie können wählen, ob die mittlere Residuenvarianz s^2 ausgeschlossen werden soll, wenn die Kovarianzmatrix COV_{\theta_i \theta_j} berechnet wird. Dies beeinflusst die Werte des Standardfehlers für abgeleitete Parameter. Beim Ausschließen von s^2 deaktivieren Sie das Kontrollkästchen Reduziertes Chi^2 verwenden auf der Seite Erweitert im Bedienfeld Fit-Steuerung.

Verwenden wir zum Beispiel drei Variablen:

z = f\left (\theta_1, \theta_2, \theta_3 \right )

Dann haben wir:

\sigma_z^2 = \left (\frac {\partial z}{\partial \theta_1} \right )^2 \sigma_{\theta_1}^2 + \left (\frac {\partial z}{\partial \theta_2} \right )^2 \sigma_{\theta_2}^2 + \left (\frac {\partial z}{\partial \theta_3} \right )^2 \sigma_{\theta_3}^2 + 2 \left (\frac {\partial z}{\partial \theta_1} \frac {\partial z}{\partial \theta_2} \right ) COV_{\theta_1 \theta_2} + 2 \left (\frac {\partial z}{\partial \theta_1} \frac {\partial z}{\partial \theta_3} \right ) COV_{\theta_1 \theta_3} + 2 \left (\frac {\partial z}{\partial \theta_2} \frac {\partial z}{\partial \theta_3} \right ) COV_{\theta_2 \theta_3}


Jetzt sei der abgeleitete Parameter z\, und die Anpassungsparameter seien \theta_1, \theta_2, ..., \theta_p\,. Der Standardfehler für den abgeleiteten Parameter z\, ist \sigma_z\,.

Konfidenzintervalle

Origin bietet zwei Methoden zum Berechnen der Konfidenzintervalle für Parameter: Asymptotisch-Symmetrisch und Modellvergleich.

Asymptotisch-symmetrische Methode

Eine Annahme in der Regressionsanalyse ist, dass die Daten normalverteilt sind, so dass wir die Standardfehlerwerte verwenden können, um die Parameterkonfidenzintervalle zu erzeugen. Bei einem gegebenen Signifikanzniveau α ist das (1-α)x100%-Konfidenzintervall für den Parameter:

\hat \theta _j-t_{(\frac \alpha 2,n-p)}s_{\theta _j}\leq \hat \theta _j\leq \hat \theta _j+t_{(\frac \alpha 2,n-p)}s_{\theta _j}

(13)

Das Parameterkonfidenzintervall gibt an, wie wahrscheinlich das Intervall den wahren Wert enthält.

Das oben dargestellte Konfidenzintervall ist Asymptotisch, die am häufigsten verwendete Methode zum Berechnen von Konfidenzintervallen. Das "Asymptotisch" meint hier, dass es sich um einen approximativen Wert handelt.

Methode des Modellvergleichs

Wenn Sie genauere Werte brauchen, können Sie die Methode des Modellvergleichs verwenden, um das Konfidenzintervall zu schätzen.

Wird die Methode Modellvergleich verwendet, werden die oberen und unteren Konfidenzgrenzen berechnet, indem die Werte für jeden Parameter p gesucht werden, bei dem RSS(j) (das über die verbleibenden Parameter minimiert wird) größer ist als RSS mit einem Faktor von (1+F/(n-p)).

RSS(\theta _j)=RSS(1+F\frac 1{n-p})

(14)

wobei F = Ftable(α, 1, n-p) und RSS die minimale Fehlersumme der Quadrate ist, die während der Anpassungssitzung gefunden wurde.

t-Wert

Sie können entscheiden, einen t-Test für jeden Parameter auszuführen, um zu testen, ob sein Wert gleich Null ist. Die Nullhypothese des t-Tests für den j-ten Parameter ist:

H_0: \theta_j = 0 \,

Die Alternativhypothese ist:

H_\alpha: \theta_j \ne 0

Der t-Wert kann wie folgt berechnet werden:

t=\frac{\hat \beta _j-0}{s_{\hat \beta _j}}

(15)

Wahrsch.>|t|

Die Wahrscheinlichkeit, dass H0 in dem t-Test oben wahr ist.

prob=2(1-tcdf(|t|,df_{Error}))\,\!

(16)

wobei tcdf(t, df) die untere Wahrscheinlichkeit für die studentisierte t-Verteilung mit dem df-Freiheitsgrad berechnet.

Abhängigkeit

Ist eine Gleichung überparametrisiert, bestehen zwischen den Parametern wechselseitige Abhängigkeiten. Die Abhängigkeit des i-ten Parameters wird definiert als:

1-\frac 1{c_{ii}(c^{-1})_{ii}}

(17)

und (C-1)ii ist das (i, i)-te diagonale Element der Inversen der Matrix C. Liegt dieser Wert nahe bei 1, besteht eine starke Abhängigkeit.

Um weitere Informationen zu erhalten, wie die Werte die Qualität eines Anpassungsmodells bewerten, siehe die Seite Modelldiagnose mit Abhängigkeitswerten.

KI halbe Breite

Das Konfidenzintervall halbe Breite ist:

CI=\frac{UCL-LCL}2

(18)

wobei OEG und UEG das obere Konfidenzintervall bzw. untere Konfidenzintervall ist.

Statistiken

Mehrere Statistikformeln für Anpassungen werden unten zusammengefasst:

The Fit Results 02.png

Freiheitsgrade

Der Freiheitsgrad Fehler Weitere Einzelheiten finden Sie in der ANOVA-Tabelle.

Summe der Fehlerquadrate

Residuensumme der Quadrate

RSS(X,\hat \theta )=\sum_{i=1}^n w_i[Y_i-f(x_i^{\prime },\hat \theta )]^2

(19)

Reduziertes Chi-Quadrat

Der Wert des reduzierten Chi-Quadrats, der gleich der Residuensumme des Quadrats geteilt durch den Freiheitsgrad ist

Reduced\chi ^2=\frac{\chi ^2}{df_{Error}}=\frac{RSS}{df_{Error}}

(20)

R-Quadrat (COD)

Der R2-Wert zeigt die Güte eines Fits und kann berechnet werden durch:

R^2=\frac{Explained\,variation}{Total\,variation}=\frac{TSS-RSS}{TSS}=1-\frac{RSS}{TSS}

(21)

wobei TSS die Gesamtsumme der Quadrate und RSS die Residuensumme des Quadrats ist.

Kor. R-Quadrat

Der korrigierte R2-Wert:

\bar R^2=1-\frac{RSS/df_{Error}}{TSS/df_{Total}}

(22)

R-Wert

Der R-Wert ist die Quadratwurzel von R2:

R=\sqrt{R^2}

(23)

Weitere Informationen zu R2, korrigiertem R2 und R finden Sie im Abschnitt Güte des Fits.

Wurzel-MSE (StAbw)

Die Quadratwurzel des Mittelwerts des Fehlers oder die Standardabweichung der Residuen ist gleich der Quadratwurzel des reduzierten χ2:

Root\,MSE=\sqrt{Reduced \,\chi ^2}

(24)

ANOVA-Tabelle

Die ANOVA-Tabelle:

Hinweise: Die ANOVA-Tabelle ist für die Anpassung von impliziten Funktionen nicht verfügbar.

Freiheitsgrade Summe der Quadrate Mittelwert der Quadrate F -Wert Wahrsch. > F
Modell

p

SSreg = TSS - RSS

MSreg = SSreg / p

MSreg / MSE

p-Wert

Fehler

n - p

RSS

MSE = RSS / (n-p)

Unkorrigierte Gesamtsumme

n

TSS

Korrigierte Gesamtsumme

n-1

TSS korrigiert

Hinweis: Bei der nichtlinearen Anpassung gibt Origin korrigierte und unkorrigierte Summen der Quadrate aus: Korrigiertes Modell:

TSS_{corrected}=\sum_{i=1}w_{i}y_{i}^2-\left(\sum_{i=1}\left(y_{i}w_{i} \right )/\sum_{i=1}w_{i} \right )^2\sum_{i=1}w_{i}

(25)

Unkorrigiertes Modell:

TSS=\sum_{i=1}^nw_iy_i^2

(26)

Der F-Wert ist ein Test, ob das Anpassungsmodell sich signifikant von dem Modell Y = konstant unterscheidet. Zusätzlich werden der p-Wert bzw. die Signifikanzebene mit einem F-Test ermittelt. Wir können die Nullhypothese verwerfen, wenn der p-Wert kleiner als \alpha\,\! ist, das heißt, das Anpassungsmodell unterscheidet sich signifikant von dem Modell Y = konstant.

Konfidenz- und Prognosebänder

Konfidenzband

Das Konfidenzintervall für die Anpassungsfunktion besagt, wie gut Ihre Schätzung des Werts der Anpassungsfunktion bei bestimmten Werten der unabhängigen Variablen ist. Sie können mit einer Konfidenz von 100α% behaupten, dass der korrekte Wert für die Anpassungsfunktion sich innerhalb des Konfidenzintervalls befindet, in dem α das gewünschte Konfidenzniveau liegt. Dieses definierte Konfidenzintervall für die Anpassungsfunktion wird berechnet mit:

f(x_{1i},x_{2i},\ldots;\theta _{1i},\theta _{2i},\ldots )\pm t_{(\frac \alpha 2,dof)}[s^2fcf^{\prime }]^{\frac 12}

(27)

wobei:

f=[\frac{\partial f}{\partial \theta _1},\frac{\partial f}{\partial \theta _2},\cdots ,\frac{\partial f}{\partial \theta _p}]

(28)

Prognoseband

Das Prognoseband für das gewünschte Konfidenzniveau α ist das Intervall, in das erwartungsgemäß 100α% aller Versuchspunkte in einer Reihe wiederholter Messungen bei bestimmten Werten unabhängiger Variablen fallen. Dieses definierte Prognoseintervall für die Anpassungsfunktion wird berechnet als:

f(x_{1i},x_{2i},\ldots;\theta _{1i},\theta _{2i},\ldots )\pm t_{(\frac \alpha 2,dof)}[s^2(1+fcf^{\prime })]^{\frac 12}

(29)

wobei

\chi _*^2 ist das reduzierte \chi ^2

Hinweise: Das Konfidenzband und das Prognoseband in dem angepassten Kurvendiagramm sind nicht für die Anpassung von impliziten Funktionen verfügbar.

Weiterführende Themen

Referenz

  1. William. H. Press, etc. Numerical Recipes in C++. Cambridge University Press, 2002.
  2. Norman R. Draper, Harry Smith. Applied Regression Analysis, Third Edition. John Wiley & Sons, Inc. 1998.
  3. George Casella, et al. Applied Regression Analysis: A Research Tool, Second Edition. Springer-Verlag New York, Inc. 1998.
  4. G. A. F. Seber, C. J. Wild. Nonlinear Regression. John Wiley & Sons, Inc. 2003.
  5. David A. Ratkowsky. Handbook of Nonlinear Regression Models. Marcel Dekker, Inc. 1990.
  6. Douglas M. Bates, Donald G. Watts. Nonlinear Regression Analysis & Its Applications. John Wiley & Sons, Inc. 1988.
  7. Marko Ledvij. Curve Fitting Made Easy. The Industrial Physicist. Apr./May 2003. 9:24-27.
  8. "J. W. Zwolak, P.T. Boggs, and L.T. Watson, ``Algorithm 869: ODRPACK95: A weighted orthogonal distance regression code with bound constraints, ACM Transactions on Mathematical Software Vol. 33, Issue 4, August 2007."
  9. Nelder, J.A., and R. Mead. 1965. Computer Journal, vol. 7, S. 308 -313
  10. Numerical Recipes in C, Ch. 10.4, Downhill Simplex Method in Multidimensions.
  11. Numerical Recipes in C, Ch. 15.5, Nonlinear Models.