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.
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.
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!
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
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.
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
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?
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.
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.
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
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