Forum: PC-Programmierung Python Punkte zwischen Messwerten interpolieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Karl (Gast)


Bewertung
-1 lesenswert
nicht 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?

von Walter T. (nicolas)


Bewertung
-1 lesenswert
nicht lesenswert
Bei Matlab heißt dieser Befehl "meshgrid". Bei Numpy vermutlich auch.

von Karl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nein, das ist nicht was ich meine. meshgrid macht so weit ich weiß, aus 
vorgegebenen Werten ein Netz/Gitter. Aber keine "Interpolationen".

von Dv (Gast)


Bewertung
0 lesenswert
nicht 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)

von T. F. (sar)


Bewertung
0 lesenswert
nicht lesenswert

von Walter T. (nicolas)


Bewertung
0 lesenswert
nicht lesenswert
Karl schrieb:
> meshgrid macht so weit ich weiß, aus
> vorgegebenen Werten ein Netz/Gitter.

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

: Bearbeitet durch User
von Karl (Gast)


Bewertung
0 lesenswert
nicht 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

von Dv (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Karl schrieb:
> Außer einen B-Spline gibt es die nicht, oder wurde noch nicht gefunden.
> Wenn ich sie Finde, werde ich sicher einen preis bekommen.

Na wenn die Messpunkte keinen erkennbaren Zusammenhang haben, macht 
Interpolation auch keinen Sinn

von Karl (Gast)


Bewertung
0 lesenswert
nicht 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.

von A. S. (rava)


Bewertung
0 lesenswert
nicht 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.

von Sven B. (scummos)


Bewertung
0 lesenswert
nicht 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.

von Wolfgang (Gast)


Bewertung
0 lesenswert
nicht 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.

von Michel M. (elec-deniel)


Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.