Auswahl Aktion im Forum Suche Kontakt Für Mitglieder Mathematisch für Anfänger Wer ist Online | |
| Autor |
Methode der kleinsten Quadrate mit Gauß-Modell |
|
kwyrky
Aktiv  Dabei seit: 13.02.2012 Mitteilungen: 34
Aus:
 |     Themenstart: 2012-07-06 01:49
|
Hallo,
ich versuche mich gerade daran, mit Hilfe der Methode der kleinsten Quadrate einen Gauß-Fit zu machen, wobei ich nur zwei Parameter benötige, da die Kurve symmetrisch zur Y Achse verlaufen soll. Ich habe nun ein paar Fragen, da ich es noch nicht gelöst habe. Lässt sich das Problem denn analytisch lösen oder kann man hier nur numerisch iterativ zum Ziel kommen? Ich denke äquivalent dazu oder zumindest in die Gleiche Richtung geht denke ich folgende Frage: Kann man die Gauß Modellfunktion vielleicht linearisieren, anschließend die Methode der keinsten Quadrate anwenden um das neue linearisierte Problem zu lösen und dann daraus die Parameter abzuleiten? Wie genau sähe eine solche Variante aus? Wäre dann einfach der Ln von der ursprünglichen Modellfunktion zu nehmen? Nur die Modellfunktion zu logarithmieren und dann die Quadrate der X Werte und Logarithmen der Y Werte zu verwenden funktioniert wohl nicht, oder?
Vielen Dank für's Lesen. Ich hoffe meine Fragen sind verständlich formuliert. Ich freue mich auf hoffentlich hilfreiche, erklärende Antworten.
[ Nachricht wurde editiert von kwyrky am 06.07.2012 01:52:06 ]
|
Profil
Quote
Link |
Kitaktus
Senior  Dabei seit: 11.09.2008 Mitteilungen: 2586
Aus: Gifhorn(NDS)/Panketal(BRB)
 |     Beitrag No.1, eingetragen 2012-07-06 09:36
|
 
\ Hallo, hast Du vielleicht vergessen, dazuzuschreiben, welchen Funktionstypen Du an Deine Daten anpassen willst? Das wäre schon wichitg zu wissen. Prinzipiell kann man Parameteroptimierung für Funktionen der Art \-\- f(x)=\sum(a_i*g_i(x),i=1,n), wobei die g_i feste Funktionen und die a_i die anzupassenden Parameter sind \-\- exakt lösen. Wenn sich Deine Modellfunktion nicht in diese Form bringen lässt, dann wäre eine Möglichkeit die Linearisierung. Aber darüber möchte ich nicht spekulieren, ohne das Problem näher zu kennen. Kitaktus
|
Profil
Quote
Link |
kwyrky
Aktiv  Dabei seit: 13.02.2012 Mitteilungen: 34
Aus:
 |     Beitrag No.2, vom Themenstarter, eingetragen 2012-07-06 13:15
|
Hallo Kitaktus,
ich möchte die Funktion
 
\ \rho(r)=\rho_0*exp(-(r^2)/(2*\sigma^2)
verwenden.
Da ich weiß, wie ich bei einer Linearen Funktion zum "Ziel" komme, habe ich versucht erstmal diese zu linearisieren, indem ich auf beiden Seiten den Ln nehme.
Das führt dann auf
 
\ \ln(rho(r))=ln(\rho_0) + (-1/(2*\sigma^2) * r^2
Man könnte nun die vorliegenden Daten
 
\ \rho und r in ln(\rho) und r^2 umrechnen und die Parameter ln(\rho_0) und (-1/(2*\sigma^2) dann bestimmen.
Dann hätte man eine lineare Gleichung und nach dann mit der Methode der kleinsten Quadrate ein Lineares Gleichungssystem, bei dem ich die gesuchten Parameter bestimmen kann.
Diese Parameter geben dann die Gerade an, die die transformierten Datenpunkte am besten fittet. Wenn ich aber aus den bestimmten Parametern des linearisierten Problems die eigentlich gesuchten
 
\ \rho_0 und \sigma bestimmen möchte, dann erhalte ich keinen vernünftigen fit für die ursprünglichen Datenpunkte...
Das Problem ist also wahrscheinlich, dass ich diese Linearisierung zwar machen kann, dann aber ein "anderes" Problem gelöst wird, nämlich eine best-fit Gerade für die transformierten Daten zu berechnen.
Ich hoffe ich konnte einigermaßen verständlich schildern, wo das Problem liegt.
[ Nachricht wurde editiert von kwyrky am 06.07.2012 13:16:27 ]
|
Profil
Quote
Link |
Kitaktus
Senior  Dabei seit: 11.09.2008 Mitteilungen: 2586
Aus: Gifhorn(NDS)/Panketal(BRB)
 |     Beitrag No.3, eingetragen 2012-07-06 14:35
|
Wenn Du Logarithmierst und dann fittest, löst Du ein _anderes_ Problem. Speziell beim Logarithmus minimiert man im wesentlichen den _relativen_ Fehler. Für manche Anwendungen kann das sinnvoll sein, bei anderen kommt ziemlicher Blödsinn raus (weil sich die Anpassung besonders stark an den kleinen Werten orientiert und große weitestgehend ignoriert).
Wofür benötigst Du denn das Ergebnis? Für eine praktische Anwendung würde ich Matlab nehmen (weil ich das kenne), einen nichtlinearen Optimierer anwerfen und die Parameter an die Funktion so anpassen, wie sie ist.
Ein analytisches Ergebnis bekommt man damit natürlich nicht.
Kitaktus
|
Profil
Quote
Link |
kwyrky
Aktiv  Dabei seit: 13.02.2012 Mitteilungen: 34
Aus:
 |     Beitrag No.4, vom Themenstarter, eingetragen 2012-07-06 15:37
|
Ok, genau das hatte ich nämlich vermutet, dass das meine Vorgehensweise nicht zielführend ist, da nach der Logarithmierung das Problem in ein anderes transformiert wird. Man kann dann zwar eine Fit-Gerade finden und die die ursprünglichen Parameter daraus zurückgewinnen aber nur im - so nenne ich diesen jetzt mal - Logarithmischen Raum ist die berühmte Summe der kleinsten Quadrate minimal, nicht jedoch im Ursprünglichen.
Da ich für meine Vermutung nun die Bestätigung habe, werde ich einfach eine Mathe-Software verwenden, um einen nichtlinearen Fit zu machen.
Ich hatte zufällig etwas zu der Methode der kleinsten Quadrate gelesen und fand die Methode ziemlich interessant. Da ich hobbymäßig programmiere habe ich dann versucht ein Programm zu schreiben, dass Lineare Funktionen fitten kann. Das hat gut geklappt und ich wollte sehen ob es auch für andere Funktionen (Gauß) klappt. Aber du hast recht, heutzutage nimmt man besser einfach Matlab oder ähnliches, fittet und hat sein Ergebnis :-)
|
Profil
Quote
Link |
|