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 Nanostruktur und nanochemische Analyse der getemperten Glaskeramiken<br />
qi aufweisen. Aus diesem Grund ist in der Matlab-Klasse MNLRSAS eine Startroutine implementiert,<br />
welche alle N Streukurven auf ein einheitliches q-Raster mit M Stützstellen<br />
konvertiert. Dabei werden die gemessenen differenziellen Streuquerschnitte linear interpoliert.<br />
Das q-Raster kann als äquidistant bei einer linearen oder einer logarithmischen q-Skala definiert<br />
werden. Letzteres stellt eine zusätzliche Gewichtung der Messergebnisse dar, wobei den<br />
Messwerten bei kleinen q-Werten mehr Gewicht bei der Regression zugeordnet wird. Aufgrund<br />
des Verlaufs der differenziellen Streuquerschnitte ist ein äquidistantes Raster bei einer<br />
logarithmischen q-Skala der linearen vorzuziehen.<br />
Die Berechnung der Funktion Z(...) für einen bestimmten q-Wert dauert aufgrund von numerischen<br />
Berechnungen der Funktion Y (...) je nach Konvergenzeigenschaft unterschiedlich<br />
lange. Es konnte festgestellt werden, dass die Berechnungsdauer für größere q-Werte deutlich<br />
zunimmt. Derzeitige Rechnerarchitekturen erlauben es, Berechnungen auf mehrere Prozessoren<br />
aufzuteilen, sofern dieses mathematisch möglich ist. Die Berechnung des Chi-Quadrats<br />
nach Gleichung (8.18) wird in der Matlab-Klasse auf mehrere Prozessoren aufgeteilt, um die<br />
nichtlineare Regression deutlich schneller durchführen zu können. Hierfür wird die Summe<br />
in Gleichung (8.18) auf die zur Verfügung stehenden K Prozessoren aufgeteilt, um der unterschiedlich<br />
langen Berechnungsdauer der Funktion Z(...) Rechnung zu tragen. Die Summe<br />
wird wie folgt auf die K Prozessoren aufgeteilt:<br />
• Prozessor 1: q1, qK+1, q2K+1, ... .<br />
• Prozessor 2: q2, qK+2, q2K+2, ... .<br />
• Prozessor K: qK, q2K, q3K, ... .<br />
Nachdem alle K Prozessoren die Funktionen Z(...) für die entsprechenden q-Werte berechnet<br />
haben, werden diese nachträglich wieder in die richtige Reihenfolge q1, q2, q3, ... umsortiert. Die<br />
Aufteilung der Summe nach diesem Schema auf die K Prozessoren führt dazu, dass alle K<br />
Prozessoren in etwa die gleiche Zeit für die Berechnungen der Funktionen Z(...) brauchen. Die<br />
gleiche Aufteilung auf mehrere Prozessoren wurde auch für die Berechnung der Jacobi-Matrix<br />
J umgesetzt, deren Berechnung zeitaufwendiger ist im Gegensatz zu den Berechnungen der<br />
Funktionen Z(...).<br />
Die implementierte Option der parallelen Berechnung des Chi-Quadrats sowie der Jacobi<br />
Matrix ist vor allem für die simultane nichtlineare Regression von vielen Streukurven und<br />
vielen freien Parametern von Vorteil. In der vorliegenden Arbeit wurden bis zu 64 Streukurven<br />
mit jeweils 150 q-Werten (= 9600 Stützstellen) simultan angeglichen. Bei der Berechnung auf<br />
einem 2xQuad-Core Rechner führte dieses zu einer Zeitersparnis um einen Faktor von 7.5 für<br />
die simultane nichtlineare Regression.<br />
Numerische Algorithmen für die Doppelintegration<br />
Die Berechnung der Modellfunktion Y (...) sowie der Jacobi-Matrix J bei jedem Iterationsschritt<br />
der Minimierung von Gleichung (8.18) bedingt die Berechnung eines Doppelintegrals<br />
für jeden q-Wert (siehe Gleichung (8.7) und (8.1)). Das Doppelintegral in Gleichung (8.7)<br />
lässt sich nicht analytisch bestimmen. Demzufolge ist es nötig, dieses numerisch zu approximieren.<br />
Für die numerische Berechnung des Doppelintegrals wurde die in Matlab implementierte<br />
Standard-Routine "Recursive Adaptive Simpson Quadrature"verwendet [116]. Dieser Algorithmus<br />
basiert im Wesentlichen auf der Annäherung der Funktion durch eine stufenweise<br />
definierte Variante<br />
� b � d<br />
f(x, y)dydx ≈ � �<br />
f(xi, yj)(xi+1 − xi)(yj+1 − yj). (8.19)<br />
98<br />
a<br />
c<br />
i<br />
j