Wichtig: Damit alle benötigten Pakete richtig eingebunden werden, führen Sie die nächste Zelle einmal aus, sobald Sie das Notebook neu öffnen.
# some setup
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
Sei $I = [a,b]$ ein Interval und $f \in C(I)$ eine stetige Funktion. Sei $x = \{x_0, \ldots, x_n\}$ eine Liste von Stützstellen und $y = \{y_0, \ldots, y_n\}$ eine Liste von Funktionsauswertungen, d.h. $y_i = f(x_i)$ für $i = 0, \ldots, n$.
a) Implementieren Sie einen Algorithmus, der basierend auf den Listen $x$ und $y$ eine Liste $z = \{ z_0, \ldots, z_n \}$ von dividierten Differenzen gemäss des Dreicksschemas berechnet, wobei
\begin{equation} z_i = f[x_0, \ldots, x_i] \, , \quad i = 0, \ldots, n\, . \end{equation}
b) Implementieren Sie eine Funktion, die basierend auf einer Liste $x$ von Stützstellen und einer Liste $z$ von dividierten Differenzen die Auswertung des interpolierenden Polynoms $p \in \Pi_n$ an einer Stelle $t \in [a,b]$ mit Hilfe des Horner-Schemas berechnet.
c) Testen Sie Ihren Code mit der Funktion $f(x) = |x|$ auf $I = [-1,1]$. Benutzen Sie äquidistante Stützstellen mit n = 5, 10, 15, 20. Plotten Sie dazu die interpolierenden Polynome sowie die Funktion $f$ in eine Achse. Wiederholen Sie die Aufgabe mit dieselben Werten für $n$, aber unter Verwendung von Chebychevknoten als Stützstellen.
#### Fuegen Sie hier Ihre Loesung ein!