Lineare Interpolation

Voraussetzungen

  • mathematische Grundlagen der linearen Interpolation

Lerninhalte

  • Realisierung einer Routine zur linearen Interpolation

Lineare Interpolation#

../_images/linear_interpolation.png
Abbildung 1: Linear interpolierte Messpunkte.

Gegeben seien die Messpunkte \((t_i; y_i)\), \(i = 1; ..; n\) eines Versuches. Dabei bezeichnet \(t_i\) einen Messzeitpunkt aus dem Intervall \([a; b]\) und \(y_i\) den dazugehörigen Messwert. Programmieren Sie eine Funktion, die für ein beliebiges \(t \in [a; b]\) einen Wert liefert, der auf der Verbindungslinie der benachbarten Messpunkte \((t_j ; y_j)\) und \((t_{j+1}; y_{j+1})\) liegt (lineare Interpolation).

Arbeiten Sie mit folgenden Angaben:
\(n = 11, [a; b] = [0; 1]\)

\(t_i\)

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

\(y_i\)

0.00

0.31

0.59

0.81

0.95

1.00

0.95

0.81

0.59

0.31

0.00

Erstellen Sie dazu zunächst eine (gut dokumentierte) Funktion für die Interpolation:

%%file linint.m
function y=linint(t,tv,yv)
% Die Funktion linint interpoliert die in den Vektoren abgelegten Daten tv,yv linear.
% Dazu sollten die Daten in tv sortiert sein und ein t zwischen dem ersten
% und letzten Eintrag von tv eingegeben werden
%
% Eingabeparameter: tv, yv = Zeitpunkte und Messwerte,
% t = gewünschter Auswertezeitpunkt
% Ausgabeparameter: y = linear interpolierter Messwert zum Zeitpunkt t
%
%

… und dann ein Hauptprogramm, in welchem Sie die Funktion aufrufen und die Daten bereitstellen:

% zunächst werden zwei Vektoren tv und yv definiert,
% die alle Daten von t und y enthalten
%
tv=[ 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];
yv=[ 0.00, 0.31, 0.59, 0.81, 0.95, 1.00, 0.95, 0.81, 0.59, 0.31, 0.00];
%
% Dann können sie Ihre Funktion linint testen, z.B. mit t=0.15
%
t=0.15;
y=linint(t,tv,yv)

Schreiben Sie das Programm nun so um, dass Sie die oben dargestellte Visualisierung erhalten.