07.12.2012 Aufrufe

ASAXS - Helmholtz-Zentrum Berlin

ASAXS - Helmholtz-Zentrum Berlin

ASAXS - Helmholtz-Zentrum Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!