Moien
Das hört sich interessant an, jedenfalls sind 50000 Fits kein
Pappenstiel. Was hast du denn als Programm/Tool zur Verfügung?
Alles was in das Budget von 2500 Euro past … und Matlab.
Ich bin noch am planen, das eigentliche Umsetzten kommt später. Aber ich möchte die Laufzeiten von ein paar der Operationen vorher abschätzen können und mal auf den vorhandenen Rechnern testen. Denn die 2500 müssen auch für Zusatzhardware reichen.
Es ist ein Projekt an einer FH wo ich (als Informatiker ohne Ahnung von Physik) für einem Physiker (ohne Ahnung von Informatik) ein paar Ideen umsetzen soll. Mit normaler Physik komm ich eigentlich gut klar, aber das hier geht zu weit ins Mikroskopische.
Wenn du’s selbst programmiert schau auf jeden Fall mal, was
die „Numerical Recipies“ so bieten (Kap. 15):
Ja, bin dabei. Allerdings scheint keiner der Algos wirklich 100% zu passen. Die Ideen sind richtig gut, wie immer bei den NR, aber neu implementiert werden muss das Zeug wohl doch.
Dein Ansatz scheint prinzipiell ok. Ein paar Gedanken noch
dazu:
- Gute Startwerte sind speziell bei Gauß wichtig, exp(-x^2)
geht sonst schnell in den Underflow und dann tut sich beim
Fitten nichts mehr …
Ich kann einen relativ engen Suchraum angeben. Wenn die Kurve da raus läuft macht es physikalisch keinen Sinn mehr (angeblich).
- Wenn du eine reinen Gauß hast (ohne Untergrund) könntest Du
Mittelwert und Standardabw., Summe relativ schnell berechnen
unt hättest gute Startwerte.
Schön wärs…
- Gauß mit flachem Untergrund: Untergrund näherungsweise
bestimmen (wie du geschrieben hast), abziehen, den Rest (so er
positiv ist) logarithmieren und mit lin. Fit Parabel
bestimmen. Aus der Parabel erhältst du wieder gute Startwerte
für den Gauß-Fit.
Sehr gute Idee, das teste ich mal.
- Für y=A*atan(B*(x-C)) den Nulldurchgang suchen (-> C),
dort lokal die Steigung bestimmen (-> A*B). A hast du ja
schon aus den Limits.
Nulldurchgang suchen wird etwas komplexer.
Das sind Messwerte einer 2D Abtastung, also eine 3D Punktwolke (Position in X und Y + Intensität in Z). Da den Nulldurchgang finden wird haarig.
Die atan-Fläche soll die Richtung der Kanten genau bestimmen. Normale Kantensuche mit Roberts & Co liefert liefert bei so kleinen Punktwolken ja immer nur 0°, 45° oder 90°.
- Simplex ist robust, aber evtl. nicht das schnellste
Verfahren. Die meisten fertigen Fit-Programme nehmen wohl
heute den Levenberg-Marquardt-Algorithmus oder eine Variante
davon.
Ja, könnte ich machen. Der zusätzliche Implementierungsaufwand scheint mir minimal.
*der neugierig ist, was du da eigentlich machst bzw. wozu man
50000 Fits braucht …*
Wenn ich die Physik hinter der Messung verstanden hab kann ich’s dir erzählen. Bis jetzt ich mir ziemlich unklar was die Werte eigentlich aussagen… nur der Physiker weis genau was für Fits von welchen Funktionen er braucht.
cu