Regression / numerical recipes

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hase
User
Beiträge: 101
Registriert: Donnerstag 1. Oktober 2009, 15:17
Wohnort: Bremer Speckgürtel

Hallo, ich muss aus x,y-Datein einer Messeinrichtung per Regression eine Funktion ermitteln. Es ist eine sinusförmige Schwingung mit linearem Element.

Die Funktion hat die Form f(x) = a1 + a2 cos( 2Pi f t +a3) + a4 t

Gibt es da irgendein prädestiniertes Modul? Eine lineare Regression traue ich mir zu, aber bei dieser Funktion sind meine Grenzen erreicht.

Grüße

I.H.
Hase
User
Beiträge: 101
Registriert: Donnerstag 1. Oktober 2009, 15:17
Wohnort: Bremer Speckgürtel

Zur Ergänzung:
die Frequenz f ist bekannt, und die Zeit t sollte auch bekannt sein.
Hase
User
Beiträge: 101
Registriert: Donnerstag 1. Oktober 2009, 15:17
Wohnort: Bremer Speckgürtel

Sorry, die Funktion muss ja wohl f(t) heißen.
Hase
User
Beiträge: 101
Registriert: Donnerstag 1. Oktober 2009, 15:17
Wohnort: Bremer Speckgürtel

So, habe es rausgefunden, hier noch mal, falls es noch jemanden interessiert.

Das geht tatsächlich mit:

scipy.optimize.curve_fit(f, x, a,b,c)

Das ist einerseits genial, da f eine ziemlich komplizierte Funktion sein kann. Andererseits setzt die Doku dazu einiges an tieferem Verständnis voraus, ich behaupte mal, das ist deutlich jenseits eines Hobbyprogrammierers. Auch finde ich es nicht gerade "batteries included", z.B. muss man sich R² tatsächlich "zu Fuß" ausrechnen. Dennoch, Problem ist gelöst.

I.H.
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Zum einen ist scipy kein "Batteries included", denn das bezieht sich auf die Standardbibliothek. Und das Vestaendnis von "batteries included" ist auch nicht, dass alles einfach und ohne Kentnisse des zu loesenden Problems geht. Sondern, dass fuer viele Probleme die notwendigen Mittel zur Verfuegung stehen - wenn man das Problem verstanden hat. Du wirst auch nicht zum begnadeten Musiker, nur weil eine Roland TB303 ein gut gefuelltes Batteriefach hat.
Hase
User
Beiträge: 101
Registriert: Donnerstag 1. Oktober 2009, 15:17
Wohnort: Bremer Speckgürtel

Nun, das ist offenbar der Unterschied zwischen Informatiker und Ingenieur. Als Ingenieur muss ich nicht wissen, wie genau die Mehrschichtentheorie auf numerischer Ebene funktioniert, solange ich sie richtig anwenden und die Ergebnissen interpretieren kann.
Also, ich finde scipy an dieser Stelle echt Anspruchsvoll. Und ich muss mich hier im Hause gegen meine Excel-Kollegen behaupten, die nur sagen: wieso, ich tip das hier ein, und dann zeigt mir Excel das Ergebnis.
__deets__
User
Beiträge: 14541
Registriert: Mittwoch 14. Oktober 2015, 14:29

Mehr muss ich auch nicht wissen, aber ich muss DAS wissen. Die Erwartungshaltung, alles und jedes muesse genau so sein, wie man es persoenlich erwartet, und sonst ist's Mist - die habe ich noch nie verstanden.

Und wenn deine Kollegen einen einfacheren Weg haben, dann waere der pragmatische Ingenieur gut beraten, den auch zu beschreiten. Warum musst du dich also behaupten? Benutz Excel und werde gluecklich. Right tool for the job und so.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@Hase: ganz im Gegenteil. Die Doku setzt gar nichts an Verständnis voraus, wenn man das Beispiel anschaut, kann man diese ohne irgend etwas verstanden zu haben, modifizieren. Dass eine Funktion wie scipy.optimize.curve_fit sehr viele Parameter hat, weil curve-Fitting eben kein einfaches Problem ist, und dass ich alle Parameter in einer Dokumentation auch beschrieben haben will, ist eigentlich eine Selbstverständlichkeit.
Antworten