ASAXS - Helmholtz-Zentrum Berlin
ASAXS - Helmholtz-Zentrum Berlin
ASAXS - Helmholtz-Zentrum Berlin
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
8.3 Entwicklung einer nichtlinearen Regressionsroutine für <strong>ASAXS</strong>-Experimente<br />
8.3.2 Implementierte numerische Algorithmen in der Matlab-Klasse<br />
Trust-Region-Reflective-Newton-Algorithmus für die Regression<br />
Das Problem einer nichtlinearen Regression der kleinsten Quadrate bedingt die Minimierung<br />
der Quadrate der Residuen von n Funktionen fi bei p Parametern xj<br />
min �f(x)� 2 �<br />
n�<br />
�<br />
= min fi(x1, ..., xp) . (8.15)<br />
i=1<br />
Die numerischen Algorithmen zur Minimierung basieren auf einer Linearisierung des Problems<br />
um einen Startpunkt x für die freien Parameter<br />
Ψ(s) = �f(x + s)� ≈ �f(x) + J · s� . (8.16)<br />
Wobei s die geplante Änderung der freien Parameter und J die Jacobi Matrix Jij = ∂fi/∂xj<br />
sind.<br />
Der Levenberg-Marquardt-Algorithmus [111–113] benutzt Gleichung (8.16) zum Lösen von<br />
Gleichung (8.15). Nachteil dieses Algorithmus ist, dass keine Randbedingungen für die freien<br />
Parameter implementiert werden können. Demzufolge kann die Regression nicht physikalische<br />
Lösungen für die Parameter x finden.<br />
Für die entwickelte Matlab-Klasse wurde der Trust-Region-Reflective-Newton-Algorithmus<br />
implementiert. Dieser beinhaltet zusätzlich zu Gleichung (8.16) weitere Gleichungen in jedem<br />
Iterationsschritt [114, 115]. Dieses ermöglicht es, Randbedingungen für die freien Parameter<br />
einzuführen. Eine Gleichung beispielsweise skaliert den Schrittvektor s in der Länge derart,<br />
dass die neuen Parameter alle innerhalb der gesetzten Limits liegen, wobei die Richtung,<br />
welche durch J gegeben ist, nicht verändert wird. Diese Option ist vor allem bei Regressionen<br />
von vielen Daten und vielen freien Parametern von Bedeutung.<br />
Die Programmiersprache Matlab beinhaltet eine Standardroutine für Minimierungsprobleme,<br />
welche den Trust-Region-Reflective-Newton-Algorithmus benutzt. Die Schwierigkeit bei<br />
der Entwicklung der Matlab-Klasse MNLRSAS 2 war die Erweiterung dieser Standardroutine<br />
für eine simultane nichtlineare Regression von mehreren Kurven (die Standardroutine kann<br />
nur eindimensionale Minimierungsprobleme lösen). Das zu minimierende Chi-Quadrat (siehe<br />
Gleichung (8.13)) ist eine zweidimensionale Funktion der Variablen q und E. Für die entwickelte<br />
Matlab-Klasse wurde deshalb eine neue Funktion Z(...) definiert, welche vom Parameter<br />
q abhängt<br />
Z(q, � P , � Q1, ..., � QN) :=<br />
N�<br />
j=1<br />
�<br />
Y (qi, Ej, � P , � Qj) − dσ<br />
dΩ (qi,<br />
�2<br />
Ej)<br />
. (8.17)<br />
δ(qi, Ej)<br />
Zusätzlich hängt die Funktion Z(...) von den globalen � �<br />
P und allen lokalen �Q1, ... � �<br />
QN Parametern<br />
ab. N ist die Anzahl der simultan anzugleichenden Streukurven. Mit der eingeführten<br />
Funktion Z(...) ergibt sich das zu minimierende Chi-Quadrat wie folgt<br />
χ 2 M�<br />
= Z(qi,<br />
i=1<br />
� P , � Q1, ..., � QN). (8.18)<br />
Wobei die Summe über alle Stützstellen (q-Werte) ausgeführt wird. Die beiden Gleichungen<br />
(8.17 und 8.18) implizieren, dass die differenziellen Streuquerschnitte, sowohl die experimentellen<br />
als auch die theoretischen, für alle Röntgenenergien dasselbe Raster für die Stützstellen<br />
2 MNLRSAS - Multi Nonlinear Regression of Small Angle Scattering<br />
97