Skip to content
Snippets Groups Projects
Commit 41032fd4 authored by Sander, Oliver's avatar Sander, Oliver
Browse files

Merge branch 'kapitel-interpolation' into 'master'

Kapitel Interpolation

See merge request !24
parents 4950b3e0 42620423
No related branches found
No related tags found
1 merge request!24Kapitel Interpolation
Pipeline #2742 passed
\chapter{Interpolation}
% Datum: 12.10.2015
\underline{Beispiel}: Gegeben sind Temperaturen $f_0, f_1, f_2, \hdots$ gemessen zu bestimmten Zeitpunkten $x_0,x_1,x_2\hdots$ \\
\underline{Frage}: Wie ist die Temperatur zu einem Zeitpunkt $\hat x$ mit $\hat x\neq x_i$?
\begin{center}
\begin{tikzpicture}
\draw[->] (-1,0) -- (7,0);
\draw[->] (0,-1) -- (0,4);
\foreach \i in {0,1,2,3,4,5}
{
\draw (\i + 1,0) node[below] {$x_{\i}$};
\draw (\i + 1, 0.05) -- (\i+1,-0.05);
}
\draw plot[smooth] coordinates { (1,2) (2,3) ( 3,3) (4,2) (5,2) (6,1) };
\foreach \x/\y in { 1/2, 2/3, 3/3, 4/2, 5/2, 6/1}
{
\draw (\x-0.1,\y+0.1) -- (\x+0.1,\y-0.1);
\draw (\x-0.1,\y-0.1) -- (\x+0.1,\y+0.1);
}
\end{tikzpicture}
\end{center}
\underline{Idee:} \begin{itemize}
\item Finde eine \glqq sinnvolle\grqq~Funktion $f: x\mapsto f(x)$ mit $f(x_i)=f_i\quad \forall i$
\item Die gesuchte Temperatur ist $f(\hat x)$\\
$\rightarrow$ \glqq intelligent geraten\grqq
\end{itemize}
\underline{Interpolationsproblem:} Gegeben:\begin{itemize}
\item $n+1$ Stützstellen $x_0,\hdots,x_n\in\R$, paarweise verschieden
\item $n+1$ Stützwerte $f_0,\hdots,f_n\in\R$
\end{itemize}
Finde \glqq sinnvolle\grqq~Funktion $f:\R\to\R$ mit $f(x_i)=f_i\ \forall i=0,\hdots,n$.\\
Was heißt \glqq sinnvoll\grqq ?
\begin{itemize}
\item Eindeutig bestimmt in einer fixen Funktionsklasse
\item Möglichst billig auszurechnen
\item Kleiner Fehler
\item \glqq sinnvoll\grqq~ist kein mathematischer Begriff -- es kann Wissen aus der Anwendung dazukommen
\end{itemize}
\section{Polynominterpolation}
\begin{itemize}
\item Versuche, $f$ als Polynom zu konstruieren
\item Guter Kompromiss zwischen Flexibilität und einfacher Handhabung
\end{itemize}
Polynom $n$-ten Grades:
\begin{equation*}
p(x) \coloneqq a_n x^n + a_{n-1}x^{n-1} + \hdots + a_1 x + a_0\quad \forall x\in\R,\ a_n\neq 0
\end{equation*}
Sei $\Pi_n$ die Menge aller Polynome vom Grad höchstens $n$.
\begin{itemize}
\item Vielversprechender Ansatz
\item $n+1$ Bedingungen $f(x_i)=f_i,\quad i=0,\hdots,n$
\item $n+1$ freie Parameter $a_0,\hdots,a_n$
\end{itemize}
Kann man die Parameter so wählen, dass die Interpolationsbedingung erfüllt ist?\\
Konstruktion: Definiere $L_j : \R\to\R$ durch
\begin{equation*}
L_j(x)\coloneqq \prod_{\stackrel{i=0}{i\neq j}}^n \frac{x-x_i}{x_j-x_i} = \frac{(x-x_0)(x-x_1) \cdots (x-x_{j-1})(x-x_{j+1}) \cdots (x-x_n)}{(x_j-x_0)(x_j-x_1) \cdots (x_j-x_{j-1})(x_j-x_{j+1}) \cdots (x_j-x_n)}
\end{equation*}
$\rightarrow$ Polynom vom Grad $n$ (der Nenner ist eine feste Zahl $\neq 0$, die nur von den Stützstellen abhängt)
Werte an den Stützstellen:
\begin{equation*}
L_j(x_k) = \begin{cases}
0 & \text{falls } j\neq k \\
1 & \text{falls } j=k
\end{cases}
\end{equation*}
(\qq{Lagrange-Eigenschaft})\\
\underline{Joseph-Louis Langrange}
\begin{itemize}
\item geb.~1736 in Turin als Guiseppe Lodovico Lagrangia
\item gest.~1813 in Paris
\item Mit 19 Lehrstuhl für Mathematik an der Königlichen Artillerieschule in Turin
\item Ab 1788: Nachfolger von Leonard Euler (als Direktor) an der Preusischen Akademie der Wissenschaften in Berlin
\item 1786 (Tod von Friedrich II) $\rightarrow$ Paris
\item Napoleon machte ihn zum Grafen
\item In ??? begraben
\item Auf dem Eiffelturm verewigt
\end{itemize}
Variationsrechnung: Lagrange-Multiplikatoren\\
Analysis: Lagrange-Restglied der Taylor-Formel
\section{Lagrange-Interpolation}
Definiere $p:\R\to\R$ durch
\begin{equation*}
p(x) \coloneqq \sum_{j=0}^n f_j L_j(x)
\end{equation*}
\begin{itemize}
\item Polynom $n$-ten Grades
\item erfüllt die Interpolytionsbedingung:
\begin{equation*}
p(x_i) = \sum_{j=0}^n f_jL_j(x_i) = \sum_{j=0}^n f_j \delta_{ij} = f_i
\end{equation*}
(Lagrange-Form des Interpolytionspolynoms)
\end{itemize}
Wir haben bewiesen:
\begin{satz}
Zu $n+1$ beliebigen Datenpaaren $(x_0,f_0),\hdots,(x_n,f_n)$ mit paarweise verschiedenen Stützstellen existiert ein Polynom $p\in\Pi_n$, das die Interpolationsbedingung erfüllt.
\end{satz}
\begin{satz}
Dieses Polynom ist Eindeutig.
\end{satz}
\begin{proof}
Seien $p,\tilde p\in\Pi_n$ beides Interpolytionspolynome.
\begin{itemize}
\item Dann ist $p-\tilde p \in \Pi_n$
\item Für die Stützstellen $x_k,\ k=0,\hdots,n$ gilt
\begin{equation*}
(p-\tilde p)(x_k) = p(x_k) - \tilde p(x_k) = f_k - f_k = 0
\end{equation*}
\item $p - \tilde p$ hat also mindestens $n+1$ Nullstellen
\end{itemize}
$\Rightarrow$ Dann ist $p-\tilde p$ die Nullfunktion
\end{proof}
\underline{Aufwand der Lagrange-Interpolation}
\begin{itemize}
\item Auswerten eines einzelnen $L_j$ an einer Stelle $x$: $\mathcal{O}(n)$ Operationen
\item Berechnen der Summe $p(x) = \sum_{j=0}^n f_jL_j(x) $: $\mathcal{O}(n)$ Operationen
\item Zusammen also $\mathcal{O}(n^2)$
\item Auswertung an einem anderen Punkt: wieder $\mathcal{O}(n^2)$ Operationen
\end{itemize}
\section{Newton-Form des Interpolationspolynoms}
\begin{definition}
Die Newton-Form des Interpolationspolynoms $p$ ist
\begin{equation*}
p(x) = c_0 + c_1(x-x_0) + c_2(x-x_0)(x-x_1) + \hdots + c_n(x-x_0)(x-x_1)\cdots (x-x_n)
\end{equation*}
mit passenden Koeffizienten $c_0,\hdots,c_n\in\R$.
\end{definition}
Wie berechnet man die Koeffizienten?\\
Rekursiv:\\
Ind.-Anfang: $f_0 = p(x_0) = c_0$\\
Ind.-Schritt: Seien $c_0,\hdots,c_{j-1}$ bereits bekannt
\begin{align*}
f_j &= p(x_j) \\
&= c_0 + \sum_{k=1}^{j-1} c_k(x_j-x_0)\cdots (x_j-x_{k-1}) + c_j \underbrace{(x_j-x_0)\cdots (x_j-x_{j-1})}_{ \neq 0} + \underbrace{0+\hdots 0}_{n-j \text{ viele}} \\
\end{align*}
Also:
\begin{equation*}
c_j = \frac{f_j - c_0 - \sum_{k=1}^{j-1} c_k(x_j-x_0)\cdots (x_j-x_{k-1})}{(x_j-x_0)\cdots (x_j-x_{j-1})}
\end{equation*}
Diese Prozedur entspricht gerade dem Lösen eines linearen Gleichungssystems mit unterer Dreicksmatrix:
\begin{equation*}
\begin{pmatrix}
1 & & & & \\
1 & (x_1-x_0) & & & \\
1 & (x_2-x_0) & (x_2-x_0)(x_2-x_1) & & \\
\vdots & \vdots & \vdots & \ddots & \\
1 & (x_n-x_0) & \cdots & \cdots & \prod_{i=0}^{n-1}(x_n-x_i)
\end{pmatrix} \begin{pmatrix}
c_0 \\ c_1 \\ \vdots \\ \vdots \\ c_n
\end{pmatrix} =
\begin{pmatrix}
f_0 \\ f_1 \\ \vdots \\ \vdots \\ f_n
\end{pmatrix}
\end{equation*}
\begin{itemize}
\item Die Matrix kann in $\mathcal{O}(n^2)$ $(\frac{1}{2} n^2)$ Operatonen aufgestellt werden
\item Ist die Matrix bekannt, so kann das System in $\mathcal{O}(n^2)$ Schritten gelöst werden.
\item Man braucht also $\mathcal{O}(n^2)$ Operationen, um die Koeffizienten $c_0,\hdots,c_n$ zu bestimmen.
\end{itemize}
Angenommen, diese seien jetzt bekannt. Auswerten an festem $x$:
\begin{equation*}
p(x) = c_0 + c_1(x-x_0) + c_2(x-x_0)(x-x_1) + \hdots + c_n(x-x_0)(x-x_1)\cdots (x-x_n)
\end{equation*}
Naiv: $2n - 1$ Multiplikationen \\
Schlauer: Ausklammern!
\begin{equation*}
p(x) = c_0 + (x-x_0) \left( c_1 + (x-x_1)\left( c_2 (x-x_2) \left( \cdots \right)\right)\right)
\end{equation*}
Algorithmus zum Ausrechnen von $p_0=p(x)$:
\begin{align*}
p_n &= c_n \\
p_{n-1} &= c_{n-1} + (x-x_{n-1})\, p_n \\
p_{n-2} &= c_{n-2} + (x-x_{n-2})\, p_{n-1} \\
&\vdots \\
p_0 &= c_0 + (x-x_0)\, p_1
\end{align*}
$\Rightarrow$ $n-1$ Multiplikationen $\rightarrow$ Horner-Schema\\
Nach William George Horner, 1786 (Bristol) - 1837 (Buth???)
\begin{itemize}
\item Direktor einer Schule in Buth???
\end{itemize}
% Datum: 14.10.2015
\section{Interpolationsfehler}
Welchen \qq{Fehler} macht man bei der Interpolation?
\begin{itemize}
\item Unklar: was heißt \qq{Fehler}?
\item Idee: Die gegebenen Werte sind Funktionswerte einer stetigen Funktion
\end{itemize}
\begin{definition}[Interpolationsproblem II]
Sei $f\in\mathcal{C}[a,b]$ gegeben und
\begin{equation*}
a \leq x_0 < x_1 < \hdots < x_n \leq b
\end{equation*}
Stützstellen. Finde ein $p\in\Pi_n$ so dass $p(x_i)=f(x_i)\ \forall i=0,\hdots,n$.
\end{definition}
\begin{definition}
Der Interpolationsfehler ist
\begin{equation*}
\norm{f-p}_\infty = \max_{x\in[a,b]} \abs{ f(x) - p(x)}.
\end{equation*}
\end{definition}
$\rightarrow$ Diesen Wert hätten wie gerne klein. Geht das? Im Prinzip ja.
\begin{satz}[Weierstraß]
Sei $f\in\mathcal C[a,b]$. Dann existiert eine Folge $p_0,p_1,p_2,\hdots$ mit $p_n\in\Pi_n$, so dass $\norm{f-p}_\infty \stackrel{n\to\infty}{\longrightarrow} 0$.
\end{satz}
\begin{proof}
Funktionalanalysis, 5.~Semester.
\end{proof}
Karl Weierstraß 1815-1897
\begin{itemize}
\item Deutsch (???)
\item Ab 1856 $\rightarrow$ Berlin
\item Solide (???) der Analysis (\qq{weierstraßsche Strenge})
\item Konvergenzkriterien für Reihen
\item gleichmäßige Konvergenz
\item Satz von Bolzano Weierstraß
\end{itemize}
Kann man solche Polynome durch Interpoaltion konstruieren?\\
Hoffnung: Mehr Stützstellen $\rightarrow$ kleinerer Fehler
\begin{equation*}
\lim \norm{ f-p }_\infty = 0 \qquad \text{für immer feinere Aufteilung von } [a,b]
\end{equation*}
Beispiele: [Computer]\\
Runge:
\begin{equation*}
f(x) = \frac{1}{1+25x^2}
\end{equation*}
Warum geht das schief?\\
Grund I: uniform verteilte Stützstellen sind böse! (warum sehen wir gleich)\\
Grund II: Die Runge-Funktion ist zwar $\mathcal{C}^\infty$, aber die Werte der Ableitung wachsen für höhere Ableitungsordnung
\begin{equation*}
\max_{[a,b]} \left\vert \frac{d^k}{dx^k} \left(\frac{1}{1+25x^2} \right) \right\vert \stackrel{k\to\infty}{\longrightarrow} \infty.
\end{equation*}
Können wir etwas beweisen?
Definiere die Hilfsfunktion $w:\R\to\R$
\begin{equation*}
w(x) \coloneqq (x-x_0)(x-x_1)\cdots (x-x_n).
\end{equation*}
\begin{satz}
Sei $f\in\mathcal{C}^{n+1}[a,b]$ und $a \leq x_0 < x_1 < \hdots < x_n \leq b$. Sei $p_n\in\Pi_n$ das dazugehörige Interpolationspolynom. Dann existiert zu jedem $x\in[a,b]$ eine Zahl $\xi_x\in(a,b)$, so dass
\begin{equation} \label{eq/interpoaltion1}
f(x) - p_n(x) = \frac{f^{(n+1)} (\xi_x)}{(n+1)!} \, w(x).
\end{equation}
Insbesondere also
\begin{equation*}
\norm{ f - p_n}_\infty \leq \frac{1}{(n+1)!}\, \norm{ f^{(n+1)}}_\infty \norm{w}_\infty.
\end{equation*}
\end{satz}
\begin{proof}
Fall 1: $x=x_k$ eine Stützstelle
\begin{equation*}
\Rightarrow f(x)=p_n(x),\quad w(x)=0,\quad \text{\eqref{eq/interpoaltion1} ist mit jedem $\xi_x\in (a,b)$ erfüllt}
\end{equation*}
Fall 2:\\
\begin{itemize}
\item Sei $x\neq x_k\ \forall k=0,\hdots,n$. Definiere Hilfsfunktion $g:[a,b]\to\R$
\begin{equation*}
g(t) \coloneqq f(t)-p_n(t) - [ f(x) - p_n(x)]\cdot\underbrace{\frac{w(t)}{w(x)}}_{ = \prod_{i=0}^n \frac{t-x_i}{x-x_i}}
\end{equation*}
\item Da $f\in\mathcal{C}^{n+1},\ p\in\mathcal{C}^\infty$ und $x\neq x_n$ $\Rightarrow g\in\mathcal{C}^{n+1}$
\item Wir wollen den Satz von Rolle anwenden.
\end{itemize}
\begin{satz}[Satz von Rolle]
Normal: Sei $g\in\mathcal{C}^1$ mit zwei Nullstellen $x_0,x_1$ $\Rightarrow\ \exists \xi$, so dass $g'(\xi)=0$.\\
Verallgemeinert: Sei $g\in\mathcal{C}^{n+1}$ und habe $n+2$ Nullstellen $\Rightarrow\ \exists \xi$, so dass $g^{(n+1)}(\xi)=0$.
\end{satz}
\begin{itemize}
\item Hat unser $g$ $n+2$ Nullstellen?
\item Wähle $t=x_k$:
\begin{equation*}
g(x_k) = \underbrace{f(x_k) - p_n(x_k)}_{=0} - [ f(x) - p_n(x)]\cdot\underbrace{\prod_{i=0}^n \frac{x_k-x_i}{x-x_i}}_{ =0} = 0
\end{equation*}
\item Wähle $t=x$:
\begin{equation*}
g(x_k) = f(x_k) - p_n(x_k) - [ f(x) - p_n(x)]\cdot\underbrace{\prod_{i=0}^n \frac{x-x_i}{x-x_i}}_{ =1} = 0
\end{equation*}
\item[$\Rightarrow$] $n+2$ Nullstellen
\item[$\Rightarrow$] Satz von Rolle: $\exists \xi\in (a,b)$ mit $g^{(n+1)} (\xi) = 0$
\item Einsetzen:
\begin{equation*}
0 = g^{(n+1)}(\xi) = f^{(n+1)}(x_k) - \underbrace{p_n^{(n+1)}(x_k)}_{ =0} - [ f(x) - p_n(x)]\cdot\underbrace{\frac{d^{n+1}}{dt^{n+1}}\left(\prod_{i=0}^n \frac{x-x_i}{x-x_i} \right)_{t=\xi}}_{ = ?}
\end{equation*}
\item $w(t) = \prod_{i=0}^n (t-x_i)$ ist ein Polynom vom Grad $n+1$
\begin{equation*}
= t^{n+1} + \hdots
\end{equation*}
\item $w(x)$ ist eine feste Zahl
\item[$\Rightarrow$] $\prod_{i=0}^n \frac{t-x_i}{x-x_i} = \frac{1}{w(x)}\cdot t^{n+1} + \hdots$
\item[$\Rightarrow$] $\frac{d^{n+1}}{dt^{n+1}} \prod_{i=0}^n \frac{t-x_i}{x-x_i} = \frac{(n+1)!}{w(x)}$
\item Also
\begin{align*}
&0 = f^{(n+1)}(\xi) - [f(x) - p_n(x)] \, \frac{(n+1)!}{w(x)} \\
&\Rightarrow f(x) - p_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!} w(x)
\end{align*}
\end{itemize}
\end{proof}
% Datum 22.10.2015
Folgerungen:
\begin{itemize}
\item[1)] großes $f^{(n+1)}$ ist böse!
\item[2)] großes $w(x)$ ist auch böse!
\end{itemize}
Was kann man gegen 2) tun?\\
$\rightarrow$ $w(x)$ hängt nur von den Stützstellen ab
\begin{equation*}
w \text{ für } n=9
\end{equation*}
\begin{tikzpicture}[domain=-4:4]
\draw[->] (-6,0)--(6,0);
\draw[->] (0,-3)--(0,3);
\draw[thick] plot (\x, {0.001*(\x-4)*(\x-3)*(\x-2)*(\x-1)*(\x)*(\x+1)*(\x+2)*(\x+3)*(\x+4)});
\end{tikzpicture}
\begin{itemize}
\item[$\rightarrow$] 2b) Gleichverteilte Stützstellen sind böse!
\item[$\rightarrow$] Intuitiv: wir brauchen mehr Stützstellen am Rand
\item[$\rightarrow$] Formal: Finde eine Stützstellenverteilung, die
\begin{equation*}
\max_{x\in[a,b]} \abs{ w(x) }
\end{equation*}
minimiert.
\end{itemize}
Um die Notation einfach zu halten, beschänken wir uns ab jetzt auf das Intervall $[-1,1]$.
\begin{definition}
Das $n$-te Tschebyscheff-Polynom ist
\begin{equation*}
T_n(x) = \cos( n \arccos x ),\qquad x\in[-1,1]
\end{equation*}
\end{definition}
Eigenschaften:
\begin{enumerate}
\item Ja, das ist wirklich ein Polynom! (von Grad $n$)
\item Die Koeffizienten sind ganzzahlig, der höchste ist $2^{n-1}$
\item $\abs{T_n(x)} \leq 1$ für $x\in[-1,1]$.
\item Die Nullstellen sind
\begin{equation*}
x_k = \cos\left( \frac{2k-1}{2n} \pi\right) \quad k=1,\hdots,n\quad \text{keine doppelten!}
\end{equation*}
\end{enumerate}
\begin{satz}
Das Tschebyscheff-Polynom $T_n$ ist minimal bzgl.
\begin{equation*}
\norm{ f}_\infty = \max_{x\in [-1,1]} \abs{ f(x)}
\end{equation*}
unter allen Polynomen vom Grad $n$ mit führenden Koeffizienten $2^{n-1}$.
\end{satz}
Was nützt uns das?
\begin{itemize}
\item Wir suchen Stützstellen $x_0,\hdots,x_n$ so dass
\begin{equation*}
\max_{x\in [-1,1]} \abs{ w(x)} = \max_{x\in [-1,1]} \abs{ (x-x_0)(x-x_1)\cdots (x-x_n)}
\end{equation*}
minimal wird
\item $w$ ist Polynom vom Grad $n+1$, und normiert
\item Das kleinste normierte Polymon auf $[-1,1]$ ist $\frac{T_{n+1}}{2^{n}}$
\item[$\Rightarrow$] Wähle $x_0,\hdots,x_n$ als die Nullstellen von $T_{n+1}$.
\end{itemize}
...@@ -57,10 +57,11 @@ ...@@ -57,10 +57,11 @@
\newcommand{\R}{\mathbb R} \newcommand{\R}{\mathbb R}
\newcommand{\N}{\mathbb N} \newcommand{\N}{\mathbb N}
\newcommand{\K}{\mathbb K} \newcommand{\K}{\mathbb K}
\newcommand{\C}{\mathbb C} \renewcommand{\C}{\mathbb C}
\newcommand{\D}{\mathcal{D}} \newcommand{\D}{\mathcal{D}}
\newcommand{\spann}{\operatorname{span}} \newcommand{\spann}{\operatorname{span}}
\newcommand{\extendadd}{\;\; \updownarrow \hspace{-12pt} \longleftrightarrow} \newcommand{\extendadd}{\;\; \updownarrow \hspace{-12pt} \longleftrightarrow}
\newcommand{\qq}[1]{\glqq #1\grqq}
\renewcommand{\Re}{\operatorname{Re}} \renewcommand{\Re}{\operatorname{Re}}
\renewcommand{\Im}{\operatorname{Im}} \renewcommand{\Im}{\operatorname{Im}}
...@@ -152,6 +153,8 @@ To view a copy of this license, visit \url{http://creativecommons.org/licenses/b ...@@ -152,6 +153,8 @@ To view a copy of this license, visit \url{http://creativecommons.org/licenses/b
\mainmatter \mainmatter
\include{interpolation}
\include{nichtlineare-gleichungen} \include{nichtlineare-gleichungen}
\include{nichtlineare-ausgleichsprobleme} \include{nichtlineare-ausgleichsprobleme}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment