Hallo,
ich möchte eine Fkt. Wert = F(a,b,c,d,e,f) mit mehreren Parametern
linear interpolieren. Mit einem Parameter ist das ja kein Problem,
findet man ja genügend Infos im Netz. Mit mehreren Parametern habe ich
bis jetzt leider
noch nix brauchbares gefunden. Kann doch eigentlich nicht so wild sein,
oder?
Habt ihr ne gute Adresse?
Gruss
Dirk
Ab drei Parametern kann man sich das im dreidimensionalen Raum nicht
mehr vorstellen.
Ich hab das auch mal versucht, nur zweidimensional, aber als kubisch
angenäherte Gerade - nein umgekehrt eine Näherungs-Potenzfunktion bis
zur dritten Potenz zu finden für zwei Parameter, also eine krumme Fläche
im Dreidimensionalen (mit Matlab gezeichnet).
Vorgegeben war eine Tabelle, ich wollte es als analytische Funktion
haben, um es als Programm oder Tabellenkalkulations-Blatt berechnen zu
können, es ging um eine Filterberechnung.
Nacheinander annähern war die Lösung, erst die vier Koeffizienten jeder
Geradengleichung wenn man einen Parameter festhält, und anschließend
eine Näherungsfunktion für die Kurve die die Koeffizienten bilden.
nennt man wohl "Taylorreihenentwicklung mit mehreren Variablen"..
guckst du Anhang unter Punkt 8.4.2, auf Seite48.. Da gibts ne Formel...
Aber im Prinzip ist es genau das, was Christoph Kessler (db1uq)
sagte...
Noch Fragen?
Damit wir uns verstehen. Interpolieren heisst die Funktion ist in den
Stuetzstellen exakt und interpoliert dazwischen. Eine Taylorreihe, die
abgebrochen wird hingegen ist approximierend. Dh nur in einem Punkt
falls ueberhaupt exakt, sonst nur in der Naehe. Approximationen machen
auch Sinn wenn die Daten nicht exakt sind, sonder ein gewisses Rauschen
enthalten. Besser in moeglichst vielen Punkten eine gute Funktion als in
nur wenigen eine sehr Gute.
Kannst du mal klarstellen, was du interpolieren willst?
Bei einer Koordinate ist die Interpolation zwischen F(x1) und F(x2):
F(t*x1+(1-t)*x2).
In deinem Fall zwischen F(a1,b1,...) und F(a2,b2,...):
F(t*a1+(1-t)*a2,t*b1+(1-t)*b2,...).
Da braucht man nix bullshitten von wegen Differential oder Taylorreihe.
'lineare Algebra' heißt die Disziplin. Für ne lineare Interpolation
bestimmt man die Parameter 'a' und 'b' der linearen Gleichung y=a*x+b
mit den bekannten Stützstellen (x,y). Dann setzt man beliebige x ein und
interpoliert linear. Das funzt für beliebige Dimensionalität von x und
y. Für x und y eindimensional braucht man 2 Stützstellen, das is ne
Gerade. Für x,y 4-dimensional (damit man sich das auf keinen Fall
vorstellen kann) braucht man 5 Stützstellen. Angehängt ein Matlab
script, das das beispielhaft macht. Als Funktionswert der Interpolation
in der letzten Zeile kommt '42' raus. Das kommt zwar bei allen wichtigen
Rechnungen immer raus, in diesem Falle ist das Beispiel aber
entsprechend gewählt.
math rules!
Gute Nacht
Detlef
x1=[1 2 2 3]; y1=-14.575;
x2=[1 2 2 4]; y2=2;
x3=[4 3 2 1]; y3=3;
x4=[1 4 3 2]; y4=4;
x5=[4 2 3 1]; y5=5;
%x*c+b=y;
M=[x1;x2;x3;x4;x5];
M=[M ones(5,1)];
c=inv(M)*[y1;y2;y3;y4;y5];
[1.5 2.5 3.5 4.5 1]*c
Dann hast Du aber keine stetige Funktion mehr, das wird aber in vielen
technischen Anwendungen benötigt. Oft ist eine Approx besser - besonders
weil die Werte, die angenähert werden müssen, sowieso nur ungenaue
Messwerte sind. Du brauchst eine mehrdimensionale Ausgleichsfunktion!
Gast will linear interpolieren. Meine Einlassung zeigte, wie man linear
interpoliert. Punkt.
Von stetiger Funktion, Genauigkeit und mehrdimensionaler Ausgleichsfkt.
war in der Frage nicht die Rede. Natürlich kannst Du auch die
quadratische Fkt. y=a*x*x+b*x+c für mehrdimensionale x,y fitten oder
mehrdimensionale splines machen, oder was auch immer, das ist glatt,
toll, und macht Spaß! Gefragt war das nicht.
Cheers
Detlef
>Gast will linear interpolieren. Meine Einlassung zeigte, wie man linear>interpoliert. Punkt.
Nein. Deine Einlassung zeigt, wie man eine Ebene durch mehrere Punkte
legt. Diese Einlassung hättest du besser ausgelassen, weil sie nichts
mit der Interpolation mehrerer Parameter zu tun hat.
Die kann man alle unabhängig voneinander interpolieren, und das ist
nichts anderes als in Fall eines einzigen Parameters. Was der Gast
sicherlich nach Interpolators Einlassung auch bemerkte, weshalb er sich
nicht weiter hier niedergelassen hat.
>> Diese Einlassung hättest du besser ausgelassen,
finde ich nicht, würde ich nochmal tun.
>>weil sie nichts mit der Interpolation mehrerer Parameter zu tun hat.
Nein!?! Magst Du Dich erklären?
Cheers
Detlef