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.
Also in deinem Fall n-1 Parameter festhalten und den einen interpolieren, dann den nächsten usw.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.