10.2 Interpolation

se:interpolation

Im Unterschied zur Kurvenanpassung (Fitten einer Modellfunktion) verwendet man bei Interpolieren ''lokal'' an die Datenpunkte angepasste Funktionen, wobei sichergestellt wird, dass diese Funktionen exakt die Datenpunkte reproduzieren. Ziel des Verfahrens ist es, zwischen den diskreten Datenpunkten (z.B. Messwerten) einen vernünftigen Verlauf zu finden (z.B. zum Plotten). In den meisten Fällen beschränkt man sich dabei auf Polynome bis maximal dritten Grades, die aber nur ''lokal'' um den jeweiligen Datenpunkt verwendet werden.

MATLAB bietet für eindimensionale Probleme die Routine interp1 an, die folgenden Aufruf benötigt

 y = interp1(xd,yd,x,method)
wobei in xd und yd wieder die Datenpunkte liegen, x ein Vektor mit meist dichter liegenden $ x$-Werten ist und method eine Stringvariable mit der gewünschten Methode ist.

Dies wird hier am Beispiel der Sinus-Funktion erläutert:

 xd = linspace(-pi,pi,9);
 yd = sin(xd);

 x  = linspace(-pi,pi,1000);
 y  = sin(x);

 y1 = interp1(xd,yd,x,'nearest');
 y2 = interp1(xd,yd,x,'linear');
 y3 = interp1(xd,yd,x,'cubic');
 y4 = interp1(xd,yd,x,'spline');

Die Ergebnisse für die einzelnen Methoden sehen folgendermaßen aus:

\includegraphics[width=10cm]{appdata/interpolate}

Folgende Methoden stehen zur Verfügung:

nearest
Nächste Nachbar Interpolation
linear
Lineare Interpolation
cubic
Interpolation mit Polynomen dritten Grades
spline
Die Spline-Technik verwendet Polynome dritten Grades, wobei sichergestellt wird, dass sich sowohl die Werte als auch die ersten Ableitungen bei den Datenpunkten ein glattes Verhalten zeigen.

Solche Interpolationen stehen natürlich auch in höheren Dimensionen zur Verfügung. Siehe dazu die Hilfe zu den Funktionen interp2 und interp3.

Winfried Kernbichler 2005-04-26