Python Punkte zwischen Messwerten interpolieren

Gast #5817414
Lesenswert?

Hallo,

ich habe Messwerte F (Kraft) und u (Weg). Da es Messwerte sind, sind 
diese "zufällig". Zur Auswertung möchte ich jetzt für alle 
Versuchsreihen das F bei u = 0,5 z.B.. Die Messwerte sind aber bei 
u=0,4879 und u=0,5174.
Es gibt in Python (incl. numpy, scipy ...) mit Sicherheit schon eine 
Funktion der ich meine Messwete und den Sollwert gebe, dir mir dann mein 
F bei u = 0,5 ausgibt. Wie heißt das, wonach muss ich googeln?
Gast #5817443
Lesenswert?

Interpolation sind 2 Schritte:

1. Eine Gleichung finden, die die vorhandenen Messwerte möglichst gut 
beschreibt. Möglichst gut ist dabei subjektiv. (Google: Fit line to 
points)

2. Die Gleichung benutzen um den gewünschten interpolierten Punkt zu 
bestimmen (aka Einsetzen)
Gast #5817477
Lesenswert?

Walter T. schrieb:
> Falsch herum gedacht: meshgrid inter- und extrapoliert Dir wild
> verteilte Werte auf ein vorgegebenes Gitter.

https://plot.ly/numpy/meshgrid/
A Meshgrid is an ND-coordinate space generated by a set of arrays. Each 
point on the meshgrid corresponds to a combination of one value from 
each of the arrays.

Dv schrieb:
> 1. Eine Gleichung finden, die die vorhandenen Messwerte möglichst gut
> beschreibt. Möglichst gut ist dabei subjektiv. (Google: Fit line to
> points)

Außer einen B-Spline gibt es die nicht, oder wurde noch nicht gefunden. 
Wenn ich sie Finde, werde ich sicher einen preis bekommen.

T. F. schrieb:
> https://docs.scipy.org/doc/numpy/reference/generated/numpy.interp.html

Der war schon ganz gut. Hab es jetzt so gelöst:
https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html#spline-interpolation-in-1-d-procedural-interpolate-splxxx
Gast #5817595
Lesenswert?

Dv schrieb:
> Na wenn die Messpunkte keinen erkennbaren Zusammenhang haben, macht
> Interpolation auch keinen Sinn

Die Messpunkte haben einen Zusammenhang, aber unterschiedliche Messungen 
lassen sich nicht mit einer Funktion beschreiben. Mal kommt ein 
bi-linearer Verlauf raus, mal eine Hyperbel, mal eine Gerade. Wenn ich 
versuche eine Gerade mit einer Hyperbel zu fitten, kommt nichts 
gescheites bei raus. Ich habe auch nicht die Zeit bei jeder Kurve den 
Fit zu prüfen und ggf. Anzupassen. Da mich der Verlauf (jetzt) nicht 
interessiert, das auch egal.
#5817627
Lesenswert?

Eine kurve ist immer ein mathematisches Modell. Welches Modell am besten 
passt, musst du schon
* entweder wissen
* oder du rechnest alle Varianten, die für dich in Frage kommen und 
entscheidest dann im Quelltext, was dir am besten gefällt, z.b. anhand 
des Fehlers. Da das immer sehr anwendungsabhängig ist, macht das auch 
keine fertige Software für dich.

Wenn du weißt, die die Kraft über den Weg verläuft (meistens als Gerade, 
wenn eine Feder im Spiel ist), dann ist es auch einfacher, das richtige 
Modell zu erraten.
#5817647
Lesenswert?

Was möchtest du denn am Ende herausfinden? Vermutlich gibt es zur 
Bestimmung dieses Ergebnisses einen Weg, der nicht erfordert, dass die 
Messwerte gleiche x-Werte haben.

Du kannst np.interp benutzen, aber das ist Pfusch, weil es linear 
interpoliert und das i.d.R. nicht korrekt ist. Ausnahme wäre, wenn die 
Werte so nah beieinander liegen, dass ein linear hinreichend genau ist.
Gast #5817669
Lesenswert?

Karl schrieb:
> Die Messpunkte haben einen Zusammenhang, aber unterschiedliche Messungen
> lassen sich nicht mit einer Funktion beschreiben. Mal kommt ein
> bi-linearer Verlauf raus, mal eine Hyperbel, mal eine Gerade. Wenn ich
> versuche eine Gerade mit einer Hyperbel zu fitten, kommt nichts
> gescheites bei raus. Ich habe auch nicht die Zeit bei jeder Kurve den
> Fit zu prüfen und ggf. Anzupassen.

Du solltest aber schon wissen, mit welchem Modell sich deine Daten 
beschreiben lassen. Wenn du mit dem falschen Modell fittest, kann es dir 
gut passieren, dass nichts gescheites dabei heraus kommmt. Du musst 
zumindest drauf achten, dass die Modellfunktion in der Nähe von deiner u 
= 0,5 keinen Mist bauen kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren