13.07.2015 Aufrufe

Skript

Skript

Skript

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Inhaltsverzeichnis1 Einführung in Matlab 11.1 Darstellung einer Zahl in Matlab . . . . . . . . . . . . . . . . . . . . 11.2 Definition von Variablen . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Einfache Rechenoperationen . . . . . . . . . . . . . . . . . . . . . . . 31.4 Logische Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.6 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.7 Plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Theoretische Grundlagen 112.1 Wahrscheinlichkeiten, Dichten und Schätzer . . . . . . . . . . . . . . 113 Theorie: Nichtlineare Regression 173.1 Grundannahme und Zentraler Grenzwertsatz . . . . . . . . . . . . . . 173.2 Maximum Likelihood und Kleinste-Quadrate-Methode . . . . . . . . 174 Numerik: Nichtlineare Regression 214.1 Praktische Implementierung einer nichtlinearen Regression anhandwnonlinfit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2 Nichtlinearer Fit mit wnonlinfit . . . . . . . . . . . . . . . . . . . . . 235 Theorie: Lineare Regression 295.1 Kovarianzmatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2 Fehlerfortpflanzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.3 Konfidenzintervalle bei nichtlinearer Regression . . . . . . . . . . . . 356 Numerik: Lineare Regression 376.1 Linearer Fit mit wlinfit . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Zusätzliche Optionen und Einstellungen 41


1 Einführung in MatlabMatlab (MATrix LABoratory) ist ein Programm und gleichzeitig eine Programmiersprachezur Lösung numerischer Probleme. Dabei ist es, wie der Name schon sagt,vor allem auf die Verwendung von Matrizen ausgelegt. Es kann mit einer Vielzahlvon numerischen Problemen umgehen, wie z.B. Matrixalgebra, Differentialgleichungen,Integration, partielle Differentialgleichungen usw. und wird deshalb vor allemfür die numerische Simulation von Problemen und zur Datenanalyse eingesetzt. DieOberfläche von Matlab bietet einen Editor an, in dem <strong>Skript</strong>e, Funktionen, Klassenusw. geschrieben werden können. Befehle können auch direkt in das „Commandprompt“ eingegeben werden, wo auch Ausgabetext erscheint. Außerdem hilfreich istder „Workspace“, in dem die Variablen, die gerade im Speicher sind, eingesehen werdenkönnen. Bei Problemen sei auch auf die umfangreiche und verständliche Hilfehingewiesen.1.1 Darstellung einer Zahl in MatlabIn Computern können stets nur Zahlen mit endlich vielen Stellen dargestellt werden.Mehr Stellen bringen dabei natürlich eine höhere Genauigkeit, verbrauchenallerdings auch mehr Speicherplatz und Rechenzeit bei mathematischen Operationen.Normalerweise benutzt man sogenannte 64-Bit floating point numbers, welche64 Bit Speicherplatz brauchen. Da Computer intern stets mit den Zuständen 1 („an“)und 0 („aus“) arbeiteten, eignet sich die binäre Darstellung am besten für Computer.Das Prinzip einer floating point number ist nun, dass die Größenordnung durch denExponent dargestellt wird und die Zahl somit stets mit einer 1 beginnt. Die Nachkommastellenwerden dann mit 52 Bit dargestellt. Ein Bit wird für das Vorzeichenverwendet und 11 Bit für den Exponenten. Durch den Exponenten wird ein Zahlenraumvon 2 210 ≈ 10 −308 bis 2 210 ≈ 10 308 abgedeckt. Die relative Genauigkeit istdurch die Mantisse gegeben und beträgt 2 −52 ≈ 10 −16 Ein Beispiel für die floatingpoint number 43 mit 5 Bit Mantisse und 4 Bit Exponent lautet:( −}{{}sign1, 01011 } {{ }Mantisse×(10)+101}{{}Exponent1.2 Definition von Variablen) 2 = (−(1 + 2 −2 + 2 −4 + 2 −5 ) × 2 5 ) 10 = (43) 10In Programmiersprachen wird eine Variable üblicherweise von rechts nach links definiert.D.h. der Ausdruck, der rechts vom Gleichheitszeichen steht, wird ausgewertetund das Ergebnis unter der Variable, die links vom = steht gespeichert. In vielen


2 1 Einführung in Matlabsignexponent(11 bit)fraction(52 bit)63 52 0Abbildung 1.1.1: Speicheraufteilung einer 64-Bit floating point number.Quelle: http://commons.wikimedia.org/wiki/File:General_double_precision_float.pngSprachen muss die Variable zusätzlich vordefiniert werden, was in Matlab allerdingsnicht nötig ist.1.2.1 SkalareSkalare werden in Matlab einfach durchVariable = (Zahl o. Rechenausdruck)definiert. Dabei sind auch mathematisch sinnlose Gleichungen wie b = b+1 möglich.Zunächst wird dann der Rechenausdruck rechts ausgewertet. Das Ergebnis wird dannin b gespeichert, d.h. in diesem Fall wird b überschrieben. Als Ergebnis erhalten wiralso, dass b um eins erhöht wird. Andere Beispiele:a = 5, b = 5 ∗ 4, z = 1 + 1i1.2.2 MatrizenEine Matrix wird durch Skalare die mit [ ] eingeklammert sind erzeugt. Spalten werdendurch Leerzeichen getrennt, Zeilenumbruch ( ) durch ; erzeugt.1 5 3Bsp: a = [1 5 3; 2 5 1] ergibt a =2 5 1Die Elemente können dann mit a(n, m) aufgerufen werden. Eine ganze Zeile oderSpalte ruft man mit a(:, m) bzw. a(n, :) auf.Besondere Matrizen:eye(n): n × n Einheitsmatrix.zeros(n,m): n × m Nullmatrix.ones(n,m): n × m Einsmatrix.rand(n,m): n × m Matrix mit gleichverteilten Zufallszahlen.randn(n,m): n × m Matrix mit standardnormalverteilten Zufallszahlen.


1.3 Einfache Rechenoperationen 31.2.3 Anonymous FunctionsAnonymous Functions stellen einfache Funktionen dar, die als Eingabewert einenoder mehrere Skalare bzw. Matrizen benötigen. Sie sind vor allem nützlich um einfacheFunktionen an Routinen zu übergeben, welche als Eingabewert eine Funktionbenötigen, wie z.B. Nullstellensuche, Differentialgleichungslöser oder Fitroutinen.Die Syntax lautet z.B.func1 = @(x) x ∧ 2 + sin(x ∗ pi)oder ein anderes Beispiel für mehrere EingabewerteAufgerufen werden sie durch z.B.func2 = @(x1, x2) √ (x1 − x2) ′ ∗ (x1 − x2)func1(2) ⇒ 4und als Beispiel für Funktionen mit mehreren Eingabewertenfunc2([1; 0; 0], [0; 0; 1]) ⇒ 1.41421.2.4 CellsCells funktionieren ähnlich wie Matrizen. Sie unterscheiden sich allerdings darin,dass ihre Elemente quasi alles sein können, z.B Strings, Zahlen, Matrizen, AnonymousFunctions usw. Sie werden mit {...} erzeugt, statt wie bei Matrizen mit [...].Ansonsten ist die Syntax gleich; Leerzeichen für Spaltenwechsel und ; für Zeilenwechsel.Bsp.: cell1 = {@(x)x, @(x)x. ∧ 2} Ein Element der Cell kann durch cell{index}aufgerufen, also z.B. durchfunc2 = cell1{2}.Dabei wird das zweite Element der Cell, also hier die Funktion x 2 , aufgerufen undunter der Variablen func2 abgespeichert.1.3 Einfache RechenoperationenEinfache Operationen können durchVariable = Rechenbefehldurchgeführt werden. Das Ergebnis wird dann in der Variablen abgespeichert. Dabeimüssen natürlich alle im Rechenbefehl verwendeten Variablen vorher schon definiertworden sein.


4 1 Einführung in Matlab1.3.1 Addition und SubtraktionAddition und Subtraktion werden mit + und − durchgeführt. Dabei können natürlichsowohl Skalare als auch Matrizen gleicher Größe miteinander addiert werden.Addiert man zwei Matrizen unterschiedlicher Größe, gibt Matlab eine Fehlermeldungaus. Als einzige Ausnahme kann zu einer Matrix ein Skalar addiert werden.Dabei wird dann zu jedem Element der Skalar addiert.1.3.2 Multiplikation und DivisionMultiplikation und Division werden mit * und / durchgeführt. Dies ist hierbei imMatrixsinne zu verstehen, d.h. * ist die Matrixmultiplikation und / ist die Multiplikationmit der Inversen (A/B = A ∗ B −1 ). Es ist dabei nur die Multiplikation einern × m mit einer m × l Matrix möglich, wobei das Ergebnis eine n × l Matrix ist.Ausnahme ist hierbei wieder die Multiplikation mit einem Skalar. Jede Matrix kannmit einem Skalar multipliziert werden, wobei die Multiplikation dann elementweisedurchgeführt wird.1.3.3 PotenzierenPotenzieren wird mit ∧ durchgeführt. Dabei gilt das Gleiche, wie für die Multiplikation,d.h. Potenzieren ist im Matrixsinne zu verstehen und ist damit nur mitquadratischen Matrizen möglich.1.3.4 Elementweise OperationAlle vorigen Operationen können auch elementweise durchgeführt werden, indemman vor den Operator (+,-,*,/,∧) einen Punkt setzt (z.b. A.*B). Dabei wird danndie Operation skalar zwischen A(i,j) und B(i,j) durchgeführt, d.h.C = A. ∗ B ⇒ C ij = A ij · B ijDies ist natürlich nur für Matrizen gleicher Größe möglich.1.3.5 Vordefinierte FunktionenMatlab besitzt eine Vielzahl von vordefinierten Funktionen. Hier eine Aufzählungder wichtigsten:exp(Matrix): Wendet elementweise die Exponentialfunktion auf die Matrix anTrigonometrie: sin(Matrix), cos(), tan(), für die jeweiligen elementweisen Funktionen(im Bogenmaß), asin(), acos(), atan() für die entsprechenden Umkehrfunktionen.expm(Matrix): Wendet die Matrixexponentialfunktion auf die Matrix an, d.h. dieMatrix wird in die Exponentialreihe eingesetzt.


