Forum: PC-Programmierung Diadem Interpolation


von Michi (Gast)


Lesenswert?

Hallo.

Meine Aufgabe, gegeben:
- Tool: Diadem
- 3 Kanäle x,y,z

Aufgabe:
Nun sollen die 3 Kanäle interpoliert werden.
D.H. ich habe ein Wertepaar x & y und nun soll ein Wert z herauskommen.


Wie muss ich das machen? Ich habe zwar in der Hilfe und im Internet 
geschaut, jedoch habe ich noch keine passende Lösung gefunden.

Ich bin sehr dankbar für eure Vorschläge.

von Wolfgang (Gast)


Lesenswert?

Michi schrieb:
> Aufgabe:
> Nun sollen die 3 Kanäle interpoliert werden.
> D.H. ich habe ein Wertepaar x & y und nun soll ein Wert z herauskommen.

Wenn du bisher keine einzige Antwort bekommen hast, liegt das wohl da 
dran, dass keinem klar ist, wie dein Wert z funktional mit x und y 
zusammen hängt.

von Michi (Gast)


Lesenswert?

OK, ich werde gerne mein Problem besser beschrieben, bzw. die 
Zusammenhänge näher erklären.

Ich lese die Daten aus einer Excel-Tabelle heraus und habe dann folgende 
Kanäle:
x = Stromstärke
y = Temperatur
z = Messwert1

Also x,y sind geben und z ist der Messwert.

Ich habe dann häufige die gleiche Stromstärke bei unterschiedlichen 
Temperaturen. Messwert1 ist immer unterschiedlich.


Besser beschrieben? Wenn nein, bitte Feedback geben.
Ich freue mich auf eure Infos. Danke.


@ Wolfgang: Danke!

von Jan K. (jan_k)


Lesenswert?

Du hast also eine Funktionsvorschrift F(x,y) = z, also eine beliebig 
geformte Oberfläche im R^3. Du suchst also möglichst einen Fit (als 
geschlossene Funktion mit durch Optimierung bestimmten Parametern - 
falls die Oberfläche [surface] "gutmütig" ist) oder eine 
Interpolationsmethode.

Diadem kenne ich nicht, da musst du dich selbst mal durch die Hilfe 
klicken, aber hier 
http://de.mathworks.com/help/matlab/math/interpolating-scattered-data.html 
steht ganz grundsätzlich, wie sowas funktioniert (nicht nur auf matlab 
bezogen). Und anscheinend kann Diadem das auch: 
http://zone.ni.com/reference/en-XX/help/370858K-01/genmaths/genmaths/calc_3dsurfaces/

Schöne Grüße,
Jan

von Michi (Gast)


Lesenswert?

Danke Jan K.
Ja du hast Recht, die Funktion lautet: F(x,y) = z
Jedoch in Diadem hat man keine Matrizen (anderes als in Matlab). In 
Diadem hat man nur Kanäle. Oder liege ich da falsch?
Die ganze Sache in Matlab zu machen, wäre kein Problem. Aber ich muss es 
eben in Diadem machen, leider!


Konkretes Beispiel wäre wirklich klasse.

von Jan K. (jan_k)


Lesenswert?

Da brauchst du keine Matrizen für. x,y,z sind doch alles Vektoren. Zu 
jedem Tupel (x,y) wird eine Zahl z zugeordnet, nix Matrizen.

Wie gesagt, ich kenne Diadem nicht. Trotzdem bin ich in der Lage, google 
anzuschmeißen, "Diadem 3d interpolation" einzugeben und auf folgender 
Seite zu landen: 
http://zone.ni.com/reference/en-XX/help/370858K-01/genmaths/genmaths/calc_3dsurfaces/

> If the 3D data are in matrix, DIAdem calculates on the basis of the surrounding
> grid points a bicubic polynomial in each internal grid point. and calculates a
> biquadratic polynomial in each boundary point. If the input data is in triplet
> structure, DIAdem offers different methods for interpolating the z-values


Daraus lese ich drei Sachen:
1) Die Funktion die du suchst heißt "Interpolate"
2) offensichtlich gibt es doch Matrizen
3) es gibt zwei Möglichkeiten zur Interpolation: gridded (Daten liegen 
auf einem Grid, also einem x,y Raster) und scattered (Daten liegen in 
Tupeln vor ["triplet structure"]). Du möchtest zweiteres. Dann muss du 
noch eine Methode zum Interpolieren wählen, vielleicht fängst du mit 
"InverseDistance" an.

