least squares algorithmen < Nichtlineare Gleich. < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 00:00 Mi 25.10.2006 | Autor: | Arthur |
also ich habe äquidistante stützstellen und dazugehörige frequenzwerte einer funktion f
ich möchte nun eine summe von 4 sinusfunktionen finden die meine funktion möglichst gut approximiert. das geht wohl über fehlerquadratminimierung mit levenberg-marquardt oder gauß-newton ganz gut. mein problem ist jetzt, dass ich das ganze in c++ programmieren möchte. fertige implementierungen die ich gefunden habe sind für mich zu undurchsichtig und enthalten viele optimierungen die für meinen einfachen fall(4 ansatzfunktionen) unnötig sind.
kann mir jemand literatur empfehlen in der ich eine gute beschreibung beider algorithmen finde damit ich entscheiden kann welcher für meinen fall geeignet ist(und möglichst leicht zu programmieren)? wäre echt nett
grüße,
arthur
|
|
|
|
Hallo Arthur,
Eine Einführung findest du hier. Die läßt aber imho Fragen zur konkreten Implementierung offen(die Wahl dieses Dämpfungsfaktors bei LEvenberg Marq. blieb offen soweit ich mich erinnere). Leichter zu Programmieren ist daher Gauß-Newton. Schwierig dürfte eher die Wahl konkreter Startwerte werden.
Sicherstellen solltest Du das nicht doch eine Linearisierung deines Problems möglich ist. Da diese wohl vorzuziehen wäre. Bei Winkelfunktionen fallen einem da spontan die Additionstheoreme ein.
viele Grüße
mathemaduenn
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:16 Mi 25.10.2006 | Autor: | chrisno |
Hallo Arthur,
schau mal ob Dir die "Numerical Recipes (W.H.Press et. al.)" zusagen. Da sind die Algorithmen erklärt und ausformuliert. Ich kann mit dem Ausdruck Frequenzwerte nichts anfangen. Wenn Du Dich auf Fourierreihen beschränken kannst, dann hast Du automatisch die beste Approximation und brauchst also kein LS-Verfahren.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:06 Do 26.10.2006 | Autor: | Arthur |
ich brauche ja nur 4 sinusfunktionen und kenne deren omega(i) und a(i) nicht.
bei FFT oder goertzel werden die frequenzen als bekannt angenommen...geht also nicht. gibt wohl noch eine methode von prony (geht da ich amplituden nicht brauche)aber die ist wohl numerisch instabil.
mein prof hat mir deswegen levenberg-marquardt und gauß-newton empfohlen.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:33 Do 26.10.2006 | Autor: | chrisno |
Die numerical recipes gibt es auch für C++. Der komplette Code steht dann im Buch. Fürher honnte man auch eine Diskette mit den Codes kaufen. Das wird wohl nun auf CD sein.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:20 So 29.10.2006 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|