1.4 Logische Operationen 5log(Matrix): Elementweiser natürlicher Logarithmus.log2 oder log10(Matrix) Logarithmus zur Basis 2 bzw. 10.sqrt(Matrix): Elementweise Wurzelfunktion.’: Transponieren einer Matrix, also A ′ ⇒ A Tsize: Gibt die Größe der Matrix an1.4 Logische OperationenLogische Operationen werden benötigt um Schleifen mit einer Abbruchbedingunganzuhalten, Fallunterscheidungen durchzuführen oder Werte in einer Matrix zu findenbzw. zu vergleichen, wie z.B. beim Sortieren. Selbst bei einfachen <strong>Skript</strong>en benötigtman also ziemlich schnell logische Operation. Als Ausgabewert einer logischenOperation erhält man stets entweder 0 für falsch oder 1 für wahr. Diese kann mandann verwenden um z.B. mit if etwas an-und auszuschalten oder mit den Werteneinfach als Zahlen weiterzurechnen. Die folgenden Operationen können nun verwendetwerden um Skalare zu vergleichen, woraufhin man als Antwort einen Skalarerhält. Vergleicht man Matrizen führt Matlab dies elementweise durch und gibt eineMatrix der gleichen Größe aus.== : Vergleicht ob zwei Zahlen exakt gleich sind und gibt, wenn ja, 1 aus. Vorsicht,vermeintlich gleiche Zahlen können sich durch kleine numerische Fehler unterscheiden,wodurch 0 ausgegeben wird. Man sollte dann besser den Betrag derDifferenz kleiner als eine Toleranz setzen: (abs(x1-x2),=,


6 1 Einführung in Matlab1.5.1 Schleifen mit forEine Schleife besitzt einen Anweisungsblock, welcher immer wieder durchgeführtwird, bis der Schleifenindex (im Bsp. j) durchgelaufen ist, oder sie von einer anderenAnweisung beendet wird. Der Anweisungsblock wird durch ein end abgegrenzt. Alleswas zwischen for (laufindex) und end steht ist also der Anweisungsblock.Dabei kann auch eine weitere Schleife in diesem Anweisungsblock stehen. Beispiel:1 n=0;2 for j =1:503 n = n + 1 ;4 endBei diesem Beispiel durchläuft die Schleife die Zahlen von 1 bis 50 und addiertbei jedem Durchlauf eins zu n, wodurch n am Ende den Wert 50 hat. Ein etwas∑realistischeres Beispiel die näherungsweise Berechnung von ∞1 sum=0;2 N = 1 0 0 0 0;3 for j =1:N4 sum = sum + 1/ j ^2;5 endj=11j 2= π26 .Hierbei wird zunächst der zu berechnende Wert mit 0 initialisiert. Dann wird in1einer Schleife, die die natürlichen Zahlen bis N durchläuft, zu dem Wert addiert.j 21.5.2 Verzweigungen mit ifMit if wird eine Verzweigung erzeugt, d.h. if prüft eine dem Befehl folgende logischeAussage. Genau dann, wenn sie wahr ist, werden die Befehle im Anweisungsblockausgeführt. Ist sie falsch und es steht kein else oder elseif im Anweisungsblock,springt das Programm zur Zeile nach dem end. Was hinter else steht wird ausgeführt,wenn die Aussage hinter if falsch ist. Bei elseif wird zusätzlich die logischeAussage hinter dem elseif geprüft. Wie bei der Schleife muss also der Anweisungsblockdurch ein end abgegrenzt werden. Am einfachsten ist dies wahrscheinlich aneinem Beispiel zu erklären:1 n=0;2 for j =1:503 i f j 25 wird der Block hinter elseausgeführt und in jedem Schleifendurchgang 2 zu n addiert. Somit erhält man amEnde n = 75


8 1 Einführung in MatlabAbbildung 1.7.1: Links: Einfacher Plot einer Parabel. Rechts: Plot mit Achsenbeschriftungen,Titel, Legende und Textfeld.des Datenpunkten. Eine Linienart gibt man z.B. so an: ’ko-’ oder ’k-’, wennman keine Marker haben möchte. Es gibt z.B. noch folgende weitere Optionen:Farbe Marker Linienartk(ey) o -b(lue) x –g(reen) + -.r(ed) s(quare) :y(ellow) d(iamond)c(yan)m(agenta)Will man mehrere Plots in einer Grafik abbilden, so muss man den ersten Plot mithold festhalten:1 clear ;23 x = − 2 : 0 . 1 : 2 ;4 y = x . ^ 2 ;56 plot ( x , y , ’ ko ’ ) ;7 hold on8 plot ( x , x . ^ 3 )9 hold o f fDenn normalerweise wird bei jedem plot-Befehl das Grafikfenster neu initialisiertund der alte Plot gelöscht. Mit hold on verhindert man dies.Man kann jetzt noch die Achsengrenzen festlegen, dem Plot eine Legende hinzufügenund einen Text irgendwo hinschreiben:11 axis ([ −2.5 2 . 5 −0.5 4 . 5 ] )12 legend ( ’ x^2 ’ , ’ x^3 ’ , ’ Location ’ , ’ SouthEast ’ ) ;13 text ( 0 , 3 , ’ Text ’ )Der Befehl axis nimmt den Input [Xmin Xmax Ymin Ymax] und legt damitden sichtbaren Bereich des Plots fest. legend erzeugt eine Legende und platziert


1.7 Plots 9sie da, wo die Option nach ’Location’ hinzeigt und der Befehl text erzeugteinfach ein Textfeld, hier an der Position (x, y) = (0, 3) mit dem angegeben Text.Die Position wird in den tatsächlichen Koordinaten der Achsen angegeben.Der vollständige Plot ist rechts in Abb. 1.7.1 zu sehen.


2 Theoretische GrundlagenIm Folgenden sollen einige Grundlagen des Fittens besprochen werden. Obwohl wiruns sehr um Exaktheit bemühen, kann das vorliegende <strong>Skript</strong> keinen Anspruch aufVollständigkeit erheben. Es soll vielmehr eine kurze und möglichst übersichtlicheEinleitung in die Grundideen der Regression enthalten. Zu einer dieser Grundideenbzw. -annahmen zählt, dass alle Messgrößen gaußverteilt sind. Was das bedeutet,wird in den ersten Kapiteln erläutert. Dazu ist es auch notwendig den Unterschiedzwischen Wahrscheinlichkeiten und Wahrscheinlichkeitsdichten zu verstehen.Die zweite Grundidee betrifft das Schätzen von wahren Größen aus den Messwerten.Will man eine direkt gemessene Größe aus mehreren Messwerten schätzen, so bedientman sich des Mittelwertes usw. Man kann aber eine physikalische Größe auchindirekt bestimmen, indem man sie als Fitparameter zweier direkt gemessener Größenberechnet. Dazu führt man eine neue Funktion der Messwerte und Parameterein, die angeben soll, wie gut die Schätzung ist: das χ 2 . Diese Methode wird Methodeder kleinsten Quadrate genannt und ist die, die im Grundpraktikum angewendetwird. Wir werden versuchen zu erklären, warum das so ist.Hat man die optimalen Fitparameter gefunden, bestimmt man ihre Unsicherheitenmit Hilfe der Kovarianzmatrix. Diese enthält auch Informationen darüber, wiedie Fitparameter untereinander korreliert sind. Wir versuchen zu erklären, was dasbedeutet.2.1 Wahrscheinlichkeiten, Dichten und SchätzerWahrscheinlichkeiten. Die meisten werdenmit dem Umgang mit Wahrscheinlichkeitenvertraut sein. Wenn wir z.B. einenperfekten sechseitigen Spielwürfel rollen, istdie Wahrscheinlichkeit, dass er am Ende eine6 anzeigt, genau 1/6. Das gleiche gilt jeweilsfür die Augenzahlen 1 bis 5. Wenn Xdie Zufallsvariable ist, die angibt, welche Augenzahlgewürfelt wird, dann schreiben wir:Anzahl15105Mittelwert = 3.07P (X = 6) = 1 6 .Der Erwartungswert µ = E(X) für X ist:µ = E(X) = 1 + 2 + 3 + 4 + 5 + 66= 3,5.01 2 3 4 5 6AugenzahlAbbildung 2.1.1: Würfelexperiment mitN = 60 Würfen. Der Mittelwert ist 3,07während der Erwartungswert für die Augenzahleines einzelnen Wurfes 3,5 ist.


12 2 Theoretische GrundlagenAllgemein ist er für diskrete Zufallsvariablendefiniert als:∞∑E(X) = kP (X = k) .k=−∞Ein Erwartungswert ist kein Mittelwert! Ein Mittelwert ergibt sich (in der Sprachedes Würfelspiels), wenn man eine bestimmte Anzahl n von Würfen gewürfelthat mit den Augenzahlen X 1 , . . . X n und dann den mittleren WertX (n) = X 1 + . . . + X nnberechnet. Somit kann man den Mittelwert als eine neue Zufallsvariable auffassen.Der Erwartungswert hingegen ist eine Eigenschaft der Zufallsvariable X an sich. InAbb. 2.1.1 ist der Ausgang eines solchen Würfelexperiment mit n = 60 gezeigt. DerErwartungswert eines einzelnen Wurfes ist hier immer 3,5, während der Mittelwertin diesem besonderen Fall 3,07 ist. Erwartungswert und Mittelwert sind also nichtdas gleiche.Es gibt jedoch ein stochastisches Gesetz, dass besagt, dass unter besonderen Annahmenfür jedes ε > 0 gilt:lim P ( |X (n) − µ| > ε ) = 0.n→∞Dies wird in der Mathematik das schwache Gesetz der großen Zahlen genannt.Es gibt noch einen anderen Zusammenhang zwischen Mittelwert und Erwartungswert:Der Mittelwert ˆµ = X einer Zufallsvariable X ist ein erwartungstreuer Schätzerfür ihren Erwartungswert µ = E(X). Das bedeutet, dass wenn wir den Erwartungswertµ nicht kennen, dann können wir ihn durch den Mittelwert ˆµ abschätzen undes gilt( )X1 + X 2 + . . . X nE(ˆµ) = En= E(X 1) + E(X 2 ) + . . . E(x n )n= nµ n = µ.Man nennt eine solche Art von Schätzern auch unbiased, in dem Sinne, dass siedie wahre Größe gleichermaßen über- oder unterschätzen, aber nicht zu einer Seitetendieren.Weiterhin kennen wir außer dem Erwartungswert noch (mindestens) eine anderewichtige Größe zur Charakterisierung von Zufallsvariablen, nämlich die Varianz σ 2 =E(X 2 ) − (EX) 2 . Für diese Größe hätten wir auch gerne einen erwartungstreuenSchätzer ˆσ 2 und wir machen den Ansatz:∑ nˆσ 2 i=1=(X i − X) 2,Cmit einer noch zu bestimmenden Konstante C. Der wichtige Punkt ist nun, dass wirin der Summe nicht µ, sondern X = ˆµ stehen haben. Dieses X ist wie bereits gesagtwiederum eine Zufallsvariable. Was ist der Erwartungswert von ˆσ 2 ?(∑ nE(ˆσ 2 i=1) = E(X ) ∑i − X) 2ni=1=E ( (X i − X) 2).CC


2.1 Wahrscheinlichkeiten, Dichten und Schätzer 13Man darf das Quadrat niemals aus dem Erwartungswert herausziehen. Stattdessenmuss man ausmultiplizieren:E(ˆσ 2 ) === 1 C∑ ni=1 E (X 2 i − 2X i X + X 2)C∑ ()ni=1E(Xi 2 ) − 2E(X i X) + E(X 2 )n∑i=1C[( ∑E(Xi 2 Xik) − 2EX ) (k (∑k+ EX )]k) 2nn 2Wenn i ≠ k, dann faktorisiert der Erwartungswert im mittleren Term:E(ˆσ 2 ) =1 Cn∑[E(Xi 2 ) − 2 ( ∑Xin E(X2 k≠ii ) − 2EX )kni=1+ 1 n 2 E ( ∑kX 2 k + ∑ k)]∑X k X mk≠mEbenso faktorisiert der Ewartungswert, wenn im letzten Term k ≠ m:E(ˆσ 2 ) =1 C= 1 C= 1 C[n∑ n − 2E(Xi 2 ) −nn∑[ n − 1E(Xi 2 ) −nn∑[ n − 1i=1i=1i=1n2(n − 1)n2(n − 1)nE(X 2 i ) − n − 1n(µ 2 + 1 n E(X2 i ) + 1 ∑n E 2 k]µ 2 n(n − 1)+ µ 2n 2]µ 2 = n − 1 n∑ [E(X2nCi ) − µ 2]i=1)]∑X k X mJetzt muss man bedenken, dass die X i identisch verteilt sind, also E(X 2 i ) = E(X 2 1)für alle i:E(ˆσ 2 ) = n − 1C[E(X21 ) − µ 2] = n − 1C σ2 .Da E(ˆσ 2 ) gleich σ 2 sein soll, ist C = n − 1.Wahrscheinlichkeitsdichten. Das Beispiel mit den Würfeln veranschaulicht, wasWahrscheinlichkeiten sind. Diese Wahrscheinlichkeiten ordnet man bestimmten Ereignissenzu, wie z.B. eine 6 zu würfeln. Für das folgende ist es aber auch wichtig zuverstehen, was Wahrscheinlichkeitsdichten sind. Dazu untersuchen wir ein anderesBeispiel: Stellen wir uns vor, wir hätten ein sehr großes Stück Papier und ein sehrkleines Lineal, sodass wir das Lineal mehrmals neu ansetzen müssen, um das Papierauszumessen. Weil wir wissen, wie ungenau diese Messmethode ist, wiederholen wirk≠m


14 2 Theoretische Grundlagen1412012N = 60Mittelwert = 35.04100N = 2000Mittelwert = 35.001080Anzahl86Anzahl6044022034.5 35 35.5Laenge [cm]034.4 34.6 34.8 35 35.2 35.4 35.6Laenge [cm]Abbildung 2.1.2: Vermessung der Länge eines Papierblattes mit einem Lineal. Die Messung wirdjeweils N mal durchgeführt und notiert, wie oft ein bestimmter Wert gemessen wird. Die Rasterungist 1 mm im linken und 0,25 mm im rechten Bild. Die Kurve rechts zeigt eine entsprechend normierteGaußkurve.die Messung z.B. 60 mal. Das Ergebnis dieser N = 60 Messungen ist links in Abb.2.1.2 dargestellt.Wenn wir nun stattdessen 2000 mal messen und die Rasterung der Messwertegenauer machen, dann erhalten wir z.B. das Ergebnis rechts in Abb. 2.1.2. Diedazu eingezeichnete Kurve entspricht einer (passend normierten) Gaußkurve. Mitordentlicher Normierung lautet die Definition einer Gaußverteilung:N µ,σ (x) =1√2πσ2e−(x−µ)22σ 2 , (2.1.1)mit Erwartungswert µ und Standardabweichung σ. Man nennt sie auch Normalverteilung.Ordentliche Normierung heißt, dass∫ ∞−∞N µ,σ (x)dx = 1. (2.1.2)Diese Normalverteilung ist ein Beispiel für eine Wahrscheinlichkeitsdichte, d.h. siegibt keine Wahrscheinlichkeiten direkt an. An die Wahrscheinlichkeiten kommt manerst per Integration. Wenn man eine normalverteilte Zufallsvariable X mit Erwartungswertµ und Standardabweichung σ hat, ergibt es nicht viel Sinn zu fragen,was die Wahrscheinlichkeit ist, dass X genau π ist. Sie ist Null. Allerdings kannman fragen, was die Wahrscheinlichkeit ist, dass X in einem bestimmen Intervall[π − ε, π + ε] mit ε > 0 liegt. Dann erhält man folgende Anwort:P (X ∈ [π − ε, π + ε]) =∫ π+επ−εN µ,σ (x)dx ≠ 0. (2.1.3)


2.1 Wahrscheinlichkeiten, Dichten und Schätzer 15Allgemein ist die Wahrscheinlichkeit, dass die Zufallsvariable X in den Grenzen [a, b]liegt:P (X ∈ [a, b]) =∫ baN µ,σ (x)dx. (2.1.4)Deshalb muss die Normierung auch wie in Gl. (2.1.2) sein, denn:1 = P (X ∈ R) =∫ ∞Man überzeugt sich, dass µ tatsächlich der Erwartungswert ist:und für die Varianz σ 2 gilt:σ 2 =µ =∫ ∞−∞∫ ∞−∞−∞xN µ,σ (x)dx,(x − µ) 2 N µ,σ (x)dx.N µ,σ (x)dx. (2.1.5)Die Varianz σ 2 bestimmt die Breite der Verteilung und spielt in der Statistik dieRolle einer Unsicherheit. Die Wahrscheinlichkeit, einen Wert innerhalb der 1σ-Umgebung zu ziehen, istP (µ − 1σ ≤ X ≤ µ + 1σ) =∫ µ+σµ−σN µ,σ (x) dx ≈ 0,683. (2.1.6)Dies nennt man auch die coverage probability (auch statistische Sicherheit) der 1σ-Umgebung. In Formelzeichen wird sie auch 1−α genannt, während α die sogenannteRestwahrscheinlichkeit ist, also die Wahrscheinlichkeit, einen Wert außerhalb der 1σ-Umgebung zu ziehen. Wählt man nicht σ als Unsicherheit sondern einen größerenWert wie z.B. 2σ, dann vergrößert sich auch die statistische Sicherheit.Es gibt natürlich unendlich viele andere Wahrscheinlichkeitsdichten bzw. Verteilungen.Bekannte Vertreter sind z.B.- die Exponentialverteilung:und- die Pareto-Verteilung:f λ (x) =f α,x0 ={λe −λx , x ≥ 0,0, sonst.{ αx α0,x 1+α x ≥ x 00, sonst.


3 Theorie: Nichtlineare Regression3.1 Grundannahme und Zentraler GrenzwertsatzIm zweiten Beispiel (Abb. 2.1.2) des vorherigen Kapitels hatten wir gesehen, dass dieMessergebnisse normalverteilt um einen bestimmten empirischen Mittelwert waren.Das war kein Zufall, denn es handelte sich nicht um ein reales Experiment, sondernum eine Simulation, die genauso programmiert war. Allerdings war auch das nichtwillkürlich, denn die Simulation folgt somit der wichtigsten Annahme des Fittens:GrundannahmeAlle Messgrößen sind normalverteilt.Diese Annahme selber hat ihre Wurzeln im Zentralen Grenzwertsatz. Eine Versiondieses Satzes lautet:Seien X 1 , X 2 , . . . eine Folge von unabhängigen Zufallsvariablen mit endlichenErwartungswerten µ i und Varianzen σi 2 . Sei s 2 n = ∑ ni=1 σ2 i undsei die Feller-Bedingung erfüllt. Dann konvergiert(n∑n∑X i für n → ∞ in Verteilung gegen N µ i , √ )s 2 n .i=1i=1Was die Feller-Bedingung ist, interessiert uns jetzt nicht. Wir nehmen einfach an,dass sie erfüllt ist. In Worten ausgedrückt bedeutet der Grenzwertsatz, dass dieSumme vieler unabhängiger Zufallsvariablen mit endlichen Erwartungswerten undVarianzen ungefähr normalverteilt ist mit Erwartungswert ∑ µ i und Varianz ∑ i σ2 i .Man sagt nun, dass eine Messung von vielen kleinen unabhängigen ZufallsvariablenX i beeinflusst wird (vgl. auch zufällige Fehler), die sich so addieren, dass derMesswert als normalverteit angenommen werden kann. Dies rechtfertigt die obigeGrundannahme.3.2 Maximum Likelihood undKleinste-Quadrate-MethodeEs wird nun Zeit, sich mehr dem Fitten von Daten zuzuwenden.Angenommen, man hat N (unabhängige) Messwerte y i mit Unsicherheiten σ i zuden Grundvariablen x i , die wir als sicher annehmen. Weiterhin gibt es eine Funktion


18 3 Theorie: Nichtlineare Regressionf(.|θ) : R → R, die von dem Parameterset θ = (θ 1 , . . . , θ m ) abhängt. Die Hypothesesagt, dass der funktionelle Zusammenhang zwischen den x i und den y i die Formvon f hat und die Aufgabe ist, die Parameter θ so zu bestimmen, dass die f(x i |θ)besonders gut zu den y i passen.Was bedeutet besonders gut? Eine mögliche Antwort gibt die Maximum Likelihood-Methode:Sie sagt, die Wahl der Paramater θ ist dann besonders gut, wenndie zusammengesetzte Wahrscheinlichkeitsdichteϕ(z|θ) =N∏N f(xi |θ),σ i(z i ) (3.2.1)i=1an der Stelle z = (y 1 , . . . y N ) maximal ist. Diese zusammengesetze Wahrscheinlichkeitsdichteist das kontinuierliche Analogon zu der Wahrscheinlichkeit, das mehrereunabhängige Ereignisse gleichzeitig eintreten. Seien z.B. A 1 , . . . , A n unabhängige Ereignisse,die entweder eintreten oder nicht. Dann ist die Wahrscheinlichkeit, dass alleEreignisse gleichzeitig eintreten:n∏P (A 1 ∩ . . . ∩ A n ) = P (A i ).Wenn die Dichte ϕ(.|θ) in Gl. (3.2.1) aber maximal ist, dann (und genau dann)ist auch ihr Logarithmus maximal, denn der Logarithmus ist eine streng monotonsteigende Funktion. Man soll also folgende Funktion bezüglich θ maximieren:ln ϕ(y|θ) = lnN∏N f(xi |θ),σ i(y i ) =i=1i=1N∑ln N f(xi |θ),σ i(y i )i=1[ ( )]N∑ 1= ln √ − (y i − f(x i |θ)) 2i=1 2πσ2i2σi2[= − 1 N]∑N∑ln(2πσi 2 (y i − f(x i |θ)) 2) +. (3.2.2)2i=1Die erste Summe wird in unserem Fall immer konstant bleiben, weil wir die σ i alsgegeben annehmen. Genauso spielt auch der Vorfaktor 1/2 bei der Maximierungkeine Rolle. Es bleibt also noch, θ so zu bestimmen, dass−i=1σ 2 ii=1N∑ (y i − f(x i |θ)) 2=: −χ 2maximal wird. Das ist aber das gleiche, als würden wirχ 2 =N∑ (y i − f(x i |θ)) 2i=1σ 2 iσ 2 i(3.2.3)minimieren. Somit führt uns die Maximum Likelihood-Methode in unserem Spezialfalldirekt zur Methode der kleinsten Quadrate (least squares). Wir bestimmenunsere Parameter θ also so, dass die χ 2 -Funktion also die Summe der quadratischenAbweichungen relativ zu den Unsicherheiten σ i minimal wird.


3.2 Maximum Likelihood und Kleinste-Quadrate-Methode 19ρ N doF32N doF= 1N doF= 5N doF= 10N doF= 100100 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2χ 2 /N doFAbbildung 3.2.1: χ 2 -Verteilung für verschiedene Anzahlen von Freiheitsgraden N doF .Hypothesentest. Nachdem man die Parameter θ bestimmt hat, möchte man vielleichtnoch eine Auskunft darüber erhalten, wie gut die Hypothese f überhaupt war.Vielleicht hat man ja fälschlicherweise einen linearen Zusammenhang zwischen denGrößen x und y angenommen, wo gar keiner war. Dazu bestimmt man die Wahrscheinlichkeitsdichteρ(χ 2 ), dass ein bestimmter Wert von χ 2 eintritt, gegeben, dassman eine bestimmte Anzahl N doF von Freiheitsgraden (degrees of freedom) hat.Die Zahl der Freiheitsgrade ist die Zahl N der Messwerte minus die Zahl m derFitparameter:N doF = N − m.Falls man sich für den Rechenweg interessiert, so findet man diesen im CPI-<strong>Skript</strong>[1] Kapitel 9. Abb. 3.2.1 zeigt eine grafische Darstellung dieser Wahrscheinlichkeitsdichteρ(χ 2 ) nachnormiert nach der Zahl der Freiheitsgrade. Man sieht, dass für dassogenannte reduzierte χ 2 , also χ 2 /N doF und sehr große Zahl von Freiheitsgraden N doFdie Wahrscheinlichkeitsdichte bei Eins maximal ist. Bei sehr viel größeren Wertenvon χ 2 /N doF ist die Hypothese zu verwerfen und bei sehr viel kleineren Werten hatman vermutlich seine Unsicherheiten zu groß abgeschätzt.Eine Größe, die hierzu oft angegeben wird, ist der Q-Wert des Fits. Dieser istnichts anderes als die WahrscheinlichkeitQ(z) = P (χ 2 ≥ z). (3.2.4)Nach dem <strong>Skript</strong> [1] kann man der Hypothese bis Q = 0,1 vertrauen.


20 3 Theorie: Nichtlineare RegressionTabelle 3.2.1: ∆χ 2 für verschiedene Anzahl m der Parameter und Werte von 1 − α. Tabelle aus[2].(1 − α) [%] m = 1 m = 2 m = 368,27 1,00 2,30 3,5390, 2,71 4,61 6,2595, 3,84 5,99 7,823.2.1 Unsicherheiten der ParameterNachdem man die optimalen Parameterˆθ geschätzt hat, stellt sich nochdie Frage nach ihren Konfidenzintervallen.Angenommen, wir hätten zwei Parametergeschätzt: a und b. Dann erhältman die Unsicherheiten σ a und σ b daraus,dass man sich die Niveauline derχ 2 (a, b)-Funktion anschaut, wo der Wertχ 2 min + ∆χ 2 ist mit ∆χ 2 = 2,30. Im linearenFall (siehe Kapitel 5) ist dies eineEllipse wie in Abb. 3.2.2 schematischdargestellt. Die Neigung ist der Ellipseist auf eine Korrelation der Parametera und b zurückzuführen, in diesem FallAbbildung 3.2.2: Fehlerellipse. SchematischeDarstellung der Niveaulinie von χ 2 min +∆χ2 in denVariablen a und b im Fall negativer Korrelation.Im nichtlinearen Fall ist dies nicht notwendig eineEllipse. Adaptiert von Fig. 5 Kapitel Statisticsaus [2].eine negative Korrelation. Im Fall unkorrelierter Variablen sind die Hauptachsenparallel zu den Koordinatenachsen.Je nachdem wie viele Parameter man schätzt, ändert sich auch der passende Wertfür ∆χ 2 . Das gleiche gilt selbstverständlich auch, wenn man nicht das 68%-Intervall,sondern ein anderes schätzen möchte. Tabelle 3.2.1 zeigt einige Werte von ∆χ 2 zuverschiedenen Werten von m und 1 − α.


4 Numerik: Nichtlineare Regression4.1 Praktische Implementierung einer nichtlinearenRegression anhand wnonlinfitZiel der nichtlinearen Regression ist es, eine Funktion f(x|θ) mit den freien Parameternθ an gemessene Wertetupel x i und y i mit den Unsicherheiten des y-Wertesσ i anzupassen. In Kapitel 3.2 haben wir bereits gesehen, dass bei normalverteiltenFehlern es optimal istχ 2 (θ) = ∑ i(y i − f(x i |θ)) 2, (4.1.1)σ 2 izu minimieren. Im nichtlinearen Fall, d.h. wenn f(x|θ) nicht linear in θ ist, ist diesnicht im Allgemeinen analytisch möglich, wodurch wir auf numerische Routinenangwiesen sind.4.1.1 Numerische OptimierungMathematisch gesehen kann man unser Problem darauf reduzieren, das globale Minimumeiner skalarwertigen Funktion g(x) zu bestimmen. Das x in der Funktiong(x) darf nicht mit den x-Werten in der Messung verwechselt werden, sondern spielthier die Rolle von θ, während g die Rolle von χ 2 einnimmt. Praktisch gesehen istes allerdings nahezu unmöglich das globale Minimum zu finden, weswegen alle numerischdurchführbaren Routinen nur lokale Minima suchen und finden. Die Ideedieser numerischen Methoden ist es dabei bei einem meist durch den User vorgegebenStartwert anzufangen und sich dem Minimum dann iterativ anzunähern. Obdas Verfahren das globale Minimum findet oder überhaupt konvergiert hängt dabeikritisch von dem vorgegebenen Startwert ab. Es ist also nötig einen sinnvollenStartwert zu schätzen.Newton-Verfahren. Wir wollen mit dem Newton-Verfahren, beginnend von einemStartpunkt x 0 , das Minimum x min der Funktion g(x) bestimmen. Dazu approximierenwir die Funktion g(x) zunächst durch ihre (mehrdimensionale) Taylorreihe amStartpunkt x 0 bis zur 2. Ordnung. Die approximierte Funktionen nennen wir ˜g(x)˜g(x) := g(x 0 ) + ∇g(x)| x0 · (x − x 0 ) + 1 2 (x − x 0) T · H(g(x))| x0 · (x − x 0 ) ≈ g(x),(4.1.2)


22 4 Numerik: Nichtlineare Regression0−0.2−0.4−0.6−0.8−1x nx n+1x minFunktion f(x)Approximierte Funktion0.9 0.95 1 1.05 1.1 1.15Abbildung 4.1.1: Skizze eines Iterationsschrittes des Newton-Verfahrens.wobei H(g(x))| x0die Hesse-Matrix von g(x) an der Stelle x 0 ist und durch⎛H(g(x))| x0 :=⎜⎝∂ 2 g∂x 1 ∂x 1| x0∂ 2 g∂x 2 ∂x 1| x0.∂ 2 g∂x n∂x 1| x0⎞∂ 2 g∂∂x 1 ∂x 2| x0 · · ·2 g∂x 1 ∂x n| x0∂ 2 g∂∂x 2 ∂x 2| x0 · · ·2 g∂x 2 ∂x n| x0.. ..⎟ . ⎠ .∂ 2 g∂∂x n∂x 2| x0 · · ·2 g∂x n∂x n| x0gegeben ist. Im Minimum der Funktion ˜g(x) muss natürlich der Gradient der Funktionverschwinden, d.h. es giltAuflösen nach x min führt auf0 = ∇˜g(x)| xmin ≈ ∇g(x)| x0 + H(g(x))| x0 · (x min − x 0 ) (4.1.3)x min = x 0 − (H(g(x))| x0 ) −1 · ∇g(x)| x0 (4.1.4)Da dies natürlich nur korrekt ist, wenn die Funktion wirklich quadratisch in jederVariable ist führt man die Iterationx n+1 = x n − γ n · (H(g(x))| xn ) −1 · ∇g(x)| xn (4.1.5)ein. Diese wiederholt man so lange bis eine geeignete Abbruchbedingung die Schleifebeendet. γ n ist dabei die Schrittweite. Sie sollte stets zwischen 1 und 0 liegen undwird meist zu Beginn kleiner gewählt um nicht möglicherweise zu große Schrittezu machen. Befindet man sich schon nahe dem Minimum kann sie auf 1 gesetztwerden um schnellere Konvergenz zu erreichen. Für γ n = 1 konvergiert das Verfahrenquadratisch, d.h. |x n − x min | = O ( 1n 2 )Gradienten-Verfahren (steepest descent). Ein weiteres deutlich robusteres Verfahrenist das sogenannte Gradienten-Verfahren. Es basiert auf der Idee, stets der


4.2 Nichtlinearer Fit mit wnonlinfit 23Richtung des steilsten Abstieges zu folgen, d.h. entlang des negativen Gradientens.Die Iterationsformel lautet nunx n+1 = x n − γ n · ∇g(x)| xn (4.1.6)Die Schrittweite wird dabei wieder durch einen Parameter γ n festgelegt, der durchein weiteres Verfahren festgelegt werden muss. Man kann beispielsweise eine 1-D Optimierungentlang der durch den Gradienten festgelegten Geraden durchführen, wasim Allgemeinen sehr viel einfacher als eine mehrdimensionale Optimierung ist. DasVerfahren ist im allgemeinen sehr robust, da es garantiert, dass der Funktionswertgesenkt wird. Allerdings neigt es dazu, um das eigentlich Minimum in Zickzack-Schritten herumzulaufen. Deshalb ist die Konvergenz nahe dem Minimum auch eherschlecht.Implementierung in wnonlinfit. In wnonlinfit haben wir die nichtlineare Regressionmit der Matlab-Routine lsqnonlin implementiert. Diese verwendet dassogennante Trust-Region-Verfahren. Dieses basiert grundsätzlich auf dem Newton-Verfahren, allerdings wird dabei der quadratischen Approximation nur in einemgewissen Umfeld (deswegen „Trust-Region“) vertraut. Man definiert einen Trust-Region-Radius ∆r, und beschränkt den Raum, in dem die Funktion g(x) minimiertwerden soll, auf z.B. eine Kugel mit diesem Radius. Deshalb kann man auch nichteinfach Gl. 4.1.5 verwenden, sondern muss eine sogenannte restringierte Optimierungdurchführen. Restringierte Optimierung bedeutet dabei, dass das Minimum nicht inganz R gesucht wird, sondern nur auf einer Teilmenge davon, z.B. eben innerhalbeiner Kugel. Dies ist allerdings bei einer quadratischen Funktion analytisch mit Hilfeder Methode der Lagrange-Multiplikatoren möglich, welche einen Schrittvektor ∆xals Ergebnis liefert. Daraufhin bildet man das Verhältnis Γ k aus der tatsächlichenVerringerung der Funktion und der vorhergesagten VerringerungΓ n = g(x n + ∆x) − g(x n )˜g(x n + ∆x) − g(x n )Ist Γ n ≥ ρ 1 war das Verfahren erfolgreich und der Radius kann beibehalten odervergrößert werden und der Schritt wird durchgeführt, d.h. x n+1 = x n + ∆n. Dabeiist ρ 1 ein vordefinierter Parameter. Je nach Wahl agiert die Routine riskanter undschneller (bei ρ 1 ≪ 1) oder vorsichtiger und langsamer (bei ρ 1 1). Ist hingegenΓ n < ρ 1 gilt der Schritt als nicht erfolgreich, d.h. x n+1 = x n und der Trust-Region-Radius wird verkleinert.4.2 Nichtlinearer Fit mit wnonlinfitDie Syntax für einen Aufruf von wlinfit lautet[θ, θerr , U kov , χ 2 /DoF ] = wnonlinfit (x, y, y err , fitfunc, θ 0 ) (4.2.1)Die Eingabeparameter sind dabei:


24 4 Numerik: Nichtlineare Regressionx: Vektor der X-Wertey: Vektor der Y-Wertey err : Vektor der Unsicherheiten σ y der Y-Wertefitfunc: Function handle mit der zu fittenden Funktion. Die Form ist dabei f(x, c),die Funktion muss somit zwei Eingabevariablen besitzen. Die erste ist einVektor der x-Werte, die zweite ein Vektor der Fitparameter.θ 0 : Anfangsschätzung für die Fitparameter θ. Hierbei muss beachtet werden, dasswenn die Schätzung zu schlecht ist der Fit unter Umständen nicht konvergiert.Die Ausgabewerte sind:θ: Vektor der Koeffizienten des Fits, also die Ergebnisse.θ err : Vektor der Unsicherheiten von θU kov : Kovarianzmatrixχ 2 /doF: Der χ 2 -Wert geteilt durch die Anzahl der Freiheitsgrade. Dieser sollte nahebei 1 liegen.Zusätzlich werden wie zwei Plots erstellt. Der erste enthält den Fit mit den Ergebnissenin einer Legende, der andere die Residuen. Da wnonlinfit numerischeOptimierungsroutinen verwendet (also Routinen, die das globale Minimum suchen),braucht es Startwerte, die vorgeben, wo die Suche nach dem Minimum beginnen soll.Dabei kann es zu zwei grundlegenden Problemen bei der Minimierung kommen: Dererste problematische Fall ist, dass nicht das globale, sondern nur ein lokales Minimumvon χ2gefunden wurde. Dies äußert sich meistens in einem recht hohen χ2.dof dofDies passiert beispielsweise bei Fits mit einer Gaussfunktion, wenn der geschätzteMittelwert zu stark vom wahren Wert abweicht. Typischerweise endet dann der Fitin einem Minimum, bei dem die Fitfunktion einfach identisch null ist. Der zweiteFall, der eintreten kann, ist, dass die Routine gar nicht konvergiert und irgendwanneinfach abbricht und den letzten Wert, den sie berechnet hat, ausgibt. Um die Wahrscheinlichkeiteines erfolgreichen Fits trotz schlechter Startwerte zu erhöhen, führtwnonlinfit, wenn χ2zu schlecht war, eine zufällige Variation der vorgegebenendofStartwerte durch. Dies wird als Iteration angezeigt und erfolgt so lange, bis die gewünschteToleranz in χ2erreicht wurde, oder aber nach 100 Iteration. Dies kanndofsehr praktisch sein, wenn man viele verschiedene Fits durchführen muss und dieStartwerte nicht sehr gut kennt (wie z.B. im F-Praktikumsversuch Halbleiterdetektoren).Erfahrungsgemäß findet wnonlinfit die wahren Werte auch oft bei rechtschlechten Startwerten, bei denen der erste Versuch nicht funktioniert. Man kanndie zufällige Variation der Startwerte auch deaktivieren, indem man die Toleranz füreinfach sehr hoch setzt. Siehe dazu Kapitel 7χ 2dof


4.2 Nichtlinearer Fit mit wnonlinfit 254.2.1 BeispielIn diesem Beispiel soll mit gegebenen Daten des Spektrums eines Schwarzkörperstrahlersdessen Temperatur bestimmt werden und überprüft werden, ob es sichtatsächlich um einen Schwarzkörperstrahler handelt. Das Plancksche Strahlungsgesetzlautet nunS(E ph ) = A 0 ·E 3 phexp (E ph β)−1mit β = 1k b TMit wnonlinfit kann diese Funktion nun direkt gefittet werden. Möglicherweisesollte man sich die Funktion und Daten plotten lassen um geeignete Startwerte zufinden, sofern man keine physikalischen Schätzungen besitzt. In diesem Beispiel istdie Energie in eV in den Daten gegeben, die y-Werte sind in Counts also einheitenlos.Im weiteren soll nun der Code behandelt werden.Listing 4.1: Beispiel eines nichtlinearen Fits mit wnonlinfit1 clear ;23 % F i r s t t h e data has to be loaded4 % Expansion in t h r e e v a r i a b l e s i s o p t i o n a l5 load ( ’ n o n l i n f i t . dat ’ )6 x = n o n l i n f i t ( : , 1 ) ;7 y = n o n l i n f i t ( : , 2 ) ;8 y e r r = n o n l i n f i t ( : , 3 ) ;910 % you need to s p e c i f y t h e f u n c t i o n you want to use f o r f i t t i n g11 % t h e syntax i s12 % f i t f u n c ( v e c t o r o f x v a l u e s , v e c t o r o f f i t p a r a m e t e r s ) = @( x , c ) . . .13 f i t f u n c=@( x , cv ) cv ( 1 ) ∗x . ^ 3 . / ( exp( x . ∗ cv ( 2 ) ) −1) ;1415 % you a l s o need a f i r s t guess f o r t h e f i t p a r a m e t e r s :16 c0 =[2000 2 ] ;171819 % normally t h e i n p u t data has to be v e c t o r o f x v a l u e s , v e c t o r o f yvalues ,20 % v e c t o r o f e r r o r s . I f you don ’ t have e r r o r s you can j u s t put a 1 ( or21 % a r b i t r a r y v a l u e ) i n s t e a d o f a v e c t o r222324 %%%%% Optional i n p u t %%%%%25 t e x t p o s i t i o n =[4 6 0 0 ] ; % d e f i n e p o s i t i o n o f l e g e n d2627 % d e f i n e header o f l e g e n d28 h e a d e r c e l l ={ ’ Nonlinear F i t ’ ’ $ f (E_{\mathrm{ph }})=A_0 \ cdot \ f r a c {E_{\mathrm{ph}}^3}{\ exp {(E_{\mathrm{ph}} \ beta ) }{−}1}$ ’ ’ ’ } ;29 % d e f i n e a x i s l a b e l s and f i t p a r a m e t e r names30 mylabel={ ’ Photon energy $E_{\mathrm{ph}}$ [ eV ] ’ , ’ Photon Counts ’ , ’$A_0$ ’ , ’ $\ beta$ ’ } ;31 %%%%%%%%%%%%%%%%%%%%%%%%%%%323334 % a c t u a l e x e c u t i o n o f w n o n l i n f i t . See " h e l p w n o n l i n f i t " f o r more o p t i o n s .35 [ c c e r r Kov Chi]= w n o n l i n f i t ( x , y , yerr , f i t f u n c , c0 . . . % main arguments36 , ’ l a b e l ’ , mylabel , ’ p o s i t i o n ’ , t e x t p o s i t i o n , ’ header ’ , h e a d e r c e l l , ’ e r r p r e c ’ , 2 , ’c o n t o u r p l o t ’ , { [ 1 2 ] } ) ; % o p t i o n a l arguments3738 Tres = 1/ c ( 2 ) /1.3807 e −23∗1.6022 e −19;39 T r e s e r r = 1/ c ( 2 ) ^2∗ c e r r ( 2 ) /1.3807 e −23∗1.6022 e −19;40 t i t l e s t r = sprintf ( ’ Blackbody r a d i a t i o n spectrum @$T=%4.0 f \\pm %2.0 f $ K ’ , [ TresT r e s e r r ] ) ;41 t i t l e ( t i t l e s t r , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ , ’ f o n t s i z e ’ , 1 6 )4243 print −dpdf −cmyk r e s u l t _ n o n l i n f i t . pdf


26 4 Numerik: Nichtlineare Regression44 figure ( 3 )45 print −dpdf −cmyk c o n t o u r _ n o n l i n f i t . pdfZeile 1: Zunächst sollte man alle im Speicher befindlichen Variablen mit clear löschenum möglichen Fehlern vorzubeugen.Zeile 5: Laden der in der Datei nonlinfit.dat gespeicherten Daten.Zeile 6-8: Umspeichern der Daten von einer N × 3 in drei N × 1 Matrizen (auchmanchmal Vektoren genannt).Zeile 13: Definition der Funktion, die zum Fitten verwendet werden soll als fitfunc.@(x,betav) definiert dabei, dass die Funktion von x und betav abhängen soll.Die Formel definiert nun die ausgegebenen Werte. Die Funktion soll nun wennx die Dimension N × 1 besitzt auch eine Variable der Dimension N × 1 ausgeben.betav definiert einen Vektor der Fitparameter, die einfach elementweiseverwendet werden können.Zeile 16: Startwerte für die Fitparameter.Zeile 25: Variable für die Position der Legende im Plot. Der erste Eintrag definiertdie horizontale Position der zweite die vertikale Position.Zeile 28-30: Definition zweier Variabler für den Text im Plot. Headercell definiertspäter die Überschrift in der Legende. Dabei steht jeder neue Eintrag für eineZeile. mylabel wird für die Achsenbeschriftung und Benennung der Fitparameterin der Legende verwendet.Zeile 35: Aufruf von wnonlinfit. Dabei werden die vorher definierten Variablen verwendetund die Ergebnisse in [c cerr Kov Chi] gespeichert. Desweiteren werdenzwei Plots erstellt. Für die verwendeten Optionen siehe Kapitel 7.Zeile 38-39: Umrechnung des Ergebnisses in eine Temperatur in Kelvin.Zeile 40-41: Fügt dem Plot eine Überschrift hinzu in der das Ergebnis, also dieTemperatur des Strahlers in Kelvin, ausgegeben wird.Zeile 43: Speichert den Plot in eine pdf-Datei.


4.2 Nichtlinearer Fit mit wnonlinfit 27Blackbody radiation spectrum @T = 6016 ± 40 KPhoton Counts600500400300200100Nonlinear Fitf(E ph ) = A 0 ·E 3 phexp (E phβ)−1A 0 = (3.088 ± 0.080) × 10 3β = 1.929 ± 0.013χ 2 /doF= 0.71Q = 0.8800 1 2 3 4 5 6 7 8Photon energy E ph [eV]Abbildung 4.2.1: Fit von generierten Daten eines Schwarzkörperstrahlungsspektrums mit wnonlinfit


5 Theorie: Lineare RegressionIm Allgemeinen lässt sich χ 2 min nicht analytisch bestimmen, sondern muss numerischberechnet werden. Falls aberm∑f(x|θ) = θ j h j (x) (5.0.1)j=1mit linear unabhängigen Funktionen h j , dann reduziert sich die Regression samtBestimmung der Konfidenzintervalle auf ein paar wenige Matrixgleichungen. Diefolgende Rechnung orientiert sich sowohl am CP-<strong>Skript</strong> [1] und dem Particle DataBooklet [2].Unser erstes Ziel ist es, die optimalen Parameter ˆθ zu finden, d.h. die Parameter,für die χ 2 in Gl. (3.2.3) minimal wird. Dazu ist es notwendig, dass die partiellenAbleitungen nach allen θ k von χ 2 in ˆθ verschwinden:also[∂ ∑ N∂θ ki=1](y i − f(x i |θ)) 2⇔σ 2 iN∑i=1∣∂χ 2 = 0 ∀k, (5.0.2)∂θ k∣∣∣θ=ˆθh k (x i )y iσ 2 iθ=ˆθ= −=N∑i=1N∑i=12h k (x i )σ 2 ih k (x i )σ 2 i(y i − f(x i |ˆθ)) = 0f(x i |ˆθ). (5.0.3)Wenn wir jetzt die folgenden Matrizen definieren:⎛⎛⎞σ 2 ⎞1 0 . . . 0h 1 (x 1 ) h 2 (x 1 ) . . .⎜H = ⎝h 1 (x 2 ) h 2 (x 2 ) ⎟0 σ 2 2⎠ V = ⎜.... ⎝ . σ32 ⎟⎠ . (5.0.4).0..Dann ist⎛ ⎞f(x 1 |θ)⎜⎝f(x 2 |θ) ⎟⎠ = Hθ.undN∑i=1h k (x i )σ 2 if(x i |ˆθ) =(H T V −1 H ˆθ), (5.0.5)kwobei H T die transponierte Matrix zu H ist. Man kann Gl. (5.0.3) deshalb so zusammenfassen:H T V −1 y} {{ }=:gˆθ = H} T V{{ −1 H}⇔ Ug = ˆθ, (5.0.6)=:U −1


30 5 Theorie: Lineare Regressionbzw.ˆθ = (H T V −1 H) −1 H T V −1 y (5.0.7)} {{ }=:DNachdem wir nun ˆθ bestimmt haben, wollen wir die Varianzen σ θkkönnen wir z.B. mit Gauß’scher Fehlerfortpflanzung machen:bestimmen. Dasσ 2 θ k=N∑i=1σ 2 i( ∂θk∂y i) 2.Die partiellen Ableitungen bekommen wir über den (altbekannten) Trick mit demDifferential:Also istδθ k = δ(Dy) k =N∑j=1d kj δy i!=N∑( ) ∂θkδy i .∂y ij=1σ 2 θ k=N∑σi 2 d 2 ki = (DV D T ) kk .i=1Wenn wir nun noch auswerten, was DV D T ist, so stellen wir fest:DV D T = [(H T V −1 H) −1 H T V −1 ]V [(H T V −1 H) −1 H T V −1 ] T= (H T V −1 H) −1 H T V −1 V V −1 H(H T V −1 H) −1= (H T V −1 H) −1 = U.Wir wissen also, dass auf der Diagonalen von U die Quadrate der Unsicherheitenσ θk stehen. Welche Informationen enthält U noch?5.1 KovarianzmatrixDie Matrix U ist die sogenannte Kovarianzmatrix:⎛⎞σ θ 2 1σθ 2 1 θ 2. . .U =⎜σθ 2 1 θ 2σθ 2 2 ⎟⎝⎠ . (5.1.1)... .Was das bedeutet, schauen wir uns nun an. Zunächst schreiben wir Gl. (3.2.3) um:χ 2 = (y − Hθ) T V −1 (y − Hθ). (5.1.2)


5.1 Kovarianzmatrix 31Weil V −1 symmetrisch ist, können wir dies wie eine binomische Formel umformen:Für den Spezialfall θ = ˆθ gilt:χ 2 (θ) = y T V −1 y − 2y T V −1 Hθ + (Hθ) T V −1 Hθ (5.1.3)χ 2 min = χ 2 (ˆθ) = y T V −1 y − 2y T V −1 H ˆθ + (H ˆθ) T V −1 H ˆθ= y T V −1 y − 2y T D T H T V −1 H ˆθ + (H ˆθ) T V −1 H ˆθ= y T V −1 y − 2(H ˆθ) T V −1 H ˆθ + (H ˆθ) T V −1 H ˆθ= y T V −1 y − (H ˆθ) T V −1 H ˆθFür allgemeines θ machen wir in Gl. (5.1.3) eine passende Ergänzung:χ 2 (θ) = (Hθ) T V −1 Hθ − 2y T V −1 Hθ + (H ˆθ) T V −1 H ˆθ + χ 2 min= (Hθ − H ˆθ) T V −1 (Hθ − H ˆθ) + χ 2 min= (θ − ˆθ) T U −1 (θ − ˆθ) + χ 2 min (5.1.4)Was bedeutet diese Gl. (5.1.4) anschaulich? Zur Vereinfachung nehmen wir kurz an,dass U diagonal ist - was es meistens nicht ist. Dann bedeutete Gl. (5.1.4):χ 2 (θ) =m∑ (θ k − ˆθ k ) 2σ 2 k=1 θ k+ χ 2 min.Setzt man für ein θ k stattdessen ˆθ k ± σ θk und für die anderen θ den optimalen Wertein, so erhalt man:⎡⎛χ 2 ⎢⎜⎣⎝ˆθ 1ˆθ 2.ˆθ k−1ˆθ k ± σ θkˆθ k+1.⎞⎤⎟⎥⎠⎦= σ2 θ kσ 2 θ k+ χ 2 min = 1 + χ 2 min.


32 5 Theorie: Lineare RegressionDas gilt für beliebige k. Würde man sich die Menge aller Vektoren θ anschauen,wo χ 2 (θ) = χ 2 min + 1 ist, so würde diese einen Ellipsoiden darstellen, im zweidimensionalenFall also eine Ellipse wie in Abb. 3.2.2. Solange U diagonal ist, wärenihre Hauptachsen parallel zu den Koordinatenachsen. Im anderen, sehr viel häufigerauftretenden Fall liegt die Ellipse (bzw. der Ellipsoid) schief im Koordinatensystemund es entstehen Abhängigkeiten zwischen den Fitparametern - die Fitparametersind korreliert. Deshalb hängen die Nichtdiagonalelemente σ 2 ij von U auch mit denKorrelationskoeffizienten zusammen und heißen Kovarianzen.Kovarianzen. Um die praktische Bedeutung von Kovarianzen erklären zu können,müssen wir erst einmal auf die stochastische eingehen. Als Varianz σX 2 einer ZufallsvariableX hatten wir definiert:σ 2 X = E(X 2 ) − (EX) 2 .Die Kovarianz betrifft nun zwei Zufallsvariablen, z.B. X und Y :σ 2 XY = E(XY ) − (EX)(EY ) = E ((X − EX)(Y − EY )) . (5.1.5)Man sagt, X und Y sind unkorreliert, wenn E(XY ) = (EX)(EY ). Dann istσ 2 XY = 0.Achtung! Unkorreliertheit ist nicht äquivalent zu Unabhängigkeit a ! Zwar impliziertUnabhängigkeit Unkorreliertheit, nicht aber andersherum.a Zwei Zufallsvariablen X und Y heißen unahängig, falls für jede zwei vernünftig gewählteMengen A und B aus dem Ereignisraum gilt: P [(X ∈ A) ∩ (Y ∈ B)] = P (X ∈ A)P (Y ∈B).Was bedeutet nun also σ 2 θ i θ j? Wir hatten als zusammengesetzte Wahrscheinlichkeitsdichteϕ(y|θ) der Messwerte y unter der Voraussetzung der Werte der Fitparameterθ gefunden (siehe Gl. 3.2.1):ϕ(y|θ) =N∏N f(xi |θ),σ i(y i ) ∝ e −χ2 /2 ,i=1wobei das Proportionalitätszeichen hier bedeutet, dass der Normierungsfaktor weglassenwurde. Man kann die Abhängigkeit von y und θ umkehren, sodass θ dieeigentlich freie Variable ist und y der Parameter. Das ist ja eigentlich auch die Situation,die vorliegt, denn unsere Messwerte sind fest und wir variieren θ. Dannerhalten wir eine Verteilung für θ:ψ(θ|y) ∝ e −χ2 /2 = exp∝ exp[− 1 (2[− 1 2 (θ − ˆθ) T U −1 (θ − ˆθ)) ](θ − ˆθ) T U −1 (θ − ˆθ) + χ 2 min]. (5.1.6)


5.1 Kovarianzmatrix 33Die y-Abhängigkeit steckt im ˆθ. Man kann ausrechnen, dass die Verteilung mitNormierungsfaktor so aussieht:[1ψ(θ|y) =(2π) m/2√ det U exp − 1 ]2 (θ − ˆθ) T U −1 (θ − ˆθ) (5.1.7)Wir wollen nun untersuchen, wasist. Wir wissen schon, dass:Sei ϑ = θ − ˆθ. Man kann zeigen:E(θ j θ k ) − (Eθ j )(Eθ k ) = E ((θ j − Eθ j )(θ k − Eθ k ))Eθ j = ˆθ j .K(θ j , θ k ) = E [(θ j − Eθ j )(θ k − Eθ k )]∫ ∞∫ ∞= · · · (θ j − ˆθ j )(θ k − ˆθ k ) ψ(θ|y) dθ 1 . . . dθ m−∞ −∞∫1∞ ∫ ∞[=(2π) m/2√ · · · ϑ j ϑ k exp − 1 ]det U2 ϑT U −1 ϑ−∞−∞dϑ 1 . . . dϑ m .Sei weiterhin die Matrix O so, dass W = OU −1 O T diagonal ist. Es ist O T = O −1 ,weil U symmetrisch ist. Sei weiterhin η = Oϑ. Dann istϑ T U −1 ϑ = ϑ T O T OU −1 O T Oϑ = (Oϑ) T W (Oϑ) = η T W ηund die Funktionaldeterminante bei der Transformation ϑ → η gleich det O = 1und deshalb:K(θ j , θ k ) =1(2π) m/2√ det U∫ ∞−∞· · ·∫ ∞−∞[(O T η) j (O T η) k exp − 1 ]2 ηT W ηdη 1 . . . dη m .Sei W = diag(λ −11 , . . . , λ −1m ), dann det U = (det W ) −1 = λ 1 · . . . · λ m undK(θ j , θ k ) =∫1∞ ∫ (∞ ∑(2π) m/2√ · · ·λ 1 · . . . · λ m −∞ −∞lO T jlη l) ( ∑qO T kqη q)×=∫ ∞−∞×m∏k=1∫ ∞· · ·−∞[exp − 1 ]2 λ−1 kη2 k(∑l OT jl OT kl η2 ldη 1 . . . dη m) ∏ mk=1 exp [ ]− 1 2 λ−1 kη2 k(2π) m/2√ λ 1 · . . . · λ mdη 1 . . . dη m


34 5 Theorie: Lineare Regression=( ∑lO T jlO T klλ l)=O T klλ l O lj)= ( O T W −1 O ) kj = (U) kj = σ2 θ j θ k.( ∑lZwischendurch haben wir ausgenutzt, dass alle Terme, wo η l nicht quadratisch auftaucht,verschwinden.Die Kovarianz σθ 2 j θ kaus der Kovarianzmatrix U ist also genau auch die stochastischeKovarianz zwischen θ j und θ k :σθ 2 j θ k= E(θ j θ k ) − (Eθ j )(Eθ k ). (5.1.8)5.2 FehlerfortpflanzungNehmen wir nun an, wir wollten mit den Fitparametern ˆθ weiterrechnen und eineGröße Z bestimmen, die von θ j und θ k abhängt. Dann gilt für die Varianz σZ 2 mittelseiner Taylor-Entwichlung:σZ 2 = E(Z 2 ) − (EZ) 2 = E [ (Z − EZ) 2]≈ E[ (Z(ˆθ j , ˆθ k ) +Man nimmt nun zusätzlich an, dass( ∂Z∂θ j)(θ j − ˆθ j ) +Z(ˆθ j , ˆθ k ) = Z (Eθ j , Eθ k ) ≈ E (Z(θ j , θ k )) .( )) ] 2 ∂Z(θ k −∂θ ˆθ k ) − EZkDiese Annahme ist sehr stark! Im Allgemeinen darf man nicht annehmen, dassZ (Eθ j , Eθ k ) ≈ E (Z(θ j , θ k )). Gehen wir nur einmal davon aus, dass Z = θ j θ k . Dannwürde die obige Annahme bedeutet, dass die Kovarianz zwischen θ j und θ k gleichNull ist, wovon wir hier explizit nicht ausgehen. Dennoch ist die obige Annahmenötig, um auf das Gauß’sche Fehlerfortpflanzungsgesetz zu kommen:σ 2 Z ≈ E= E==[ (( ∂Z∂θ j)(θ j − ˆθ j ) +( ∂Z∂θ k)(θ k − ˆθ k )) 2][ ( ) 2 ( ) 2 ( ) ( )]∂Z(θ j −∂θ ˆθ ∂Zj ) 2 + (θ k −j ∂θ ˆθ ∂Z ∂Zk ) 2 + 2(θ j −k ∂θ j ∂θ ˆθ j )(θ k − ˆθ k )k( ) 2 ∂ZE[(θ j −∂θ ˆθ] ( ) 2 ∂Zj ) 2 + E[(θ k −j ∂θ ˆθ]k ) 2j( ) ( )∂Z ∂Z[+ 2E (θ j −∂θ j ∂θ ˆθ j )(θ k − ˆθ]k )k( ) 2 ( ) 2 ( ) ( )∂Z ∂Z∂Z ∂Zσθ 2 ∂θ j+ σθ 2j ∂θ k+ 2σθ 2k ∂θ j ∂θ j θ k.kMan benötigt die Kovarianz also bei der Fehlerfortpflanzung, wenn zwei Größenkorreliert sind, wie hier θ j und θ k .


5.3 Konfidenzintervalle bei nichtlinearer Regression 355.3 Konfidenzintervalle bei nichtlinearer RegressionNachdem man im nichtlinearen Fall die optimalen ˆθ durch eine Minimierungsroutinegefunden hat, braucht man zusätzlich noch die Unsicherheiten σ θ . Um diese zufinden, bietet es sich an, das Problem zu linearisieren. Dazu approximiert man dieFitfunktion f(x|θ) durchf(x i |θ) ≈ f(x i |ˆθ) + ∑ jF ij (θ j − ˆθ j ) mit F ij = ∂f(x i|θ)∂θ j.Dies setzt man nun in Gl. (3.2.3) ein und erhält(χ 2 (θ) ≈ ∑ y i − f(x i |ˆθ) + ∑ jσ 2 iiF ij (θ j − ˆθ j )) 2.Dies entspricht dem in Kapitel 5 beschriebenen linearen Fall, mit der ErsetzungH → F und y i → (y i − f(x i |ˆθ)). Führt man die Rechnung analog dazu aus, kommtman aufθ − ˆθ = ˜D(y − f(ˆθ)) (5.3.1)mit: (f(ˆθ)) i = f(x i |ˆθ) und ˜D = (F T V −1 F ) −1 (F T V −1 )Für die Unsicherheiten benutzt man analog zu Kapitel 5:δθ − δˆθ = ˜D(δy − δf(ˆθ)) = ˜D(δy − F ˆθ)Es ist˜DF = (F T V −1 F ) −1 (F T V −1 F ) = Iund damit:δθ = ˜Dδy.Daraus folgt wie im linearen Fall für die Kovarianzmatrix Ũ:Ũ = (F T V −1 F ) −1 . (5.3.2)Auf der Diagonalen dieser Matrix findet man wiederum die Varianzen σθ 2 iNichtdiagonalelemente geben die entsprechenden Kovarianzen an.und die


6 Numerik: Lineare Regression6.1 Linearer Fit mit wlinfitDie Syntax für einen Aufruf von wlinfit lautet[θ, θerr , f(x), U kov , χ 2 /doF ] = wlinfit (x, y, y err , {@(x)f 1 (x), @(x)f 2 (x), ...})(6.1.1)Die Eingabeparameter sind dabei:• x: Vektor der X-Werte• y: Vektor der Y-Werte• δy: Vektor der Unsicherheiten der Y-Werte• {@(x)f 1 (x), @(x)f 2 (x), ...}: sog. Cell mit den zu fittenden Funktionen (Bsp:{@(x) cos(x), @(x) sin(x)})Die Ausgabewerte sind:• θ: Vektor der Koeffizienten des Fits, also die Ergebnisse.• θ err : Vektor der Unsicherheiten σ x von θ• f(x): Die resultierende Funktion, d.h. die entsprechenden c i mit den zu fittendenFunktionen multipliziert. Diese kann in Matlab direkt weiterverwendetwerden durch Aufruf von z.B. u theo = f(x)• U kov : Kovarianzmatrix.• χ 2 /doF: Der χ 2 -Wert geteilt durch die Anzahl der Freiheitsgrade. Dieser solltenahe bei 1 liegen.Wenn man mit einem Polynom n-ter Ordnung fitten will kann man auch die Option’polyfit’ verwenden und muss die Funktionen nicht direkt übergeben. Dazu ruft manwlinfit auf, ohne Funktionen zu übergeben. Allerdings darf man allerdings dasFeld nicht einfach leer lassen, sondern muss {}, also eine leere Cell, einsetzen. Dannsetzt man die Option ’polyfit’ auf den gewünschten Grad des Polynoms. Dies siehtfür ein Polynom erster Ordnung dann wie folgt aus[θ, θerr , f(x), U kov , χ 2 /DoF ] = wlinfit (x, y, δy, {}, ’polyfit’, 1) (6.1.2)


38 6 Numerik: Lineare RegressionDaraufhin werden zwei Plots erstellt. Der erste ist in Abb. 6.1.1 zu sehen. Darinsieht man die gemessenen Werte in grau mit Fehlern, die resultierende Funktion inschwarz und eine Tabelle mit den Ergebnissen. Der zweite Plot stellt die Residuendar, welche durch die Formelres i = x i − f(x i ; τ, U 0 )σ U,igegeben sind. Um Plots als pdf zu speichern geht man wie folgt vor1 print −dpdf f i l e n a m e p l o t . pdf2 figure ( 2 )3 print −dpdf f i l e n a m e r e s i d u e n . pdf6.1.1 BeispielIn diesem Beispiel soll das Entladen einen Kondensators behandelt werden. Dabeiwurde die Spannung U als Funktion der Zeit t aufgenommen und als N × 3 Matrixabgespeichert (Listing 6.2). Dabei steht die Zeit in der ersten, die Spannung in derzweiten und die Unsicherheit der Spannung in der dritten Spalte. Der bekanntefunktionale Zusammenhang ist dabeiU(t) = U 0 · e − t τmit den zu bestimmenden Parametern U 0 und τ. Dies ist noch nicht linear kannaber durch Logarithmieren in einen linearen Fit umgewandelt werden.log (U) = log (U 0 ) − 1 τ · t = c 1 + c 2 · t mit c 1 = log (U 0 ) und c 2 = − 1 τEs muss außerdem die Unsicherheit δ log (U) berechnet werden. Diese ergibt sichmit der Gaußschen Fehlerfortpflanzung zuδ log (U) = δU UNach dieser Vorbereitung kann mit dem Code begonnen werden. Ein lauffähigerCode ist in Listing 6.1 zu finden und soll hier erläutert werden.Listing 6.1: Beispiel eines linearen Fits mit wlinfit1 clear % Loeschen a l l e r im S p e i c h e r b e f i n d l i c h e n Variablen23 load l i n f i t . dat % Laden der Messwerte a l s N x 3 Matrix45 t = l i n f i t ( : , 1 ) ; % Speichern der j e w e i l i g e n S p a l t e n der Matrix6 U= l i n f i t ( : , 2 ) ; % a l s Vektoren7 Uerr = l i n f i t ( : , 3 ) ; %89 [ c c e r r r e s u l t f u n c Kov ] = w l i n f i t ( t , log (U) , Uerr . /U, { } , ’ p o l y f i t ’ , 1 , ’ l a b e l ’ ,{ ’ Z e i t t[ s ] ’ , ’Ln( Spannung [V] ) ’ , ’ $\mathrm{ l n }(U_0) $ ’ , ’ $\ beta$ ’ } , ’ header ’ , ’ $\mathrm{l n }(U( t ) )=\mathrm{ l n }U_0+\beta t $ ’ , ’ c o n t o u r p l o t ’ , { [ 1 2 ] } , ’ p r i n t ’ , true , ’p o s i t i o n ’ , [ 1 . 4 e−3 0 ] ) ;1011 print −dpdf polyfit . pdf12


6.1 Linearer Fit mit wlinfit 3913 tau = −1/c ( 2 ) ;14 dtau = c e r r ( 2 ) / c ( 2 ) ^2;1516 U0 = exp( c ( 1 ) ) ;17 dU0 = exp( c ( 1 ) ) ∗ c e r r ( 1 ) ;18 f p r i n t f ( ’ tau=%1.3e +− %1.3 e \n U_0=%1.3e +− %1.3 e \n ’ , [ tau dtau U0 dU0 ] ) ;Zeile 1: Zunächst sollte man alle im Speicher befindlichen Variablen mit clear löschenum möglichen Fehlern vorzubeugen.Zeile 3: In Zeile 3 werden mit dem Befehl load die Daten, die in einem ASCIIfile (Listing 6.2) hinterlegt sind, unter dem Namen linfit in den Speichergeladen.Zeile 5-7: In Zeile 5 bis 7 werden die 3 Spalten der Matrix linfit als eigene Variablenabgespeichert.Zeile 9: Nun kann in Zeile 9 die eigentlich Routine wlinfit aufgerufen werden. Dabeiwerden gemäß Gl. 6.1.2 die x-Werte t, die y-Werte log(U) mit den UnsicherheitenU err mit einem Polynom erster Ordnung gefittet, was mit der Option’polyfit’ spezifiziert wurde. Weiterhin wurde mit ’label’ die Beschriftung derAchsen und die Benennung der Variablen im Fit definiert. Dazu übergibt maneine Cell mit den entsprechenden Bezeichnungen in der Form {’x-achse’ ’yachse’’1. Variable’ ’2.Variable’}. Wenn man wie hier keine Variablennamenspezifiziert, werden sie einfach c 1 , c 2 usw. genannt. Die letzte Option ’header’definiert die Überschrift in der Legende. Mehr zu Optionen findet man in Kapitel7Wichtig: Alle Strings müssen in Latex eingegeben werden. Dabei befindetman sich im Textmodus. Will man in den mathematische Modus, geht das wieüblich mit $$Zeile 11: Mit print kann man Bilder als Dateien speichern. Die Option -dpdf spezifiziertdas format (siehe help print für mehr Optionen) Dieses Programmist für das Produzieren von pdfs ausgelegt. Bei anderen Formaten (z.B. jpeg)treten gerne Bugs mit dem Latex-Compiler auf.Zeile 13-17: Die Ergebnisse des Fits werden zur Berechnung der Größen τ und U 0 ,sowie deren Unsicherheiten verwendet.Zeile 18: Anzeigen der Ergebnisse für τ und U 0Matlab eignet sich nun ausgezeichnet um schnell und automatisch weitere Rechnungendurchzuführen.Listing 6.2: Daten in einem ASCII file (linfit.dat). e-4 steht hierbei für ×10 −41 0 . 0 0 0 e+00 1 . 0 1 5 0 . 0 1 02 5 . 0 0 0 e−05 0 . 9 4 6 0 . 0 1 03 1 . 0 0 0 e−04 0 . 8 9 6 0 . 0 1 04 1 . 5 0 0 e−04 0 . 8 5 8 0 . 0 1 05 2 . 0 0 0 e−04 0 . 8 2 5 0 . 0 1 06 2 . 5 0 0 e−04 0 . 7 7 0 0 . 0 1 0


40 6 Numerik: Lineare Regression0−0.5−1ln(U(t)) = lnU 0 + βtln(U 0 ) = (-2.9 ± 4.3) × 10 −3β = (-9.970 ± 0.064) × 10 2χ 2 /doF= 0.95Q = 0.59Ln(Spannung [V])−1.5−2−2.5−3−3.50 0.5 1 1.5 2 2.5 3Zeit t [s]x 10 −3Abbildung 6.1.1: Fit des Logarithmus der Spannung eines Kondensators bei Entladung7 3 . 0 0 0 e−04 0 . 7 2 9 0 . 0 1 08 3 . 5 0 0 e−04 0 . 7 0 3 0 . 0 1 09 4 . 0 0 0 e−04 0 . 6 7 0 0 . 0 1 010 4 . 5 0 0 e−04 0 . 6 4 2 0 . 0 1 011 5 . 0 0 0 e−04 0 . 6 0 1 0 . 0 1 012 5 . 5 0 0 e−04 0 . 5 7 5 0 . 0 1 013 6 . 0 0 0 e−04 0 . 5 4 4 0 . 0 1 014 6 . 5 0 0 e−04 0 . 5 2 1 0 . 0 1 015 7 . 0 0 0 e−04 0 . 5 1 2 0 . 0 1 016 7 . 5 0 0 e−04 0 . 4 6 6 0 . 0 1 017 8 . 0 0 0 e−04 0 . 4 3 6 0 . 0 1 018 8 . 5 0 0 e−04 0 . 4 3 2 0 . 0 1 019 9 . 0 0 0 e−04 0 . 3 9 8 0 . 0 1 020 9 . 5 0 0 e−04 0 . 3 8 7 0 . 0 1 0


7 Zusätzliche Optionen undEinstellungenOptionen sind ein nützliches Hilfsmittel um in Matlab optionale Werte an Funktionenzu übergeben. Dazu gibt man zunächst in einem String an, für welche Optionder nachfolgende Wert gelten soll. Nach einem Komma folgt dann der eigentlicheWert. Für wnonlinfit heißt das z.b.1 w n o n l i n f i t ( x , y , yerr , f i t f u n c , c0 , ’ p l o t ’ , f a l s e )wodurch die Option plot auf false gesetzt wird und somit keine Plots ausgegebenwerden. Jede Option besitzt intern einen Standardwert, der verwendet wird, wennnichts spezifiziert wird. Im folgenden werden alle Optionen für wlinfit und wnonlinfitaufgelistet und beschrieben.Optionenplot: Variablentyp: Boolean. Legt fest, ob Plots ausgegeben werden. Da plotten beiweitem die meiste Zeit kostet, lohnt es, wenn man keine Plots benötigt dieOption auf false zu setzen. Standard: true.label: Variablentyp: Cell of Strings. Legt die Beschriftungen der Achsen und Benennungder Variablen in der Legende fest. Bsp: ’x-achse’ ’y-achse’ ’name1’’name2’. Standard: ’x-axis’ ’y-axis’ ’c 0 ’ ’c 1 ’ ....position: Variablentyp: 1 × 2 Matrix of double. Legt die Position der Legende fest.Dabei wird die Position der linken oberen Ecke angegeben. Standard: kompliziert,hängt von der Funktion und den Achsen ab.chitol: Variablentyp: double. Gibt die Toleranz für χ2dofwnonlinfit).an. Standard: 2 (nur fürgrid: Variablentyp: Boolean. Legt fest, ob ein Grid in die Plots gelegt werden soll.Standard: false.print: Variablentyp: Boolean. Legt fest, ob etwas in die Matlab ausgegeben werdensoll. Standard: true.header: Variablentyp: Cell of Strings. Definiert die Überschrift in der Legende. JedesElement der Cell legt eine Zeile fest. Bsp.: siehe Listing 4.1. Standard:{’(Non)linear Fit’}.printchi: Variablentyp: Boolean. Legt fest, ob χ2dofwerden.und Q in der Legende aufgeführt


42 7 Zusätzliche Optionen und Einstellungenerrprec: Variablentyp: integer. Legt fest, wie viele signifikante Stellen in der Legendedargestellt werden sollen. Standard: 2.axis: Variablentyp: 1×4 Matrix of double. Wie der normale axis Befehl. Standard:Kompliziert, hängt von den Daten ab.contourplot: Variablentyp: Cell of 1 × 2 matrices. Hiermit können Konturplots derWahrscheinlichkeitsverteilung der Fitparameter, die in dem Vektor festgelegtwerden, erzeugt werden. Daran können Korrelationen zwischen zwei Fitparameternerkannt werden. Standard: keine Ausgabe.polyfit: Variablentyp: Integer. Fügt den zu fittenden Funktionen ein Polynom mitder angegebenen Ordnung hinzu. Wenn man nur mit einem Polynom fittenmöchte, kann man einfach als Cell in der die Funktionen übergeben werdeneine leere Cell übergeben und nur die Option polyfit verwenden.


Literaturverzeichnis[1] U. Wolff, P. Fritzsch, and T. Korzec, “Computational Physics I.”http://www.physik.hu-berlin.de/com/teachingandseminars/previousCPI.[2] J. Beringer et al. (Particle Data Group) Phys. Rev. D86, p. 010001, 2012.[3] A. R. Gallant, “Nonlinear regression,” The American Statistician, vol. 29, no. 2,pp. pp. 73–81, 1975.[4] U. Müller, “Einführung in die Messung, Auswertung und Darstellungexperimenteller Ergebnisse in der Physik.” http://gpr.physik.huberlin.de/<strong>Skript</strong>en/Einfuehrung/PDF-Datei/Einfuehrung.pdf.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!