Hallo,
ich soll einen (indirekten?) Fit nachbauen und hab da so meine Probleme mit. Ein ehemaliger Kollege hat das mal gemacht, er hat aber mittlerweile die Firma verlassen und kann nicht mehr gefragt werden.
Und zwar gibt es Messgrößen x. Aus diesen Daten soll eine andere Größe y = f(x;a) bestimmt werden, wobei a ein freier Parameter ist. Dieser Parameter soll nun so bestimmt werden, dass eine andere Funktion g(y;b) mit freiem Parameter b bestmöglich gefittet wird, z.B. die berechneten y-Werte auf einer Geraden liegen.
Gesucht sind also die freien Parameter a und b und deren Kovarianzmatrix. Ich weiß aber nur wie man Funktionen direkt fittet, d.h. für feste a die Funktion g zu fitten. Wie aber schaffe ich es, dass auch der a Parameter mit gefittet wird? Ich hoffe es ist halbwegs nachvollziehbar war ich erreichen will.
doppelter Fit
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Und der hat nur Endergebnisse hinterlassen und keinen Weg? Ist das eine gute Art der Dokumentation?trublu hat geschrieben:ich soll einen (indirekten?) Fit nachbauen und hab da so meine Probleme mit. Ein ehemaliger Kollege hat das mal gemacht, er hat aber mittlerweile die Firma verlassen und kann nicht mehr gefragt werden.

Dem kann ich nicht folgen. X sind verrauschte Messwerte? Daraus machst du eine Funktion (z.B eine Gerad)? Dann stelle ich mir vor das y eine Funktion ist die diese Gerade modifiziert (offset oder Steigung z.B). Dann ist g aber doch auch eine Funktion von f(x;a;b) oder nicht?trublu hat geschrieben:Und zwar gibt es Messgrößen x. Aus diesen Daten soll eine andere Größe y = f(x;a) bestimmt werden, wobei a ein freier Parameter ist. Dieser Parameter soll nun so bestimmt werden, dass eine andere Funktion g(y;b) mit freiem Parameter b bestmöglich gefittet wird, z.B. die berechneten y-Werte auf einer Geraden liegen.
Natürlich ist es das nicht. Ich kann aber nicht ändern was bereits passiert ist. Ich kann es jetzt lediglich für die Zukunft besser machenSr4l hat geschrieben: Und der hat nur Endergebnisse hinterlassen und keinen Weg? Ist das eine gute Art der Dokumentation?![]()

hmmm eigentlich schon. Entweder habe ich das schlecht beschrieben oder ich bin nicht in der Lage das für mein Problem anzupassen. Also mal etwas konkreter.trublu hat geschrieben:Dem kann ich nicht folgen. X sind verrauschte Messwerte? Daraus machst du eine Funktion (z.B eine Gerad)? Dann stelle ich mir vor das y eine Funktion ist die diese Gerade modifiziert (offset oder Steigung z.B). Dann ist g aber doch auch eine Funktion von f(x;a;b) oder nicht?
Meine Messgröße heißt jetzt Z. Aus diesem Z berechne ich das Y als Y = Z/A. Wenn ich jetzt Y gegen X plotte hätte ich gerne eine Gerade Y = B*X. Und das überfordert mich.
Also willst Du einfach eine lineare Regression machen? Das geht z.B. damit:
http://docs.scipy.org/doc/scipy-0.14.0/ ... gress.html
http://docs.scipy.org/doc/scipy-0.14.0/ ... gress.html
Code: Alles auswählen
from scipy import stats
import numpy as np
x = np.random.random(10)
y = np.random.random(10)
slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)
Zuletzt geändert von Anonymous am Mittwoch 17. August 2016, 13:55, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Du hast also Wertepaare (Z, X). Deine Gleichung heißt also Z/A = B*X oder Z = A*B*X. Also hast Du doch eine Form der linearen Regression und wie Du leicht sehen kannst, kannst Du nur A*B bestimmen, aber niemals A und B getrennt.trublu hat geschrieben:Meine Messgröße heißt jetzt Z. Aus diesem Z berechne ich das Y als Y = Z/A. Wenn ich jetzt Y gegen X plotte hätte ich gerne eine Gerade Y = B*X. Und das überfordert mich.