Forum: PC-Programmierung Interpolation fon Kennlinienfeld d = f(a,b,c)


von Diplomand (Gast)


Lesenswert?

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.
1
WertA    WertB    WertC    WertD 
2
25    500    25,9    0,00279 
3
25    500    202    0,0164 
4
25    500    234    0,0185 
5
25    500    290    0,0245 
6
25    500    400    0,0405 
7
25    600    27    0,00386 
8
25    600    105    0,0118 
9
25    600    235    0,0255 
10
25    600    290    0,0336 
11
25    600    401    0,0543 
12
25    700    25,1    0,00459 
13
25    700    48,9    0,00782 
14
25    700    289    0,0451 
15
25    700    400    0,072 
16
25    840    25,4    0,00619 
17
25    840    202    0,0405 
18
25    840    285    0,0596 
19
25    840    393    0,094 
20
125    500    27    0,0048 
21
125    500    52,4    0,00728 
22
125    500    396    0,0588 
23
125    600    27,5    0,00654 
24
125    600    133    0,0209 
25
125    600    165    0,0257 
26
125    600    200    0,0315 
27
125    700    49,4    0,0124 
28
125    700    73,5    0,0166 
29
125    700    99,5    0,0212 
30
125    700    129    0,0265 
31
125    700    163    0,033 
32
125    700    410    0,104 
33
125    840    25,7    0,0106 
34
125    840    49,4    0,0166 
35
125    840    162    0,0444 
36
125    840    201    0,0553

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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.

von Diplomand (Gast)


Lesenswert?

Hä?

von Arc N. (arc)


Lesenswert?


von Detlef _. (detlef_a)


Lesenswert?

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

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.