Servus,
jetzt wird mathematisch.
Ich habe einen Datensatz, Beispiel siehe weiter unten.
WertA bis WertC sind Eingangsvariablen
WertD ist die Ausgangsgröße
Ich suche eine Möglichkeit, ein Kennlinienfeld zu interpolieren.
Deshalb, weil unterschiedliche Anzahl an Messreihen und Messpunkte zur
Verfügung stehen.
Es ist also nichts anderes als eine Punktewolke gegeben, über die eine
Fläche gelegt werden soll.
Wie geh ich das an. Ich habe gestern Abend auf der HP von Numerical
Recipes for C im Kapitel 3.6 Interpolation in Two or More Dimensions
gefunden. Leider kann ich das hier auf der Arbeit nicht aufrufen, wegen
dem Plugin.
Ist ja auch egal.
Welche mathematische Methoden gibt es da. Spline Funktionen mit
Randbedingungen kenn ich nur für y = f(x) aber nicht für d = f(a,b,c).
Ich nutze GNU Scientific Library und es soll ein Datensatz entstehen,
der für das Simulationsprogram Simplorer nutzbar ist.
Probiert hab ich es schon. Zuerst die vier am nahesten liegenden Punkte
ermittelt. Diese sollten eine Fläche aufspannen. Tun sie das aber nicht,
klappt es nicht. Ich hatte auf jeden Fall Unstetigkeiten in der Tabelle.
Für Anregungen bin ich dankbar.
erst eine Spline-Kurvenschar für eine Dimension ermitteln, dann für
deren Parameter je eine Spline-Kurve ermitteln für die zweite Dimension
und in die erste einsetzen, für die dritte Dimension wirds dann noch
länger
Merke: Formeln über einen Meter Länge sind von Natur aus falsch.
linear oder quadratisch interpolieren, das benötigt nur die Lösung eines
(überbestimmten) linearen Gleichungssystems.
Also z.B: D=c1*A+c2*B+c3*C+c4 nach c1,c2,c3,c4 lösen. Oder nen anderes
beliebiges Polynom (quadratisch?) in A,B,C nach den unbekannten
Konstanten lösen. Der hack im link oben scheint schon in zwei
Dimensionen etwas komplexer zu sein.
Cheers
Detlef