Deine Kanäle wird man sicherlich zusammenführen können, sodass 3-Tupel 
herauskommen oder es gibt 3 Eingänge für deine Interpolate Funktion oder 
oder oder. Wie gesagt, kenne Diadem nicht, wie du Funktionen auf Kanäle 
anwendest wird sicherlich in einem Grundlagentutorial stehen ;)

Schöne Grüße,
Jan

: Bearbeitet durch User
von Michi (Gast)


Lesenswert?

Danke Jan. Ok, alternativ kann man auch Tupel nehmen, klar. Dies mit 
Matrizen habe ich nun auch gelesen. Jedoch stelle ich mir die Frage, wie 
das in Diadem gehen soll.

Mein Problem ist, wie ich nun aus drei Kanäle einen Tupel machen werde?

von Jan K. (jan_k)


Lesenswert?

3 Kanäle sind ja schon irgendwie ein Tupel.. Lies die Doku/mach ein 
Tutorial, da gehts nur noch um die Frage der Bedienung, die kann ich dir 
nicht klären.

von Vlad T. (vlad_tepesch)


Lesenswert?

die Frage bei sowas ist immer:
Was misst man?
Es scheint ja einen physikalischen Zusammenhang zu geben, zwischen x, y 
und z.

Dieser Zusammenhang muss sich also auch modellieren lassen.

Wenn man halbwegs eine Idee von diesem Modell hat, kann man versuchen, 
die Modellparameter mit den Messwerten zu anzupassen, so dass Modell für 
die bekannten Werte einen möglichst geringen Fehler hat.

Klar kann man auch versuchen wild drauf los ein beliebiges Modell zu 
fitten. Das Passt dann vielleicht auch ganz gut auf die Messwerte, 
verhält sich aber vielleicht zwischen diesen (oder auch außerhalb - aber 
du wolltest ja eine Inter- und keine Extrapolation) komplett anders, als 
man vernünftiger weise von dem physischen Zusammenhang erwarten würde.


beispiel:
Dein Zusammenhang ist quadratisch, aber deine Messwerte verrauscht.
veruchst du jetzt da ein Polynom 15.er Ordnung reinzufitten, wird das 
Ergebnis von der Wahrheit weiter entfernt sein, als wenn du das Wissen 
des quadratischen Zusammenhangs benutzt und ein quadratisches Polynom 
fittest.

von Daniel A. (daniel-a)


Lesenswert?

Wenn ich das richtig verstehe hat man 2 Eingänge (x,y) und 1 Ausgang 
(z), aber wie x,y und z zusammenhänngen ist unbekannt. Ausserdem gibt es 
bekannte werte. Meiner meinung nach wäre hier der Einsatz eines KNN(1) 
geeignet. Ich kenne Diadem nicht, aber ich bezweifle, dass es das kann.

1) https://de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz

von Jan K. (jan_k)


Lesenswert?

Leute jetzt übertreibt mal nicht.
Ein Neuronales Netz ist auch nur (unter anderem) eine Art universaler 
Funktionsapproximator. Probiere doch erstmal stink normale Interpolation 
wie zuvor in den Links beschrieben. Der Algorithmus guckt bei gegebenen 
unbekannten Tupel (xq,yq), welche Tupel (xi,yi) in der Nähe liegen und 
interpoliert dann geeignet (Linear, mit Splines, alles mögliche) 
dazwischen. Keine Optimierung, kein Training von schwer zu 
parametrierenden neuronalen Netzen nötig.

Wenn die Zusammenhänge der gemessenen Größen "gutmütig" sind, kann in 
der Tat ein analytischer funktionaler Zusammenhang gefunden und per 
Optimierung daran Parameter angepasst werden. Hat dann insbesondere den 
Vorteil, dass man besser extrapolieren kann und hat vielleicht bei wenig 
bekannten Daten Vorteile. Aber auch das steht doch hier gar nicht zur 
Debatte!

Probier doch erstmal die Interpolation und lies ein Tutorial...

Schöne Grüße,
Jan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.