Jue89
16:32 Uhr, 28.04.2009
|
Hallo!
Ich möchte gerne für eine gegebene Wertetabelle die Koeffizienten der Funktion über eine potenzielle Regression errechnen. Ziel ist es dafür einen Algorithmus zu entwerfen, der dieses in einer angemessenen Laufzeit (max. 10ms für 255 Wertepaare auf einem aktuellen PC) bewerkstelligt.
Bisher linaresiere ich das ganze wie folgt:
Dann führe ich eine lineare Regession durch. Soweit funktioniert das auch. Aber die Koeffizieten sind relativ ungenau. Ein habe ich gerade nicht zur Hand. Aber vergleicht man das Ergebnis mit dem MatLab Fitting Tool, bemerkt man, dass MatLab offensichtlich einen anderen Algorithmus verwendet, der westenlich bessere Ergebnisse liefert.
Darum jetzt die Frage an euch: Gibt es noch ein anderes Verfahren, um eine potenzielle Regression durchzuführen? In diversen Lehrbücher, die ich mit meinem Ingeniersmathe noch gut verstehen kann, wird nämlich durch die Bank weg die Linearisierung über der Logarithmus durchgeführt.
Vielen Dank! Jue
Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
|
|
Das Logarithmieren ist eine beliebte Methode, um nichtlineare Zusammenhänge zu linearisieren. Wenn man so etwas macht, sollte man bedenken, dass die lineare Regression davon ausgeht, dass die Standardabweichungen über den gesamten Messwertebereich konstant und normal verteilt sind. Weiter ist zu bedenken, was in der Nähe von passiert. In diesem Bereich wird das logarithmische Verfahren extrem instabil. Durch das Logarithmieren wird aus der Bedingung der konstanten Fehler die Bedingung der konstanten relativen Fehler. Es ist zu prüfen, ob das dem Problem angemessen ist. Beispielsweise ja, wenn in verschiedenen Messbereichen gemessen wird, die jeweils die selbe %uale Genauigkeit haben. Wenn die Werte aber die selbe absolute Genauigkeit haben, können die mit dem logarithmischen Verfahren berechneten allenfalls Startwerte für eine iterative Verbesserung sein. Ob das aber in ms machbar ist, kann ich nicht übersehen.
|
Jue89
01:07 Uhr, 02.05.2009
|
Hallo Ulrich!
Danke für deine Antwort. Ich bastel gerade an einem "intelligenten" Bruteforce-Algorithmus und bin auf diese Form umgestiegen:
Mal sehen, ob ich das mit den Laufzeiten unter Kontrolle bekomme. Zur Not muss ich unseren Rechnercluster etwas ärgern ;-)
Wenn ich genauere Ergebnisse habe, stelle ich sie für die Nachwelt hier mit rein ;-)
VG Jue
|