%####################################################################
\chapter{Numerik}\label{chap:Numerik}  % 6. Kapitel 06numerik.tex
%####################################################################

\vspace{-10mm}
Die Verfahren der numerischen Mathematik beschaffen zahlenmäßige 
Ergebnisse wenig\-stens näherungsweise, wenn eine exakte Berechnung 
unbekannt, ungünstig oder sogar unmöglich ist.

Alle frühen Hochkulturen haben Näherungsbrüche --~z.\,B. für die Kreiszahl 
$\pi$~-- verwendet. Die \?Babylonier\? hatten ein Stellenwertsystem mit der Basis 
60 (Sexagesimalsystem) und konnten damit "`Kommazahlen"' mit  beliebiger 
Genauigkeit berechnen. Es gibt eine Tontafel (YBC 7289) aus der Zeit von 
König Hammurabi (etwa 1700 v.\,Chr.), 
auf der ein Quadrat mit der Zahl 1;24,51,10 in Keilschrift geschrieben 
steht, im Dezimalsystem ist das $1.414212963$. Hier ist der \?Fehler\? zu $\sqrt{2
}$ nur noch $\frac{6}{10\,000\,000}$. 
Eine solche Genauigkeit kann man nur durch systematisches Vorgehen erreichen, 
durch einen \textbf{\?Algorithmus\? der Numerik}. In den Abschnitten dieses 
Kapitels betrachten wir viele  numerische Algorithmen in den verschiedenen 
mathematischen Themengebieten.
 
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\section{Numerische Fehler}\label{sec:NumerischeFehler}
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Gerade eben wurden schon "`Fehler"' bei numerischen Rechnungen, also 
Abweichungen des numerischen Ergebnisses vom exakten Wert, 
angesprochen. Die genaue Diskussion dieser Fehler, ihrer Ursachen und 
ihre Fortpflanzung, ist Gegenstand der {\bf Fehlerrechnung}. Auf diese 
genauer einzugehen, fehlt uns hier der Platz. Wir wollen aber dennoch 
auf ein paar grundlegende Dinge aufmerksam machen und sie beim Namen 
nennen. Außerdem können wir einige besonders krasse und unangenehme 
Fehlersituationen in Bildern zeigen.

%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Fehlerarten und Ursachen}\label{subsec:NumerischeFehlerarten}
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\INDEX[!Verfahrens\~, Rundungs\~, Mess\~]{Fehler} bei numerischen 
Berechnungen haben verschiedene Ursachen, die wichtigsten sind:
\begin{description}
  \item[\und{Verfahrensfehler}] Sie entstehen dadurch, dass ein numerisches 
    Verfahren von vornherein nur eine Approximation an den gewünschten 
    exakten Wert liefert. Zu jedem numerischen Verfahren gehört eine 
    genaue Betrachtung des Verfahrensfehlers, und Sie werden in den 
    Abschnitten dieses Kapitels auch stets eine solche finden.
  \item[\und{Rundungsfehler}] spielen immer dann eine Rolle, wenn mit 
    Dezimalzahlen gerechnet wird, die nur eine begrenzte Stellenzahl 
    haben. Schon eine so einfache Zahl wie $\sqrt2$ hat aber 
    bekanntlich unendlich viele Dezimalstellen. Jede endliche 
    Dezimalzahl weicht also um einen Rundungsfehler von $\sqrt2$ ab: 
    ein üblicher Taschenrechner liefert
\[
  \sqrt2 = 1.414\,213\,562\,37 \text{ statt } 
  1.414\,213\,562\,373\,095\,0488\dots,
\]
   man hat also einen {\bf absoluten Rundungsfehler} von 
   $0.000\,000\,000\,003\,095 = 3.095\cdot10^{-12}$, oder einen {\bf relativen 
   Rundungsfehler} von $\dfrac{3.095\cdot10^{-12}}{\sqrt2} = 
   2.188\cdot10^{-12}$. 
   Der \und{relative} \INDEX[!absoluter \~, relativer \~]{Fehler} 
   setzt also den \und{absoluten} 
   Fehler ins Verhältnis zum Wert selbst. Das ist meistens 
   aussagekräftiger als der absolute Fehler: ein absoluter Fehler von 
   $3.095\cdot10^{-12}$ für $\sqrt2$ mag vernachlässigbar sein, tritt 
   er bei der Berechnung von $\sqrt2\cdot10^{-11}$ auf, ist 
   er natürlich inakzeptabel, aber dann ist der relative Fehler auch 
   $0.2188 \approx 22\%$. Relative Fehler werden gerne in Prozent angegeben.   
   
   In weiteren Rechnungen, in denen die Näherung 
   von $\sqrt2$ verwendet würde, ginge dieser Fehler ein und pflanzte 
   sich mehr oder weniger stark fort. Man spricht von einem Verfahren 
   hoher {\bf \Index[Algorithmus!]{Stabilität}}, wenn sich diese 
   \?Fehlerfortpflanzung\? gut kontrollieren lässt. 
  \item[\und{Messfehler}] treten auf, wann immer in technischen Anwendungen 
    Zahlen in Berechnungen eingehen, die auf Messungen beruhen, die 
    per se nicht exakte Zahlen liefern, sondern einen mehr oder 
    weniger großen Messfehler aufweisen. Hinzu kommt, dass man 
    diesen Fehler nicht genau kennt --~dann könnte man ihn ja 
    herausrechnen~--, sondern nur eine Abschätzung dafür hat. In 
    diesem Fall ist es wichtig, dass das numerische Verfahren solche 
    Fehler toleriert, d.\,h. Ergebnisse liefert, die nahe am exakten 
    Ergebnis liegen (das man aber ja auch nicht kennt). Eine Art von 
    "`starker Stetigkeit"' des Verfahrens ist hier also nötig, man 
    spricht von guter {\bf \Index[Algorithmus!]{Kondition}} eines Verfahrens.
\end{description}

%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Instabilität}%
\label{subsec:NumerischeInstabilitaet}%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Wir zeigen ein besonders deutliches Beispiel für ein instabiles 
numerisches Verfahren. Es berechnet durch einen iterativen Prozess die 
Kreiszahl $\pi$. Die Idee stammt von 
\INDEX[!Berechnung von $\pi$]{Archimedes}, der in den Kreis mit 
Radius 1 gleichseitige Vielecke einbeschrieben hat. Die Fläche dieses 
Vielecks ist dann eine Näherung für $\pi$. Indem er schrittweise die 
Seitenzahl des Vielecks verdoppelt, erhält er immer bessere Näherungen 
für $\pi$. In moderner Schreibweise ist die Rechnung wie folgt:

\raisebox{3cm}{% notwendiger Trick, sonst liegen Tabelle und Bild nicht auf einer Höhe
\begin{tabular*}{rl}
  {\bf Formeln} & {\bf Start Zwölfeck} \\
	\hline
	Seitenzahl & $n=12$  \\
	Segmenthöhe & $k_n=0.5$ \\
	Vieleckfläche & $\displaystyle A_n=\frac{n}{2}k_n=3$ \rule[-3.5mm]{0mm}{1em}\\
	\hline
	{\bf Verdopplung:}  \\
	$k_{2n} = $ & $\displaystyle\sqrt\frac{1-\sqrt{1-k_n^2}}{2}$ 
	\\
	\multicolumn{2}{l}{	
	$A_{12\cdot2^m} = 
  3\cdot2^m\stackrel{\mbox{\textcolor[rgb]{0,0.58,0}{\tiny $m+1$ Wurzeln}}}%
  {\sqrt{2 - \sqrt{2+\sqrt{2+\dots\sqrt{3}}}}}$
	}\\
	$\xrightarrow{m\to\infty}\pi$ & für $m\ge1$
\end{tabular*}}
\includegraphics[width=6cm]{figuresHoema/Zwoelfeck.eps} 
\noindent%
Der entscheidende, stets wiederholte Schritt ist also die Berechnung 
der Segmenthöhe des neuen Vielecks mit doppelter Seitenzahl aus der 
Segmenthöhe des vorigen Vielecks. Die Beweiszeichnung in 
Abb.~\ref{fig:pi-berechnen} können Sie leicht für $k_{2n}$ anpassen.
Führt man dieses iterative Verfahren 
in \?Excel\? durch, so bekommt man ein Ergebnis, das in 
Abb.~\ref{fig:PiNumerischInstabil} gezeigt ist.
\begin{figure}[htbp]
\includegraphics[width=12.6cm]{figuresHoema/PiNumerischInstabil.eps} 
\caption[Iterative Berechnung von $\pi$]{\textbf{\und{Iterativ}e Berechnung
\Index{Iteration}% 
von $\pi$.} In der Excel-Tabelle sind ein paar Zeilen ausgelassen. In 
der rechten Grafik ist aber für alle Zeilen der erreichte relative 
Fehler der Näherung für $\pi$ aufgezeichnet. An der y-Achse stehen die 
dekadischen Logarithmen des relativen Fehlers, also z.\,B. $-4$ für $10^{-4}$.
}
\label{fig:PiNumerischInstabil} 
\end{figure}
Man erkennt zu Beginn eine gleichmäßige Verbesserung der Genauigkeit: 
der relative Fehler wird in 10 Schritten um den Faktor $10^{-6}$ 
kleiner, man gewinnt also 6 richtige Dezimalstellen. Danach aber wird 
der Fehler wieder größer, bis schließlich das Ergebnis völlig 
unbrauchbar ist. Man erreicht nie mehr als 8 richtige Dezimalstellen, 
obwohl Excel intern mit 15 Dezimalstellen rechnet. 

Zur Klärung der Ursache schauen wir uns den Schritt an, in dem 
erstmalig die Genauigkeit wieder schlechter wird, nämlich wenn $n$ von 
$n=393216$ auf 786432 geht:
\begin{align*}
  k_n              &= 1.5978\,96650\,84193\cdot10^{-5}  \\
  k_n^2            &= 2.5532\,73703\,57605\cdot10^{-10} \\
  1-k_n^2          &= 9.9999\,99997\,44673\cdot10^{-1}  \\
  \sqrt{1-k_n^2}   &= 9.9999\,99998\,72336\cdot10^{-1}  \\
  1-\sqrt{1-k_n^2} &= 0.0000\,00001\,27664\cdot10^{-1} 
\end{align*}
Alle Zahlen bis auf die letzte Zeile sind mit 15 gültigen 
Dezimalstellen angegeben, wie sie auch Excel anzeigt. In der letzten 
Zeile hat man aber nur noch 6 gültige Dezimalstellen, weil sich 
bei der Subtraktion $1-\sqrt{1-k_n^2}$ viele führende Nullen ergeben. 
Man spricht von {\bf \und{Genauigkeitsverlust durch Auslöschung} 
\Index{Auslöschung und Genauigkeitsverlust}%
bei einer Subtraktion}. Der absolute Fehler dieser Zahl wird etwa 
$0.0000\,00000\,000005\cdot10^{-1} =5\cdot10^{-16}$ betragen, der 
relative Fehler ca. $5\cdot10^{-6}$. Das wird etwa auch der relative 
Fehler von $k_{2n}$ und damit vom nächsten Näherungswert für $\pi$ 
sein. Diese Näherung kann also nur noch etwa 6 gültige Dezimalstellen 
haben.

Wenn $k_n$ schließlich so klein geworden ist, dass $k_n^2 < 10^{-15}$ 
ist, dann ist $1-k_n^2$ bei 15 Dezimalstellen nicht mehr von 1 zu 
unterscheiden und das Verfahren bricht zusammen.
Die Auslöschung,
%\INDEX[, Genauigkeitsverlust durch \~]{Auslöschung}, neu weiter oben
die hier zur Instabilität führt, lässt sich 
vermeiden, wenn man die Formel für $k_{2n}$ durch Erweitern des 
Bruches mit $\sqrt{1+\sqrt{1-k_n^2}}$
umschreibt in die äquivalente Formel
\[
	k_{2n} = \frac{k_n}{\sqrt2\sqrt{1+\sqrt{1-k_n^2}}}.
\]
Hier kann es nicht zur Auslöschung kommen, denn die einzige Differenz 
subtrahiert $k_n^2$, welches immer kleiner wird, von 1, dabei können 
keine führenden Nullen entstehen, der relative Fehler bleibt bei ca. 
$10^{-15}$. In Abb.~\ref{fig:PiNumerischStabil} können Sie den Erfolg 
sehen.
\begin{smallfigure}[htbp]
\includegraphics[width=5cm]{figuresHoema/PiNumerischStabil.eps} 
\caption[Stabile iterative Berechnung von $\pi$]{\textbf{\und{Stabile}
\Index{Algorithmus!Stabilität}% 
iterative Berechnung von {\boldmath $\pi$}.} \\
$n$ ist die Eckenzahl der regelmäßigen
$n$-Ecke aus der 12-Eck-Familie, \\
$k_n$ sind die Höhen der Segmente,\\
$A_n$ ist die Gesamtfläche des $n$-Ecks, die im Grenzwert für $n\to\infty$
gerade $\pi$ sein muss. \\
Nur der Anfang und der Schluss der 
Rechnung sind gezeigt.  
}
\label{fig:PiNumerischStabil} 
\end{smallfigure}
Man erhält 15 gültige Stellen von $\pi$, die stabil erhalten bleiben, 
egal, wie lange man weiterrechnet. Ein Ende wird erst erreicht, wenn
$k_n$ kleiner geworden ist, als die kleinste positive Zahl, die Excel 
überhaupt darstellen kann, das ist der Fall für $k_n\lessapprox10^{-308}$,
man spricht dann von einem \textbf{\Index[Excel!]{Unterlauf}}. 
Aber das ist hier praktisch irrelevant.

%###################################################
\section{Nullstellensuche}\label{sec:nullstellensuche}
%###################################################

Als erste von mehreren numerischen Fragestellungen wollen wir die Suche nach 
Nullstellen von Funktionen betrachten und dafür mehrere Verfahren vorstellen 
und vergleichen.

%###################################################
\subsection{Bisektion und Intervallschachtelung}\label{subsec:bisektion}
%###################################################

Dieses einfache Verfahren geht von einem Intervall aus, an dessen 
Intervallenden die  betrachtete Funktion verschiedene Vorzeichen annimmt. Ist 
die Funktion stetig, dann muss sie in dem Intervall eine Nullstelle haben. 
Dies folgt aus dem \textbf{\?Zwischenwertsatz\?}, der besagt, dass eine stetige 
Funktion in einem abgeschlossenen Intervall alle Werte annehmen muss, die 
zwischen den Werten an den Intervallenden liegen. Diesen einleuchtenden Satz 
--~stetige Funktionen kann man "`in einem Zug"' zeichnen~-- wollen wir hier 
nicht beweisen.

Dieses Intervall wird in der Mitte geteilt (\?Bisektion\?) und dort 
das Vorzeichen der Funktion angesehen. Man sucht dann in derjenigen 
Intervallhälfte weiter nach der Nullstelle, die an den Enden --~eines davon 
ist die neue Mitte~-- verschiedene Vorzeichen für die Funktion liefert.
Abb.~\ref{fig:bisektion}\,a) und b) zeigen das Vorgehen für $f(x)=\cos x - x$. 
%\noindent%
Nach 10 solchen Halbierungsschritten ist das Intervall auf 
$\frac{1}{1024}$-tel der ursprünglichen Breite geschrumpft, man hat also ca. 
drei Dezimalstellen an Genauigkeit hinzugewonnen, pro Bisektionsschritt also 
ca. 0.3 Dezimalstellen. Das ist nicht sehr viel, aber verlässlich.
\begin{smallfigure}[htbp]
\includegraphics[width=8cm]{figuresHoema/bisektion3} 
\caption[Bisektion und Intervallschachtelung]{\textbf{Intervallschachtelungen.}
Bei allen Verfahren ist unten eine \?Intervallschachtelung\? angegeben,
In \textbf{a)} und \textbf{b)} wird sie durch fortgesetzte Halbierung, 
Bisektionen, gefunden.  \textbf{c)} zeigt die Lösung des Problems mit einer 
rekursiven Folge zur \Index[Iteration!]{Fixpunkt}gleichung $\cos x = x$, siehe 
Abschnitt~\ref{subsec:iteration-fixpunkt}.
}
\label{fig:bisektion} 
\end{smallfigure}

%######################################################################
\subsection{Sekantenverfahren}\label{subsec:null_sekanten}
%###################################################

Während das Bisektionsverfahren die Mitte des aktuellen Intervalls als neue 
Näherung nimmt, wird beim Sekantenverfahren als neue Näherung die Nullstelle 
einer einfachen Funktion genommen, die als \?Ersatzfunktion\? für die Funktion 
$f$, deren Nullstelle man sucht, genommen wird. Als Ersatzfunktion dient die 
Gerade durch die Punkte des Graphen von $f$ an den Intervallenden, also das, 
was gemeinhin \textbf{Sekante} genannt wird. Dieses wirkungsvolle 
Verfahren heißt auch \textbf{regula falsi}, die "`Regel des Falschen"'. Es 
hat eine lange Geschichte und findet sich zuerst 
im \und{ägyptischen} Papyrus Rhind
\Index{Aegypter@Ägypter}%
(ca. 1550~v.~Chr.). Gemeint ist, dass i.\,A. die \?Sekante\? eine "`falsche"' 
Nullstelle hat. In der Legende zu Abb.~\ref{fig:sekanten} stehen weitere 
Details.

\begin{smallfigure}[htbp]
\includegraphics[width=4cm]{figuresHoema/sekanten} 
\caption[Sekantenverfahren]{\textbf{Sekantenverfahren.} Neue Näherung $x_2$ 
ist die Nullstelle der Sekante durch die Graphenpunkte an den Enden des 
Intervalls $[x_0,x_1]$. Mit einfacher Rechnung und $y_i=f(x_i)$, $i=0,1$, 
ergibt sich 
\boldmath{
\[ 
  x_2 =\frac{y_0 x_1-y_1 x_0}{y_0-y_1}.  
\]
}% Ende boldmath
Das neue Intervall ist $[x_0,x_2]$ oder $[x_2,x_1]$, je nachdem, welches 
Vorzeichen $f(x_2)$ hat. Man sieht hier, dass man für die Funktion 
$f(x) = \cos x - x$ und Start bei $x_0=0.2,\ x_1=1$, mit $x_3=0.74$ 
schon 2-stellige Genauigkeit der Nullstelle \\
erreicht hat.
}
\label{fig:sekanten} 
\end{smallfigure}
\noindent%
Das Sekantenverfahren hat eine \textbf{Konvergenzordnung} von 1, man gewinnt 
also pro Schritt im Mittel nur eine feste Anzahl von dezimalen Stellen, das 
kann auch nur ein Bruchteil einer Stelle sein, hinzu. Zur Konvergenzordnung 
siehe Abschnitt~\ref{sssec:newton-konvergenz}. 
Das beweisen wir hier nicht. Mit dieser \textbf{\Index[Konvergenz!]{linear}en 
Konvergenz} konvergiert es langsamer als das unten folgende Newtonverfahren. 
Dafür setzt es aber auch nur die Stetigkeit der beteiligten Funktion voraus.
Konkret hat man für unsere Beispielfunktion einen Gewinn von $1.3$ 
Dezimalstellen pro Schritt. 

\noindent%
Beim beschriebenen Vorgehen ist die Konvergenz gegen eine Nullstelle 
gesichert, wenn die Funktion an den Grenzen des Startintervalls verschiedene 
Vorzeichen annimmt. Auf Varianten des Sekantenverfahrens, die diese Bedingung 
aufweichen, gehen wir in Abschnitt~\ref{sssec:NullstellenFazit} noch einmal 
ein.
 
%###########################################################################
\subsection{Newtonverfahren}\label{subsec:newton-null}
%###########################################################################
\Index{Newton, Isaac!\~verfahren|(}%
Für differenzierbare Funktionen $f$ eignet sich besonders das von Newton 
vorgestellte Verfahren. Die Grundidee ist folgende: An der Stelle eines nahe 
der gesuchten Nullstelle frei 
gewählten Startwertes $x_0$ wird die Tangente an den Graphen von $f$ gelegt. 
Die Nullstelle dieser \?Ersatzfunktion\? liegt (hoffentlich) dichter an der 
gesuchten Nullstelle von $f$ als $x_0$. 

\begin{lemma}[Newtonformel]\label{lem:newton}
Sei $f$ eine in einer hinreichend kleinen Umgebung der 
gesuchten \textbf{Nullstelle \boldmath $x_s$} differenzierbare reelle Funktion 
und $x_0$ sei aus dieser Umgebung. Dann konvergiert die rekursive Folge mit 
\vspace{-2mm}
\begin{center}\boldmath{$x_{n+1}:=x_n -\dfrac{f(x_n)}{f'(x_n)}$  
gegen $x_s$.}%ende boldmath
\end{center}\vspace{-5mm}
\end{lemma}
\vspace{-3mm}\noindent%
Es ist etwas schwierig, genau zu sagen, wie klein die Umgebung um die 
Nullstelle $a$ sein muss, deshalb verzichten wir hier auf einen formalen 
Konvergenzbeweis. Wir beweisen aber die Richtigkeit der Formel, d.\,h. dass 
die Nullstelle der Tangente in $x_n$ gerade durch $x_{n+1}$ gegeben ist: In 
Abb.~\ref{fig:newton-it-DH} a) sehen Sie farbig Steigungsdreiecke der Tangenten 
in den Berührpunkten $(x_n,f(x_n))$, für deren Steigung gilt: 
$f'(x_n))=\frac{f(x_n)}{x_n-x_{n+1}}$. Aufgelöst nach $x_{n+1}$ folgt obige 
Formel.
 
\begin{figure}[htbp]
\includegraphics{figuresHoema/newton-it-DH} %eps nicht schreiben
\caption[Newtonverfahren]{\textbf{Nullstellensuche mit dem Newtonverfahren für 
\boldmath $f(x) = \e^x-4x$.} 
Es sind je zwei \Index[Fenster, ]{gekoppelte} 
Grafikfenster nebeneinander dargestellt. Links 
ist jeweils der Funktionsgraph und die definierende Tangentenfolge, rechts 
die \?Trägerfunktion\? der Newton-Iteration mit der Folge der Näherungspunkte 
zu sehen.  \textbf{a) und b)} zeigen ein "`übliches"' Beispiel, bei dem die 
Näherungsfolge monoton fallend auf die gesuchte Nullstelle zuläuft.  
\textbf{c) und d)} zeigen einen anderen Ausschnitt derselben Funktion. Damit 
erklären sich einige Überraschungen, die man mit der Newton-Iteration erleben 
kann. Der Text geht darauf in Abschnitt~\ref{sssec:newton-besonder} ein.
\vspace{-3mm}
}% LAYOUT
\label{fig:newton-it-DH} 
\end{figure}

In Abb.~\ref{fig:newton-it-DH} ist eine Funktion gewählt, für die man 
ausschließlich auf numerischem Weg an die Nullstellen kommt, denn $\e^x-4x=0$ 
ist eine \textbf{\Index[Gleichung!]{transzendent}e Gleichung}, 
die man nicht nach $x$ auflösen kann. 
Die Grundidee mit der Tangente und ihrer Nullstelle sieht man deutlich in 
Abb.~\ref{fig:newton-it-DH}\,a) und c) verwirklicht. In b) und d) dagegen ist 
die Iteration mit ihrer \und{Trägerfunktion} dargestellt. 
\Index{Funktion!Traeger@Träger\~}%
Wie in Abschnitt~\ref{subsec:folgen-rekursiv} 
eingeführt, zeichnet man vom Startpunkt $X_0=(x_0,0)$ 
immer abwechselnd "`zur Kurve, zur Winkelhalbierenden"'. Ersichtlich nähert 
sich bei Bild c) das "`Treppchen"' dem Schnittpunkt der Trägerfunktion mit 
der Geraden $y=x$, dem oberen Fixpunkt dieser rekursiven Folge, an. Die 
zugehörige Abszisse des Fixpunktes ist die gesuchte Nullstelle. 

%###################################################
\subsection{Iteration, Fixpunkt und Konvergenz}\label{subsec:iteration-fixpunkt}
%###################################################
Das Newtonverfahren ist ein Spezialfall des in Abb.~\ref{fig:bisektion}\,c) 
gezeigten Vorgehens zum Finden einer Nullstelle als Fixpunkt einer Iteration. 
Mehr zu Iterationen finden Sie in \cite[Kap. 5]{HaftendornM}. Der Fixpunkt 
erfüllt $g(x)=x$ mit der "`\?Trägerfunktion\?"' $g$. 
\Index{Funktion!Traeger@Träger\~}%
Will man so eine Nullstelle von $f$ finden, dann muss man die 
Nullstellengleichung $f(x) = 0$ in eine Fixpunktgleichung $g(x) = x$ 
umschreiben. In Abb.~\ref{fig:bisektion} gilt $f(x)=\cos x - x$, in c) ist 
das naheliegende $g(x)=\cos x$ gewählt worden, die Fixpunkte $x_s$ von $g$ 
stimmen mit den Nullstellen von $f$ 
überein. Das Newtonverfahren verwendet systematisch die Trägerfunktion
$g(x) = x - \frac{f(x)}{f'(x)}$ mit der gleichen Eigenschaft. Übrigens  
unterscheidet man sprachlich die Schnitt\textit{stelle} $x_s$ nicht vom 
Schnitt\textit{punkt} $(x_s,x_s)$, dem Fixpunkt, auf den sich das Verfahren 
im Falle der Konvergenz zusammenzieht. 

In welchen Fällen eine solche Iteration tatsächlich gegen  
einen \Index[Iteration!]{Fixpunkt} konvergiert,
hängt  von der \textbf{Steigung der \Index{Funktion!tragend}
\und{Trägerfunktion} \boldmath{$g$} im Fixpunkt} ab. Es gilt:

\begin{lemma}\label{lem:KonvergenzRekursiv}
Eine Rekursion $x_{n+1} = g(x_n)$ mit einer zweimal differenzierbaren Funktion 
$g$ konvergiert gegen einen \textbf{Fixpunkt} {\boldmath $x_s = g(x_s)$}, wenn 
der Startwert $x_0$ nahe genug bei $x_s$ liegt und die Bedingung
{\boldmath
\[
  \abs{g'(x_s)} < 1
\]
erfüllt ist. Ist sogar $g'(x_s) = 0$, so ist die 
\textbf{Konvergenz quadratisch}, 
d.\,h. \\
\centerline{$\abs{x_{n+1}-x_s} \approx C\abs{x_n-x_s}^2$ 
  mit einer Konstanten C.}
}% Ende boldmath
\end{lemma}

\begin{proof}% von Satz~\ref{lem:KonvergenzRekursiv}: 
Mit der \INDEX[polynom]{Taylor}approximation 1. Grades von $g$ um $x_s$ 
schließt man wie folgt:
Mit $a := g'(x_s)$ ist $g(x) \approx g(x_s) + a(x-x_s)$. Für $x$ nahe genug an 
$x_s$ gibt es wegen $\abs{a}<1$ sogar eine Zahl $q$ mit $\abs{a}<q<1$ und
$\abs{g(x) - g(x_s)} < q\abs{x-x_s}$. Daraus folgt \\
$\abs{x_{n+1} - x_s} = \abs{g(x_n) - g(x_s)} < q\abs{x_n-x_s} < 
  q^2\abs{x_{n-1}-x_s} < \dots < 
  q^{n+1}\abs{x_0-x_s} \xrightarrow{n\to\infty} 0$. \\
Für $g'(x_s) = 0$ hat man sogar 
$x_{n+1} - x_s \approx \frac{1}{2} g''(x_s)(x_n - x_s)^2$.
\end{proof}
\noindent%
Bei \textbf{\Index[Konvergenz!]{quadratisch}er Konvergenz} verdoppelt sich bei 
jedem Schritt die Anzahl 
korrekter Dezimalstellen, weil der Fehler von $x_n$ quadriert wird.
Der Faktor $C$ ändert nicht viel daran: ist etwa $C=100$, so gehen bei jedem 
Schritt nur 2 der gewonnenen Dezimalstellen wieder verloren.
Statt von quadratischer Konvergenz spricht man auch davon, dass die Folge eine 
Konvergenzordnung von 2 hat. Die Konvergenzordnung ist so definiert:

\begin{definition}[Konvergenzordnung]\label{def:konvergenzordnung} 
Gegeben sei eine Folge $(x_n)$, die gegen $x_s$ 
konvergiert. Die Konvergenz\Index[Konvergenz!\~]{ordnung} {\boldmath $p$} 
liegt vor, wenn der folgende Grenzwert $q$ positiv und endlich ist:
\begin{center}
\vspace{-3mm} % LAYOUT
\boldmath{$\displaystyle 0 < \lim_{n\to\infty}
\frac{\left|x_{n+1}-x_s\right|}{\left|x_n-x_s\right|^p} = q < \infty$}
\end{center}
\vspace{-6mm}% LAYOUT
\end{definition}
\vspace{-2mm}
\noindent%
Wir können zu dieser Formel folgendes überlegen: Wegen der Konvergenz ist der 
Zähler (für große $n$) kleiner als der Nenner und beide sind nahe dem 
Grenzwert kleiner als 1. Wird $p$ zu groß gewählt, wird der Nenner winzig und 
damit wird der ganze Term riesig. Wenn die Konvergenzgeschwindigkeit groß 
ist, wird bei $p=1$ der Zähler immer kleiner im Verhältnis zum Nenner werden, 
der Term strebt dann gegen null. Man suche nun das größte $p$, das den Term 
"`im Zaum hält"'. Bei dem Zahlenbeispiel in Abb.~\ref{fig:newton-zahlen} werden 
Sie mit einem CAS finden können, dass für $p=2$ der Grenzwert $q
\approx 0.933541412$ ist.

Man überzeugt sich sofort, dass eine Konvergenzordnung von 2 dasselbe ist wie 
eine quadratische Konvergenz: aus 
$\lim_{n\to\infty}
\frac{\left|x_{n+1}-x_s\right|}{\left|x_n-x_s\right|^2} = q$ 
folgt durch Umstellung 
$\left|x_{n+1}-x_s\right| \approx q \left|x_n-x_s\right|^2$,
sobald $x_n$ nahe genug an $x_s$ ist.

%###########################################################################
\subsubsection{Konvergenzgeschwindigkeit des Newtonverfahrens}%
\label{sssec:newton-konvergenz}
%###########################################################################
\begin{figure}[ht]
\includegraphics{figuresHoema/newton-zahlen} %eps nicht schreiben
\caption[Newtonverfahren Konvergenzgeschwindigkeit]{\textbf{Wie schnell 
konvergiert das Newtonverfahren?} Man misst die 
Konvergenz\Index[Konvergenz!\~]{geschwindigkeit} 
daran, mit welchem Faktor die Anzahl der richtig berechneten Stellen von 
Schritt zu Schritt wächst. Hier werden die gelben Balken, die dies anzeigen, 
bei jedem Schritt etwa doppelt so lang.
}
\label{fig:newton-zahlen} 
\end{figure}
Die Abb.~\ref{fig:newton-zahlen} zeigt die Näherungswerte des 
Newtonverfahrens bei der Berechnung einer Nullstelle von $f(x) = \e^x-4x$, 
Startwert $x_0=6$, mit mehr als 120 Dezimalstellen. Man sieht, dass die Zahl 
der gültigen Stellen sich bei jedem Schritt ungefähr verdoppelt. 
Dieses Verhalten haben wir 
\textbf{quadratische Konvergenz} genannt. Mit 
Satz~\ref{lem:KonvergenzRekursiv} können wir das auch rechnerisch belegen. Das 
Newtonverfahren liefert eine rekursive Folge mit Trägerfunktion 
$g(x) = x - \frac{f(x)}{f'(x)}$. Aus dem Satz kann man für $g$ folgern:

\begin{lemma}\label{lem:superschnell} Hat die zweimal differenzierbare 
Funktion $f$ eine einfache Nullstelle in $x_s$, dann ist $g'(x_s) = 0$. Das 
Newtonverfahren konvergiert dann quadratisch.
Liegt bei $x_s$ dagegen eine Nullstelle höherer Ordnung $k>1$, ist die 
Konvergenz nur noch linear. Die Steigung der Trägerfunktion im Fixpunkt ist 
dann $g'(x_s)=1-\frac{1}{k}$. 
\end{lemma}   

\begin{proof}  
Aus $g(x) = x - \frac{f(x)}{f'(x)}$ ergibt sich nach kurzer Rechnung 
$g'(x) = \frac{f(x)f''(x)}{f'(x)^2}$. Für eine einfache Nullstelle $x_s$ ist
$f(x_s)=0$ und $f'(x_s)\neq 0$, daraus folgt sofort die Behauptung.\\
Für eine $k$--fache Nullstelle kann man schreiben $f(x)=(x-x_s)^k h(x)$ mit 
einer Funktion $h$ mit $h(x_s)\neq 0$. Etwas mühsam rechnet man nun 
$g'(x_s) = 1-\frac{1}{k} \ne 0$ aus. 
\end{proof} 
Die Konvergenz ist für größere $k$ sogar sehr langsam, denn im Beweis zu 
Satz~\ref{lem:KonvergenzRekursiv} kann man sehen, dass dann das dortige 
$a = 1-\frac{1}{k} \lessapprox 1$ ist. $a$ ist aber ungefähr der Faktor, der 
den Fehler der Näherung bei jedem Schritt verkleinert. 
Die Konstante $C$ aus Satz~\ref{lem:KonvergenzRekursiv} hat für das 
Newtonverfahren bei einfachen Nullstellen übrigens den Wert 
\fbox{$\frac{f''(x_s)}{2f'(x_s)}$}.

%###########################################################################
\subsubsection{Besonderheiten beim Newtonverfahren}%
\label{sssec:newton-besonder}%
%###########################################################################
Eine der Überraschungen beim Newtonverfahren ist in Abb.~\ref{fig:newton-it-DH} 
\,c) und d) verdeutlicht. In c) sieht man die Extremstelle $x_e=\ln(4)$ von $f$ 
besser. Sie ist als Startwert völlig ungeeignet, weil die Trägerfunktion $g$ 
dort einen Pol hat. Aber auch Startwerte sehr nahe an $x_e$ sind ungünstig: 
die fast waagerechte Tangente hat eine weit entfernte Nullstelle als nächste 
Näherung. Dennoch: wenn man nicht $\ln(4)$ als Start nimmt, kommt man durch das 
Newtonverfahren letztlich stets zu einer der beiden Nullstellen --~aber 
welcher? 

\begin{figure}[htbp]
\includegraphics{figuresHoema/newton-CAS-it} 
\caption[Newtonverfahren Sonderfall]{\textbf{CAS mit GeoGebra und 
Überraschung beim Newtonverfahren.}\textbf{ a)} zeigt die Berechnung der 
Trägerfunktion des Newtonverfahrens und die Berechnung von Folgenwerten. In 
\textbf{b) und c)} sind wieder zwei 
\Index{Fenster, gekoppelte|textbf}
gekoppelte Grafikfenster nebeneinander 
dargestellt, aber diesmal für die Nullstelle von $\e^x-2.7x$. 
Betrachtet man nur berechnete Folgenglieder, ohne auf einen 
Graphen zu achten, könnte man meinen, die Folge konvergiere gegen einen Wert 
zwischen $x_3$ und $x_6$. In  \textbf{c)} erkennt man aber, dass die 
rekursive "`Treppchenfolge"' überhaupt nicht konvergieren wird. Ein Zoom im 
Fenster b) hätte auch gezeigt: \textbf{Es gibt gar keine Nullstelle.} }
\label{fig:newton-CAS-it} 
\end{figure}
\noindent%
Es gibt aber auch Fälle, bei denen man sich leicht durch das Verhalten der 
Folgenglieder täuschen lassen kann. So zeigen es Abb.~\ref{fig:newton-CAS-it}\,
b) und c). Die Bildlegende erklärt den Grund. Die direkte 
Anforderung einer numerischen Nullstellenberechnung mit einem CAS wie 
Mathematica gibt in einem solchen Fall evt. eine komplexe Zahl aus oder 
aber einen Zahlenwert mit der Bemerkung: "`the procedure doesn't converge 
after 15 iterations"'. Diesen Wert darf man dann nicht sorglos als die 
Nullstelle auffassen, es ist einfach nur der zuletzt entstandene Wert. 
\Index{Newton, Isaac!\~verfahren|)}%


%############# Neue Stellung
%###########################################################################
\subsection{Heronverfahren}\label{subsec:heron}
%###########################################################################

\?Heron von Alexandria\? war ein Mathematiker und Ingenieur der Spätantike,  der 
im 1. Jahrhundert n. Chr. lebte. Er war außerordentlich erfindungsreich und 
schon zu Lebzeiten sehr berühmt. Das Heronverfahren, das Quadratwurzeln, also 
Nullstellen von $x^2 - r$, bestimmen kann, war unter den 
Mathematikern alter Kulturen in ähnlicher Gestalt bekannt. 
In Indien ist in den Büchern \textbf{\?Sulbasutra\?}, Leitfäden zur Messkunst, 
von etwa 600 v.\,Chr. ein gleichwertiges geometrisches Verfahren angegeben. 
Auf der \cite{Website} können Sie sich das ansehen. Von 
den noch mehr als 1000 Jahre älteren Babyloniern (siehe Einleitung zu diesem 
Kapitel) wissen wir nicht, wie sie zu ihrer sehr genauen Näherung 
für $\sqrt{2}$ gekommen sind, aber auch Sie könnten das Heronverfahren 
verwendet haben.    
Weitere Details zum Heronverfahren stehen in \cite[Abschn. 9.1.2]{HaftendornM}.

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Heronverfahren in iterativ-rekursiver Darstellung}%
\label{sssec:heron_it}%
%###########################################################################
Die Funktion $f(x) = x^2 - r$  hat $\sqrt{r}$ als positive Nullstelle. Es 
bietet sich das Newtonverfahren an, seine \?Trägerfunktion\? 
\Index{Funktion!Traeger@Träger\~}%
ist dann gegeben durch
$g(x) = x - \frac{f(x)}{f'(x)} = x - \frac{x^2 - r}{2x} = 
\frac{1}{2}x + \frac{r}{2x}=\frac{1}{2}\left(x+\frac{r}{x}\right)$.

%\vspace{-5mm}
\begin{merke}\label{merke:heronformel}% 
Das \textbf{Heron\Index[Heron von Alexandria!\~]{verfahren}} erzeugt mit 
beliebigem positivem Startwert 
\boldmath{$x_0$  und der rekursiven Formel
\[ 
  x_{n+1}=\frac{1}{2}\left(x_{n}+\frac{r}{x_{n}}\right) 
\]
eine rekursive Folge $(x_n)$, die superschnell gegen $\sqrt{r}$ konvergiert.
}% Ende boldmath
\end{merke}

\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/heron-newton} %eps nicht schreiben
\caption[Heronverfahren, rekursiv]{\textbf{Das Heronverfahren als Rekursion.} 
  \textbf{a)} zeigt eine Parabel mit der Nullstelle $\sqrt{r}$, die mit dem 
Newtonverfahren approximiert wird. \textbf{b)} 
verfolgt mit dem Startwert $x_0$ die Heronfolge im gekoppelten Fenster in der 
iterativen Treppendarstellung. Wenn Sie in GeoGebra auf der \cite{Website} 
$x_0$ oder den Radikanden $r$ verändern, reagieren beide Darstellungen 
gemeinsam. In Bild b) ist die Trägerfunktion eine Hyperbel.
}
\label{fig:heron-newton} 
\end{smallfigure}
%\vspace{-3mm}
\noindent%
Die Rekursion hat den Fixpunkt in $x_s=\sqrt r$. Wie beim Newtonfahren für 
einfache Nullstellen schneidet die Trägerfunktion 
die Winkelhalbierende mit waagerechter Tangente: \\
Es ist $g'(x)=\frac{1}{2}\left( 1-\frac{r}{x^2}\right)$, 
also $g'(x_s) = \frac{1}{2}(1-1) = 0$.
Die Heronfolgen konvergieren deshalb immer quadratisch, d.\,h. superschnell.
 
\begin{aufgabe}[Heronverfahren für höhere Wurzeln]
\noindent%
Ein Vorschlag für eine Verallgemeinerung des Heronverfahrens zur Berechnung 
von $\sqrt[k]r$ ist die Rekursion
\[
  x_{n+1}=\frac{1}{2}\left(x_n+\frac{r}{x_n^{k-1}}\right).
\]
Berechnen Sie den Fixpunkt und untersuchen Sie die Konvergenz bzw. Divergenz.
Erhält man dasselbe, wenn man stattdessen wieder mit dem Newtonverfahren 
arbeitet? 
Variieren Sie in der GeoGebra-Datei dazu auf der \cite{Website} das $k$ 
und sehen Sie sich die Entwicklung der Treppchen an.
\label{anreg:ktewurzeln}\hinweisende
\end{aufgabe}

%#################################################
\subsubsection{Fazit zur Nullstellenbestimmung}%
\label{sssec:NullstellenFazit}%
%##############################################################
Die superschnelle Konvergenz des Newtonverfahrens scheint dafür zu sprechen, 
dieses immer einzusetzen. Allerdings ist die Voraussetzung der 
Differenzierbarkeit von $f$ nahe der Nullstelle und das Problem, einen 
geeigneten Startpunkt zu finden, manchmal von Nachteil. Dann können das 
Sekantenverfahren oder sogar das Bisektionsverfahren hilfreich sein. 
Der große Vorteil des letzteren ist, dass man außer der Stetigkeit von $f$
keine weiteren Voraussetzungen braucht. Es funktioniert sogar dann, wenn man 
Schwierigkeiten hat, die Funktionswerte auszurechnen, es muss nur möglich 
sein, das Vorzeichen sicher bestimmen zu können.

Für das \?Sekantenverfahren\? gibt es eine Variante mit einer
Konvergenz\Index[Konvergenz!\~]{ordnung} von $\Phi \approx 1.618$, 
wobei $\Phi$ das 
Verhältnis des goldenen \INDEX[, goldener]{Schnitt}s ist. Die Variante besteht 
darin, dass man darauf verzichtet, dass $f$ für jedes erreichte Intervall an 
den Intervallgrenzen verschiedene Vorzeichen annimmt und --~was dann erlaubt 
ist~-- als Intervallgrenzen immer die letzten beiden Sekantennullstellen 
nimmt. Von z.\,B. $[x_n,x_{n+1}]$ geht man also immer über zu 
$[x_{n+2},x_{n+1}]$, usw. Allerdings können dann Überraschungsprobleme ähnlich 
wie beim Newtonverfahren auftreten.

In der Praxis liefern GeoGebra und andere Werkzeuge der Mathematik 
problemlos beliebig viele Dezimalzahlen für die Nullstellen fast aller 
denkbaren Funktionen. Insofern brauchen \textbf{Sie} 
das Newtonverfahren bei Verfügbarkeit solcher Tools heutzutage 
ebenso wenig wie die vorher besprochenen Verfahren. Aber davon gibt es Ausnahmen.
Wir finden insbesondere Newtons Idee genial, gut verständlich, und 
eine gute Gelegenheit bietend, die Ideen typischer Iterationsverfahren zu 
erläutern.

%#################################################
\section{Interpolation und Kurven gestalten}\label{sec:interpolation}
%##############################################################

In vielen Anwendungsfällen der Mathematik kennt man einige Punkte 
$P_i=(x_i,y_i)$  und sucht eine "`praktische"' Verbindung zwischen ihnen. Man 
hat z.\,B. eine Messreihe für ein Phänomen und sucht eine mathematische 
Funktions-Kurve durch die Messpunkte. 
Solche \textbf{\?Interpolation\?sprobleme} stellen wir Ihnen in diesem Abschnitt 
vor. Das Wort ist mit dem lateinischen \textit{inter} für "`zwischen"' 
und \textit{polire} für "`glätten"' leicht verständlich. Die Messpunkte 
werden dann von der gesuchten Kurve \textbf{interpoliert}.

\paragraph{Ein \?Polygonzug\?} aus geraden Strecken zwischen den Punkten ist 
natürlich die einfachste Lösung, für $n+1$ Punkte braucht man dann $n$ 
Geradengleichungen. Eine solche 
\textbf{\Index[Interpolation!]{linear}e Interpolation} ist aber nur geeignet,
wenn ein linearer Verlauf gut zu den Punkten passt. Außerdem ist die Ableitung 
an den Punkten unstetig.

\subsection{Interpolation mit Polynomen}\label{subsec:interpolpoly}
Als Funktionstyp kennen Sie die Polynome, siehe Abschnitt~\ref{sssec:polynome}. 
Erfahrungsgemäß ist aber der Begriff des 
\textbf{\INDEX[!\~raum]{Polynom}raumes} $\Pi_n$ der 
Polynome bis zum Grad $n$, der die \textbf{Dimension} $n+1$ hat und die 
Möglichkeit, in ihm verschiedene \textbf{Basen} zu wählen, wenig vertraut. Da 
diese Begriffe in der Fachliteratur, in Wikipedia u.\,s.\,w. dann ohne 
weitere Erläuterungen vorkommen, setzen wir hier einen Schwerpunkt. Aus der 
Vielfalt der Verfahren wählen wir typische aus. 

\paragraph{Die \Index[Polynom!\~raum!]{Standardbasis} des Polynomraumes 
{\boldmath $\Pi_n$ ist $\{1, x, x^2, x^3,\dots, x^{n-1}, x^n\}.\qquad$}}
Dies ist Ihnen von der üblichen Schreibweise der Polynome vertraut. Die $n+1$ 
Elemente der Basis sind \textbf{linear unabhängig}: 
Wir müssen zeigen, dass für eine Linearkombination 
$a_0\cdot x^0 + a_1\cdot x^1 + \dots + a_n\cdot x^n\equiv 0$, 
die das Nullpolynom ergibt, zwingend folgt, dass alle Koeffizienten gleich der 
Zahl Null sind. 
Das Zeichen $\equiv$ heißt \textbf{\und{identisch gleich}}, 
\Index{identisch gleich, $\equiv$}%
es drückt aus, dass 
die Gleichung für \textit{jedes $x$} gelten muss. Nehmen wir $x=0$, so folgt 
$a_0=0$. Damit ist $a_1\cdot x^1 + \cdots + a_n\cdot x^n = 
x(a_1 + \cdots + a_n\cdot x^{n-1})\equiv 0$. Da der erste Faktor $x$ nur eine 
Nullstelle hat, muss auch $a_1 + \cdots a_n\cdot x^{n-1}\equiv 0$ sein. Wegen 
der Stetigkeit dieses Terms darf man auch $x=0$ einsetzen. Daraus ergibt sich 
wie eben $a_1=0$, u.\,s.\,w. Deshalb müssen alle Koeffizienten 0 sein. $\Pi_n$ 
ist also $n+1$-dimensional, das kann man auch an der Zahl der Koeffizienten 
$a_0,a_1,\dots,a_n$ festmachen.

Sind zwei Polynome identisch gleich, so müssen die Koeffizienten von $x^i$ 
für \textit{jedes i} übereinstimmen, man nennt diesen Schluss auch 
\textbf{\?Koeffizientenvergleich\?}. 

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Parabel durch drei gegebene Punkte}%
\label{sssec:para-3-pkte}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Eine \?Parabel\? durch drei gegebene Punkte $P_i=(x_i,y_i),\ i=0,1,2$,
findet man in der Standardbasis durch die Auflösung 
der drei Gleichungen für die Koeffizienten
\begin{align*} y_0&=a_0+a_1\cdot x_0+ a_2\cdot x_0^2,&\mbox{z.\,B.}&&2=a_0+a_1
\cdot 1+ a_2\cdot 1^2&\quad\mbox{für}&P_0=(1,2),\cr
               y_1&=a_0+a_1\cdot x_1+ a_2\cdot x_1^2,&\mbox{z.\,B.}&&1=a_0+a_1
\cdot 2+ a_2\cdot 2^2&\quad\mbox{für}&P_1=(2,1),\cr
	             y_2&=a_0+a_1\cdot x_2+ a_2\cdot x_2^2,&\mbox{z.\,B.}&&4=a_0+a_1
\cdot 3+ a_2\cdot 3^2&\quad\mbox{für}&P_2=(3,4).
	\end{align*}
Die gesuchten Koeffizienten sind $a_0=7,a_1=-7,a_2=2$, die die 
Parabel $y=7-7x+2x^2$ ergeben. In so einem kleinen Beispiel geht das von 
Hand, natürlich auch mit jedem Werkzeug, das lineare Gleichungssysteme lösen 
kann. Mit \?GeoGebra\? erhält man mit der Liste der Punkte und dem Kommando 
\verb#Polynom({P0,P1,...,Pn})# \textbf{das} Interpolationspolynom vom 
Grad $n$ durch diese Punkte. Dieses ist nämlich durch die Angabe der Punkte 
\textbf{eindeutig} bestimmt, wenn sie unterschiedliche Abszissen haben.
Sogar eine Tabellenkalkulationssoftware wie \?Excel\? kann das 
Interpolationspolynom zu konkret gegebenen Punkten angeben. Dort wird es 
"`Trendlinie"' genannt, eine ungeschickte Übersetzung, denn gerade außerhalb 
der gegebenen Punkte sollte man das \textit{Inter\/}polationspolynom 
i.\,d.\,R. nicht verwenden. 

Wie aber wird in der Software das 
\Index{Polynom!Interpolations\~|(}%
\und{Interpolationspolynom} berechnet? Das oben 
angedeutete Gleichungssystem ist für größere $n$ numerisch nicht gut 
geeignet, man sagt auch: \textbf{schlecht \und{konditioniert}}. 
\Index{Algorithmus!Kondition}%
Wir stellen im 
Folgenden zwei bessere Ansätze vor. 

%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{\und{Lagrange-Polynom} zu \boldmath $n+1$ Punkten}%
\label{sssec:lagrangepoly}%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\Index{Lagrange, Joseph-L.!\~-Polynome}%
Der Übersichtlichkeit halber sei $n=3$. Es lässt sich alles Folgende leicht 
auf allgemeinen Grad übertragen.
Wir suchen ein Polynom durch die vier Punkte $A,\,B,\,C,\,D$, genannt 
\textbf{Stützpunkte}, 
\Index{Stuetzp@Stützpunkte}%
wegen der besseren Lesbarkeit ohne Indizes. Es sei 
$A=(A_x,A_y),\ B=(B_x,B_y),\ C=(C_x,C_y),\ D=(D_x,D_y)$.  
Lagrange baut nun vier Basis-Polynome $L_A,\ L_B,\ L_C$ und $L_D$ aus je drei 
Linearfaktoren auf:
%\pagebreak% LAYOUT
\begin{align*}
  L_A(x)&=\hphantom{(x-A_x)}(x-B_x)(x-C_x)(x-D_x)\\
  L_B(x)&=(x-A_x)\hphantom{(x-B_x)}(x-C_x)(x-D_x)\\
  L_C(x)&=(x-A_x)(x-B_x)\hphantom{(x-C_x)}(x-D_x)\\
  L_D(x)&=(x-A_x)(x-B_x)(x-C_x)
\end{align*}
Jedes Polynom hat drei der Stützstellen als Nullstelle und genau 
eine --~welche ihm den Namen gibt~-- nicht. 
Darum kann z.\,B. $L_A$ nicht aus $L_B$, $L_C$ 
und $L_D$ linear kombiniert werden. 
Diese drei haben nämlich bei $A_x$ eine Nullstelle, jede Linearkombination von 
ihnen hat dann auch dort eine Nullstelle und kann damit nicht $L_A$ sein. Die 
\textbf{vier Lagrange-Polynome sind also linear unabhängig}. Sie bilden 
daher eine \textbf{\Index[Polynom!\~raum!]{Basis}} 
im Polynomraum $\Pi_3$, der alle Polynome bis zum 
Grad 3 enthält. Darunter ist auch das gesuchte Interpolationspolynom $f$, das 
durch $A,\,B,\, C$ und $D$ verläuft. Dieses lässt sich also schreiben als 
Linearkombination
{\boldmath 
\[
  f(x)=c_a\cdot L_A(x)+c_b\cdot L_B(x)+c_c\cdot L_C(x)+c_d\cdot L_D(x).
\]}% Ende Boldmath  
\vspace{-5mm}
\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/lagrange-poly}
\caption[Lagrange-Polynom]{\textbf{Interpolation nach Lagrange.}
\textbf{a)} zeigt Lagrange-Basis-Polynome, die an genau 3 Stützstellen 
Nullstellen haben.
In \textbf{b)} wird z.\,B. der Faktor $c_b$ für 
$L_B(x)$ gefunden, der $L_B$ so staucht, dass $B$ auf dem Graphen liegt.
Das rote Interpolationspolynom entsteht auf diese Weise.
} 
\label{fig:lagrange-poly}
\end{smallfigure}
\noindent%

In Abb.~\ref{fig:lagrange-poly}\,a) sind die an die Stützstellen angepassten 
Lagrange'schen Basis-Polynome dargestellt. In der GeoGebra-Datei kann nun auf 
der \cite{Website} interaktiv stets ein Streckfaktor gefunden werden, der dafür 
sorgt, dass die gestreckten Polynome jeweils \textit{ihren} Stützpunkt 
erreichen. In Abb.~\ref{fig:lagrange-poly}\,b) ist das für $L_B$ und
Punkt $B$ gestrichelt gezeigt. Addiert man nun \textit{diese Polynome}, so 
verläuft die Summe weiterhin durch $B$, denn alle anderen haben ja an dieser 
Stützstelle eine Nullstelle. Darum ist durch diese Linearkombination 
\textbf{das} Interpolationspolynom konstruiert. 
Es ist wegen der Basis-Eigenschaft eindeutig bestimmt. Selbstverständlich kann 
man die passenden Koeffizienten auch ausrechnen:
\[
c_a=\frac{A_y}{L_A(A_x)}, \ c_b=\frac{B_y}{L_B(B_x)},\ 
c_c=\frac{C_y}{L_C(C_x)},\ c_d=\frac{D_y}{L_D(D_x)}.
\]
\textbf{Anmerkung:} In Formelsammlungen und meist auch in Büchern wird nicht 
herausgestellt, dass Lagrange mit diesem Vorgehen eine geniale, an das 
Problem angepasste Basis gegeben hat, sondern es werden vier lange Brüche mit 
je drei  Klammerausdrücken in Zähler und Nenner und noch einem Faktor 
genannt. Wir finden aber unseren Weg zum Verständnis besonders lehrreich. 
Grundlagen zu den Begriffen aus der linearen Algebra können Sie in Abschnitt~
\ref{sssec:basis+dim} und in Beispiel~\ref{ex:basis-fkt-raum} lesen.

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Beispiel aus der \?Wirtschaftsmathematik\?,} bei dem in 
Abb.~\ref{fig:lagrange-wirtschaft} die \?Kostenfunktion\? (rot) durch ein 
Lagrange-Polynom realisiert wird. In Lehrbüchern zu diesem Thema wird eine 
konkrete Kostenfunktion $K$, die etwa die gezeigte Gestalt hat, als Start 
vorgegeben, sie fällt "`vom Himmel"'. In Wahrheit werden im Bereich 
Controlling einer Firma Daten erhoben, die zur Kostenfunktion führen. Stellen 
wir uns vereinfacht vor, es seien die Fixkosten $K_f$ für $x=0$ und die drei 
weiteren Punkte $B,\ C$ und $D$ aus dem Graphen von $K$ so gefunden worden. 
Das Polynom durch diese Punkte wird mit der Lagrange-Methode 
bestimmt. Mit diesem Beispiel sollen Sie erfahren, wie \textit{sensibel alles}, 
was dann noch in der Wirtschaftsmathematik damit gemacht wird,
\textit{auf die Lage dieser Punkte reagiert}.  
%
\begin{figure}[htbp]
\includegraphics{figuresHoema/lagrange-wirtschaft}
\caption[Kostenfunktion als Lagrange-Polynom]{\textbf{Kostenfunktion als 
Lagrange-Polynom}, aus ihr wird alles, was noch dargestellt ist, berechnet. 
Erfahren Sie auf der \cite{Website} zum Buch durch Ziehen an den gegebenen Punkten, 
wie überraschend deutlich die Wirtschaftsaussagen, die sich daraus ergeben, 
auf kleine Änderungen der Lage reagieren.
} 
\label{fig:lagrange-wirtschaft}
\end{figure}
%
Die Namen der Funktionen und Elemente sind in 
Abb.~\ref{fig:lagrange-wirtschaft} rechts angegeben, wir können hier nicht 
ihren Sinn erklären. Die 
Variable $x$ beschreibt die hergestellte Menge, die Ordinate einen 
zugehörigen Preis. Nur kurz zur Berechnung: $\mbox{\rm Kgrenz}(x) = 
K'(x),\ \mbox{\rm stueckk}(x) = \frac{K(x)}{x},\ \mbox{\rm stueckkv}(x) = 
\frac{K(x)-K_f}{x}$. Im Bild sind die 
"`variablen Kosten"' $K_v(x)=K(x)-K_f$ rosa eingetragen. Die 
Schnittpunkte $F$ und $G$ legen die Größen BM und BO fest, die ein Ziel dieser 
Rechnungen sind. 
Sie sehen, dass die wichtige rote Strecke auf der x-Achse eine ganz andere 
Lage bekommt, wenn man z.\,B. an $D$ ein wenig zieht. 

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Newton-\INDEX[!Newton-\~e]{Polynom} zu \boldmath $n+1$ Punkten}%
\label{sssec:newtonpoly}%
%###########################################################################
Wir betrachten wieder zunächst $n=3$. Die Konstruktion des 
Interpolationspolynoms nach Newton verwendet andere 
\Index[Polynom!\~raum!]{Basis}polynome als die Interpolation nach Lagrange. 
Für die Stützpunkte $A,\,B,\,C,\,D$ sind es die Polynome 
{\boldmath 
\begin{align*}
  N_0(x)=1,\qquad &&N_1(x)=(x-A_x),\qquad\\
  N_2(x)=(x-A_x)(x-B_x) &&N_3(x)=(x-A_x)(x-B_x)(x-C_x). 
\end{align*}
Kommt nun ein weiterer Stützpunkt $E$ hinzu, wird die Basis einfach 
um 
\[
  N_4(x)=(x-A_x)(x-B_x)(x-C_x)(x-D_x)
\] 
}% ende boldmath
erweitert. Diese Flexibilität bzgl. der Anzahl der Stützpunkte ist der 
Vorteil des Newton-Verfahrens. Beim Lagrange-Verfahren müssten \textit{alle 
bisherigen} Basispolynome um einen Linearfaktor erweitert und ein neues 
hinzugenommen, also im Grunde alles neu gerechnet werden.

\begin{figure}[htbp]
\includegraphics{figuresHoema/newton-interpolation}
\caption[Newton'sches-Interpolations-Polynom]{\textbf{Das Newton'sche-
Interpolations-Polynom} ist eine Linearkombination der Newton'schen 
Basispolynome, die aus immer mehr Linearfaktoren $(x-\mbox{Stützstelle})$ 
aufgebaut sind und mit den passenden Koeffizienten immer mehr Stützpunkte 
genau treffen.
} 
\label{fig:newton-interpolation}
\end{figure}

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Die Newton'schen Grundpolynome bilden wirklich eine Basis.} Sie 
sind linear unabhängig:
Aus $n_0\cdot N_0(x)+n_1\cdot N_1(x)+n_2\cdot N_2(x)+n_3\cdot N_3(x)\equiv 0$ 
folgt bei Einsetzung von $x=A_x$ sofort $n_0=0$, denn alle anderen 
Grundpolynome haben $A_x$ als Nullstelle. Einsetzung von $B_x$ erzwingt $n_1=0$ 
und so fort. 

Die Koeffizienten einer Linearkombination können sukzessive so gewählt werden, 
dass alle Stützpunkte erreicht werden. In Abb.~\ref{fig:newton-interpolation}
a) sind alle Basispolynome und das fertige Interpolationspolynom gezeichnet. 
In b) wird klarerweise $n_0 = A_y$ gesetzt, damit geht $n_0\cdot N_0(x)$ durch 
A. $n_0\cdot N_0(x)+n_1\cdot N_1(x)$ geht wegen der Nullstelle von $N_1(x)$ 
automatisch auch durch $A$. Durch geschickte Wahl von $n_1$ erreicht man $B$: \\
$B_y = n_0\cdot N_0(B_x)+n_1\cdot N_1(B_x) = A_y + n_1\cdot (B_x-A_x)$ hat die 
Lösung $n_1=\frac{B_y-A_y}{B_x-A_x}$, damit 
ist $n_1$ die Steigung der Geraden durch $A$ und $B$ und $f_1(x)=A_y+n_1\cdot 
N_1(x)$ ist die Gerade durch $A$ und $B$ in Punkt-Steigungsform. \\
In c) ist $f_1(x) = n_0\cdot N_0(x)+n_1\cdot N_1(x)$ zusammen mit $N_2(x)$ 
(durchgezogen-violette Parabel) zu 
sehen. Wieder geht die Linearkombination $f_1(x) + n_2\cdot N_2(x)$ 
(für $n_2=1$ als schwarze Parabel)
automatisch durch $A$ und $B$. Um auch $C$ zu treffen, löst man die analoge 
Gleichung $C_y = f_1(C_x)+n_2\cdot N_2(C_x)$ mit Lösung 
$n_2=\frac{C_y-f_1(C_x)}{N_2(C_x)}$ (violett gestrichelte Parabel). \\
d) zeigt den letzten Schritt auf gleiche Weise, und e) bezieht sogar noch $E$ 
mit ein. So hangelt man sich weiter von 
Stützpunkt zu Stützpunkt und erhöht bei jedem Schritt den Grad des 
Interpolationspolynoms um 1. Bei $n+1$ Punkten hat man Grad $n$ erreicht. 

%#############################################################################
\subsection{Interpolation mit kubischen Splines}\label{subsec:interpolkubi}
%############################################################################

Jeder weiß, dass die 
\textbf{Gauß\Index[Gauß!\~]{'sche Glockenkurve}} 
$\varphi(x)=\frac{1}{\sqrt{2\pi}}\e^{-\frac{x^2}{2}}$ für die Stochastik eine 
zentrale Rolle spielt als Wahrscheinlichkeitsdichte der Normalverteilung.
Ihre Werte lassen sich leicht berechnen, aber die für statistische 
Aussagen wichtigen Integrale müssen numerisch 
bestimmt werden, siehe Abschnitt~\ref{sec:int-num}. Daher ist es zunächst 
naheliegend, ein Interpolationspolynom für in Anwendungen relevante 
Bereiche zu verwenden, denn Polynome lassen sich leicht exakt integrieren. 
Dieses Vorgehen zeigt Abb.~\ref{fig:interpol-gauss}\,a). 
                                                                               
\begin{figure}[htbp]
\includegraphics{figuresHoema/interpol-gauss}
\caption[Gauß'sche Glockenkurve und Interpolationspolynom]{\textbf{Gauß'sche 
Glockenkurve und Interpolationspolynom. a)} Die Punkte $A,\,\dots,\,G$ liegen 
auf der Glockenkurve, das blaue Interpolationspolynom passt nach 
Sicht brauchbar in deren Bereich. 
\textbf{b)} Wie gut die Passung wirklich ist, sieht man 
durch Visualisierung der Differenzen zur Glockenkurve. Für verschiedene 
Stellungen von $F$ zwischen $A$ und $G$ ist je eine solche "`Fehlerkurve"' 
gezeichnet. 
} 
\label{fig:interpol-gauss}
\end{figure}
\noindent%
Wenn in Abb.~\ref{fig:interpol-gauss} a) der Punkt $F$ zwischen $A$ und $D$ in 
0.1-Schritten wandert, ergibt sich in b) in jeder Stellung eine andere grüne 
\textit{Fehlerkurve}, die die Abweichung des Interpolationspolynoms zu 
$\{A,B,C,D,E,F,G\}$ von der Gauß'schen Glockenkurve darstellt. An jeder 
Stützstelle hat die Fehlerkurve eine Nullstelle. Es zeigt sich aber eine 
verblüffende Tatsache: Das tiefste Minimum rechts kommt 
zustande, wenn $F$ dicht bei $A$ ist.\\
Allgemein gilt: 
\vspace{-3mm}
\begin{merke}
Interpolationspolynome neigen zwischen ihren Stützstellen zum 
"`Ausschwingen"': Die Veränderung 
eines Stützpunktes hat deutliche Wirkung auf das gesamte Polynom, auch in 
großer Abszissen-Entfernung.  
\end{merke}
\noindent%
Daher sind weitere Interpolationsmethoden nötig, die dieses Verhalten 
abmildern. Eine solche Methode benutzt \textbf{Spline-Funktionen}.
\Index{Polynom!Interpolations\~|)}%
Da das "`Ausschwingen"' umso stärker ist, je größer der Grad des Polynoms 
ist, ist die Idee der Splines, Polynome kleinen, meist dritten Grades, 
aneinanderzustückeln und dabei an den Schnittstellen geeignete 
Differenzierbarkeitsbedingungen einzuhalten. Das wollen wir uns im Folgenden 
näher ansehen.

%##############################################################################
\subsubsection{Einsatz kubischer Splines im Schiffbau}%
\label{sssec:spline-schiff}%
%##############################################################################
Das englische Wort \textit{spline} heißt auf Deutsch 
(genauer auf Plattdeutsch) 
\textit{\?Straklatte\?}. Es handelt sich um einen schmalen Streifen aus 
elastischem Holz oder Kunststoff, der auf dem Bauplan, von einigen Nägeln 
geführt, eine \textbf{Stellung mit minimaler \?Biegespannung\?} einnimmt. Stellt 
man dann in dieser Form Spanten, Planken und andere Bauelemente her, so 
stehen sie später nicht unter unnötiger Spannung. Mathematisch liefert dieses 
Verfahren genau die Splines, die wir untersuchen wollen.

In der Wismarer Bucht waren einige Bruchstücke eines Schiffes von 1354, aus 
der Zeit der Hanse,  entdeckt worden. Man kann sich vorstellen, 
wie beim Nachbau der Kogge, siehe Abb.~\ref{fig:poelerkogge}, die Form des 
tragenden dicken Balkens mit einer solchen Straklatte gefunden wurde.

\begin{smallfigure}[htbp]
\includegraphics[width=9.5cm]{figuresHoema/poelerkogge3}
\caption[Splines an der Poeler Kogge]{\textbf{Poeler Kogge und Splines.} 
Einsatz von Splines (drei durchgezogene bunte Stücke) für die Balkenform der 
Kogge, die Nägel sind in den Punkten $A,B,C,D$ \\
zu denken.
} 
\label{fig:poelerkogge}
\end{smallfigure}
\textbf{Rechts} sieht man die drei kubischen Polynome, aus denen die 
Spline-Stücke genommen wurden. In gestrichelt-schwarz ist das 
Interpolationspolynom gezeigt. Es passt weniger gut. Dieser Effekt ist in 
Abb.~\ref{fig:BasisKubSplines} noch deutlicher.
\vspace{-5mm}
%###########################################################################
\subsubsection{Bestimmung der mathematischen kubischen Splines}%
\label{sssec:spline-kubisch}%
%#############################################################################
Die Stützpunkte nennen wir hier \textbf{Nägel}. Der 
\textbf{\INDEX[!kubischer \~]{Spline}} besteht 
bei $n+1$ Nägeln aus $n$ \textbf{Polynomen 3. Grades}, die jeweils nur 
zwischen einem Nagel und seinem rechten Nachbarn gelten. An den inneren Nägeln 
sollen die Polynome ohne Knick und mit gleicher 
\Index[Kruem@]{Krümmung} aneinanderpassen. 
Das bedeutet nichts anderes, als dass an den Übergängen zwischen den Polynomen 
die erste und zweite Ableitung den gleichen Wert haben.

Bei $n+1$ Nägeln gibt es also $n$ Polynome vom Grad 3 mit insgesamt $4n$ 
Koeffizienten. An diese stellen wir $4n-2$ Bedingungen: $n$ Polynome müssen je 
2 Nägel treffen, und an den $n-1$ inneren Nägeln müssen 2 Ableitungen 
übereinstimmen. Damit bleiben 2 freie Koeffizienten übrig, so dass man noch zwei
zusätzliche Bedingungen stellen kann, dazu später mehr. Den Rechenaufwand von 
dann $4n$ Gleichungen für $4n$ Koeffizienten kann man entscheidend reduzieren, 
wenn man für jedes Polynom eine spezielle Basis von $\Pi_3$ wählt, die vom 
Intervall zwischen den Nägeln abhängt.

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Polynombasen passend zum \Index[Spline!]{Nagel}-Intervall}  
Wir bezeichnen die Nägel mit $A=(A_x,A_y),\ B=(B_x,B_y),\ \dots,\ N=(N_x,N_y)$,
das Polynom zwischen $A$ und $B$ mit $p_{AB}$, u.\,s.\,w. bis $p_{MN}$. 
Nur im Intervall $[A_x,B_x]$ wird $p_{AB}$ benutzt, u.\,s.\,w. $N$ steht dabei 
allgemein für den letzten Nagel mit der Nummer $n$. 
Damit die Intervalle schön aneinander anschließen,
verlangen wir $A_x<B_x<\dots<N_x$. Wir beschreiben die Basis 
zunächst für den Fall $[A_x,B_x] = [0,1]$ und transformieren sie dann linear auf
beliebige Intervalle. \\
Für das Intervall $[0,1]$ sind die 
\INDEX[!\~funktionen!\~ für kubischen Spline]{Basis}funktionen
{\boldmath
\begin{align*}
  b_0(x) &= 1-x,         & b_1(x) &= \frac{1}{6}(1-x)(x-2)x, \\ 
  b_2(x) &= \frac{1}{6}(x-1)(x+1)x, & b_3(x) &= x.
\end{align*}
}% Ende boldmath
\begin{figure}[htbp]
\includegraphics{figuresHoema/BasisKubSplines}
%\includegraphics[width=4.4cm]{figuresHoema/BasisKubSplinesNatuerl}
%\includegraphics[width=6.7cm]{figuresHoema/SplineKub5Punkte}
\caption[Basisfunktionen für kubische Splines]{\textbf{Basisfunktionen für 
kubische Splines.} 
\textbf{Links:} $b_0,\ b_3$, und 6-fach überhöht $b_1,\ b_2$.
\textbf{Rechts:} Ein damit erstellter natürlicher Spline durch 5 Nägel, in vier 
Farben durchgezogen dargestellt. Die Nägel 
sind auf der \cite{Website} frei verschiebbar. Zum Vergleich ist das 
Interpolationspolynom schwarz gestrichelt dazu gezeichnet. Man sieht, dass der 
Spline wesentlich weniger "`ausschwingt"'. Orange gestrichelt ist das Ergebnis
des GeoGebra-Befehls \texttt{Spline(A,B,C,D,E)}, siehe dazu den Text.
} 
\label{fig:BasisKubSplines}
\end{figure}
Sie sind in Abb.~\ref{fig:BasisKubSplines} zu sehen.
Ähnlich wie die Basis zu den Lagrange-Polynomen ist diese gezielt so gewählt 
worden, dass die Basisfunktionen und deren zweite Ableitungen an den 
Intervallgrenzen 0 und 1 \textbf{alle 0 sind mit Ausnahme von} 
{\boldmath $b_0(0)=1,\ b_1''(0)=1,\ b_2''(1)=1,\ b_3(1)=1$}. 
Das erlaubt es, die Werte und zweiten Ableitungen ihrer Linearkombination, 
also des Spline-Polynoms, in den Nägeln, also in 0 und 1, gezielt zu steuern. 
Auch die \textbf{lineare Unabhängigkeit} 
lässt sich damit leicht zeigen: $b_0$ kann nicht linear von den anderen 
abhängen, denn alle anderen haben in 0 eine Nullstelle, $b_0$ aber nicht. 
$b_1$ kann nicht linear von den anderen abhängen, denn alle anderen haben in 0 
eine Nullstelle der zweiten Ableitung, $b_1$ aber nicht, u.\,s.\,w. 

\noindent%
Ein beliebiges Intervall $[a,b]$ bildet man linear auf $[0,1]$ ab mit 
$s(x):=\frac{x-a}{b-a}$, es ist $s(a)=0,\ s(b)=1$. Die Basisfunktionen auf
$[a,b]$ sind dann einfach 
\begin{align*}
  b_0(s(x)), && (b-a)^2\cdot b_1(s(x)), && (b-a)^2\cdot b_2(s(x)), && b_3(s(x)).
\end{align*} 
Ihre Werte und zweiten Ableitungen an den Intervallgrenzen $a$ und $b$ sind 
wieder fast alle $=0$ bis auf dieselben Ausnahmen wie oben.
Der Faktor $(b-a)^2$ bei $b_1$ und $b_2$ ist 
nötig, damit die zweite Ableitung in $a$ bzw. $b$ 
wieder 1 ist, denn die Kettenregel
angewendet auf die innere Funktion $s$ liefert zweimal 
einen Faktor $\frac{1}{b-a}$.
Wir bezeichnen diese Basispolynome zu den Intervallen $[A_x,B_x],\ \dots$ mit 
$b_i^{AB},\ \dots,\ i=0,\dots,3$.

Wenn man die zweiten Ableitungen der Polynome in den Nägeln als 
$c_A,\ c_B,\ \dots,\ c_N$ vorgibt, dann kann man die Splinepolynome bereits 
angeben:
\[
  p_{AB} = A_y b_0^{AB} + c_A b_1^{AB} + c_B b_2^{AB} + B_y b_3^{AB},
\]
entsprechend für die anderen Intervalle. 
\textbf{Das trifft die Nägel und hat stetige zweite Ableitungen.}
Allerdings sind die zweiten Ableitungen $c_A\ \dots$ eben \textit{nicht} 
vorgegeben, und es soll ja auch die erste Ableitung stetig zusammenpassen. 
Deshalb muss man die zweiten Ableitungen an den $n-1$ inneren Nägeln 
$B,\ \dots,\ M$ so wählen, dass 
das eintritt. Es bleiben also nur $n-1$ Gleichungen statt $4n-2$ übrig, die zu 
lösen sind: die Bedingungen $p_{AB}\,'(B_x) = p_{BC}\,'(B_x)$ u.\,s.\,w. In 
sie gehen die ersten Ableitungen der Basispolynome und die 
Nagelordinaten $A_y,\ \dots,\ N_y$ ein.

Wir führen die Rechnung nur für den einfachen Fall durch, dass 
$A_x=0,\ B_x=1,\ \dots,\ N_x=n$ ist, d.\,h. die Nägel haben immer 
den Abszissenabstand 1. Dann können wir überall verschobene $b_i$
als Basisfunktionen nehmen. Deren erste Ableitungen kann sich der Leser selbst
ausrechnen oder auf der \cite{Website} nachlesen. Die resultierenden 
Gleichungen --~der Übersichtlichkeit halber nur für $n=4$ und in Matrixform~-- 
sehen so aus:
\[
  \begin{pmatrix}
    \color{red}2 & \color{red}1 & \color{red}0 & \color{red}0 & \color{red}0 
\cr
    \color{blue}1 & 4 & 1 & 0 & \color{blue}0 \cr
    \color{blue}0 & 1 & 4 & 1 & \color{blue}0 \cr
    \color{blue}0 & 0 & 1 & 4 & \color{blue}1 \cr
    \color{red}0 & \color{red}0 & \color{red}0 & \color{red}1 & \color{red}2 
\cr
  \end{pmatrix}
  \cdot 
  \begin{pmatrix} \color{blue}c_A \cr c_B \cr c_C \cr c_D \cr \color{blue}c_E  
  \end{pmatrix}
  = 6
  \begin{pmatrix} \color{red}B_y-A_y \cr C_y-2B_y+A_y \cr D_y-2C_y+B_y \cr 
  E_y-2D_y+C_y \cr \color{red}E_y-D_y 
  \end{pmatrix}.
\]
Die roten Einträge gelten zunächst nicht. Dann bleiben für 5 unbekannte 
zweite Ableitungen nur 3 Gleichungen. 
Es fehlen zwei Bedingungen. Zwei Arten werden 
häufig verwendet:
\begin{description}
	\item[Natürlicher Spline] 
    Dieser entsteht auf \textit{natürliche} Weise bei einer Straklatte, denn 
    dort wird an den äußeren Nägeln $A$ und $E$ die Krümmung, also die zweite 
    Ableitung, Null sein, d.\,h. $c_A = c_E = 0$. Damit fallen alle blauen 
    Einträge weg, und man hat 3  Gleichungen für die verbliebenen zweiten 
    Ableitungen.
	\item[Eingespannter Spline] 
    Hier sind die Enden der Spraklatte z.\,B. in einer Mauer horizontal fixiert,
    so dass in $A$ und $E$ die Ableitungen der 
    \INDEX[!kubischer \~!natürlicher/eingespannter]{Spline}funktion 0 
    sind. Diese beiden Bedingungen ergeben die 2 roten
    Gleichungen.
\end{description}
Es ist klar, wie die Gleichungen für mehr Nägel aussehen werden. Für 
unterschiedliche Intervallbreiten zwischen den Nägeln werden die Gleichungen 
unübersichtlicher. Es reicht aber, wenn Sie diese Gleichungen kennenlernen, 
denn in der Praxis lässt man die Bedingung, dass $A_x<B_x<\dots$ ist, fallen. 
Der Spline kann dann evtl. keine \textit{Funktion} mehr sein. In diesem Fall 
wird die Spline\textit{kurve} als 
parametrisierte \Index[Parameterdarstellung!einer ]{Kurve} 
gebildet. So ist es im nächsten Abschnitt~\ref{subsec:bezier} gemacht.
Die x-Koordinaten und die y-Koordinaten der Nägel werden einzeln als 
Spline-\textit{Funktion} eines Parameters $t$ 
erzeugt. Die Nägel werden bei 0 beginnend durchnummeriert, und $t$ als 
unabhängige Variable durchläuft genau den Bereich dieser Nummern. Damit hat 
man für $t$ wieder gleiche Abstände von 1 von Nagel zu Nagel, und das obige 
Gleichungssystem ist genau das richtige. 

Solche \textbf{Splinekurven} sind auch das, was Werkzeuge wie 
GeoGebra oder Mathematica
mit eingebauten Befehlen liefern. Spline-\textbf{Funktionen} sind schwierig 
oder gar nicht zu bekommen. Für GeoGebra lautet das Kommando einfach
\verb#Spline(A,B,C,D,E)#. In Abb.~\ref{fig:BasisKubSplines} ist das Ergebnis 
eines solchen Kommandos im Vergleich mit der Splinefunktion und dem 
Interpolationspolynom zu sehen. Es ergibt sich eine nochmals verbesserte 
Interpolation.
 
%########################################################################
\subsection{Kurvengestaltung mit Béziersplines}\label{subsec:bezier}
%########################################################################

Die kubischen Splines haben immer noch den Nachteil, dass jedes Teilpolynom 
von allen Stützstellen abhängt. Dieser Nachteil wird bei den 
Béziersplines behoben.
\Index{Bezier@Bézier, Pierre Étienne!\~spline}%

\begin{figure}[htbp]
\includegraphics{figuresHoema/Bezier-GeruestOrt}
\caption[Bézierkurve und ihr Gerüst]{\textbf{Bézierkurve} \textbf{a)} 
zusammen mit ihren Steuerpunkten $A,B,C,D$, in  
\textbf{b)} erzeugt aus ihrem "`Gerüst"': Man wählt einen 
Prozentsatz $t$ zwischen 0 und 1, hier $t=0.4=40\%$,
und markiert auf jedem der schwarzen Gerüstvektoren den $40\%$-Punkt von $A$, 
von $B$ und von $C$ aus. Auf den zwei sich daraus ergebenden Vektoren (orange)
werden wieder die  $40\%$-Punkte markiert. Im nächsten Schritt (rosa) hat man 
so den Punkt  $P$ der Bézierkurve erzeugt. Diese ist der geometrische Ort von  
$P$ bei jeder Wahl von $t$. Siehe auch 
Abb.~\ref{fig:Bezier-Parameterkurve} und Seite~\pageref{page:capella}.
} 
\label{fig:Bezier-GeruestOrt}
\end{figure}
\vspace{-5mm}% LAYOUT
%###########################################################################
\subsubsection{Gerüstkonstruktion der Béziersplines und 
Parameterdarstellung}%
\label{sssec:bezier-geruest}%
%###########################################################################
Im Folgenden seien $\vec{A}$, $\vec{B}$,  $\vec{C}$ und $\vec{D}$ die 
Ortsvektoren der vier 
\Index[Bezier@Bézier, Pierre Étienne!\~spline!]{Steuerpunkt}e, 
die man sich mit Koordinaten gegeben 
denkt. Wie üblich sind   $\overrightarrow{AB}=\vec{B}-\vec{A}$ u.\,s.\,w. 
Vektoren, die die Punkte verbinden. Sie bilden das schwarz gestrichelte 
Gerüst. Der Parameter $t$ laufe von 0 bis 1. Dann werden  die mit dem Faktor $
t$ gestauchten Vektoren definiert, man sieht sie in der 
Abb.~\ref{fig:Bezier-GeruestOrt}\,b) am Ursprung. Sie werden an die 
gegebenen Punkte angehängt. So entstehen neue Orte $A',\,B',\,C'$ durch 
$\vec{A'}=\vec{A}+t\overrightarrow{AB}=\vec{A}+ t (\vec{B}-\vec{A})$, $\vec{B'
}=\vec{B}+t\overrightarrow{BC}=\vec{B}+ t (\vec{C}-\vec{B})$ und  $\vec{C'}=
\vec{C}+t\overrightarrow{CD}=\vec{C}+ t (\vec{D}-\vec{C})$. \\
Es folgt der orangefarben dargestellte Schritt mit den neuen Orten $A''$ und 
$B''$ durch  $\vec{A''}=\vec{A'}+t\overrightarrow{A'B'}=\vec{A'}+ t (\vec{B'}-
\vec{A'})$ und   $\vec{B''}=\vec{B'}+t\overrightarrow{B'C'}=\vec{B'}+ t 
(\vec{C'}-\vec{B'})$. \\
Nun ist nur noch als Spitze des durchgezogenen violetten Vektors der gesuchte 
Punkt $P$ zu erhalten: 
$\vec{P}:=\vec{A''}+t\overrightarrow{A''B''} = 
\vec{A''}+ t (\vec{B''}-\vec{A''})$. \\
Setzen wir nun rückwärts alle mit "`Strichen"' versehenen Hilfspunkte ein, so 
dass nur noch die Steuerpunkte dastehen, und sortieren dann nach den 
Steuerpunkten $A,\;B,\;C,\;D$, so erhalten wir die
\vspace{-2mm}% LAYOUT
\begin{merke}[Parameterdarstellung der Bézierkurve]
{\boldmath 
$\quad\quad\quad\vec{P} = (1-t)^3\vec{A} + 3(1-t)^2 t\vec{B} + 
3(1-t)t^2\vec{C} + t^3\vec{D}$ \\
Dabei heißen die vier Polynome \\
$b_0(t)=(1-t)^3$,\hfill $b_1(t)=3 (1-t)^2 t,
\hfill b_2(t)=3(1-t) t^2$,\hfill $b_3(t)=t^3$
} \\% Ende boldmath
\textbf{\INDEX[, Leonid]{Bernstein}polynome 3. Grades}.\\
Sie sind linear unabhängig und spannen den 
Polynomraum $\Pi_3$ auf.
\end{merke} 
\vspace{-5mm}\noindent%
Der letzte Satz wird in Beispiel~\ref{ex:basis-fkt-raum} auf 
Seite~\pageref{ex:basis-fkt-raum} bewiesen.

Damit sind auch die \und{Bernsteinpolynome} 
\Index{Polynom!Bernstein\~e}%
\textbf{kubische Splines}. Benannt sind 
sie nach dem russischen Mathematiker Sergei N. Bernstein, der sie 1911 
vorstellte. Nur zwei der Steuerpunkte, $A$ und $D$, sind Stützpunkte. Die 
anderen zwei Steuerpunkte haben offenbar mit den 
Tangenten in den Stützpunkten zu tun. Das untersuchen wir weiter unten. \\
Unter Verwendung der Koordinaten $A_x,A_y,\dots,D_x,D_y$ der Steuerpunkte kann 
man die \INDEX[darstellung|textbf]{Parameter}form 
der Bézierkurve auch als 
Vektorgleichung schreiben:
{\boldmath
\[
\vec P = \begin{pmatrix} P_x \cr P_y\end{pmatrix},\quad
\begin{array}{cccccc}
	&P_x(t)=&A_x b_0(t)&+\;B_x b_1(t)&+\;C_x b_2(t)&+\;D_xb_3(t) = x(t),\\
	&P_y(t)=&A_y b_0(t)&+\;B_y b_1(t)&+\;C_y b_2(t)&+\;D_yb_3(t) = y(t).
\end{array}
\label{eq:bernstein}
\]
}% boldmath ende 
In Abb.~\ref{fig:Bezier-Parameterkurve}\,c) sind die beiden Summanden für
Stützpunkt $B$ mit dem Bernsteinpolynom $b_1$ dargestellt. Jeder der vier 
Punkte "`regiert"' sein eigenes Bernsteinpolynom. Die Linearkombination ist 
dann der Bézierspline.   

\begin{figure}[htbp]
\includegraphics{figuresHoema/Bezier-Parameterkurve}
\caption[Bézierkurve und Bernstein-Polynome]{\textbf{Bézierkurve als 
Parameterkurve mit Bernstein-Polynomen.} \textbf{a)} zeigt den 
Bézierspline, mit dem man einen Notenbogen anpassen kann, 
siehe Abb.~\ref{fig:Bezier-GeruestOrt} und Seite~\pageref{page:capella}.
\textbf{b)} Die vier Bernstein-Polynome sind eine Basis 
für den Polynomraum $\Pi_3$, wir verwenden sie im Intervall [0,1].
\textbf{c)} zeigt, wie die Koordinaten von $B$ als 
Koeffizienten von $b_1$ in der Parameterkurve wirken.
}
\label{fig:Bezier-Parameterkurve}
\end{figure}
\vspace{-5mm}% LAYOUT
%#############################################################
\subsubsection{Standarddarstellung für 
\INDEX[darstellung!einer Kurve|textbf]{Parameter}kurven}%
\label{sssec:paramdarst}%
%#############################################################
\noindent%
An dem Befehl für Kurven, den man in \?GeoGebra\? verwenden kann (ähnlich in 
anderen Systemen), wird ganz klar, worauf es ankommt:
\verb#Kurve[x(t),y(t),t,start,end]#. Es muss zwei Funktionen geben, die die 
x- und die y-Koordinate eines jeden Kurvenpunktes in Abhängigkeit von $t$  
aus einem Intervall [start, end] angeben.
\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/Bezier-als-Parameterkurve}
\caption[Bézierkurve als Standard-Parameterkurve]{\textbf{Bézierkurve} als 
Parameterkurve.\\
\textbf{Allgemeine Erklärung für Parameterkurven.}\\
Die Koordinaten eines Kurvenpunktes $P$ sind Funktionen $x(t),\ y(t)$ eines 
Parameters $t$. \\
Diese beiden Funktionen sind hier zusätzlich dargestellt, und zwar so, dass 
die Parameterkurve durch die waagerechten und senkrechten gestrichelten 
Linien geometrisch entstehen kann.\\
Auf der \cite{Website} können Sie $t$ ziehen, damit $P$ wandern lassen, aber 
auch das "`Gerüst"' verändern.
} 
\label{fig:Bezier-als-Parameterkurve}
\end{smallfigure}
Links in Abb.~\ref{fig:Bezier-als-Parameterkurve}
ist violett $y=y(t)$ gezeigt, der grüne Pfeil bedeutet die t-Achse für 
diesen Graphen. Auf die Ordinaten kommt es an, sie werden durch die 
gestrichelte waagerechte Strecke nach rechts übertragen und bestimmen so die 
Ordinate des Kurvenpunktes $P$. Damit sich auch die Abszisse von $P$ 
geometrisch ergeben kann,  ist der grüne Bereich für $t$ nun senkrecht 
gestellt und die Funktion $x=x(t)$ muss man durch Drehen der Buchseite so 
betrachten, dass der grüne Pfeil nach rechts zeigt. Man erkennt deutlich, dass 
die Koordinatenfunktionen Polynome 3. Grades sind. Nun werden  die Ordinaten 
von $x(t)$ über die senkrechte gestrichelte Gerade nach oben getragen und 
bilden die Abszisse von $P=(x(t),\,y(t))$. 

%############################################################
\subsubsection{Bedeutung der Summanden in der Parameterdarstellung}%
\label{sssec:sumparam}%
%#############################################################
Die Bézierkurve geht nur durch $A$ (für $t=0$) und $D$ (für $t=1$). Was die 
Ableitungen $\dot x$ von $x(t)$ und  $\dot y$ von $y(t)$ in $A$ angeht, so 
tragen dort nur $b_0$ und $b_1$ etwas von Null verschiedenes bei: 
$\dot b_0(0) = -3,\ \dot b_1(0) = 3$. Die Richtung der Tangente an die 
Bézierkurve wird in $A$ also nur von $B$ beeinflusst. Entsprechendes gilt in 
$D$ für $b_2$ und $b_3$.
\vspace{-2mm}
\begin{figure}[htbp]
\includegraphics{figuresHoema/bezierkrumm}
\caption[Bézierspline und seine Krümmung in $A$]%
{\textbf{\Index[Bezier@Bézier, Pierre Étienne!\~spline!]{Krümmung} des 
Béziersplines in $A$}, dargestellt durch den blauen 
Krümmung\Index[Kruem@Krümmung!\~]{skreis}, mit seiner Spur in GeoGebra.
\textbf{a}) zeigt, dass sich bei Verlängerung von 
$\overrightarrow{AB}$ die Krümmung ändert. 
In \textbf{b)} ändert sich die Höhe $k$ des Dreiecks $ABC$ nicht, wenn $C$ auf 
der Parallelen zu $AB$ wandert, also bleibt die Krümmung gleich. 
\textbf{c)} zeigt beispielhaft, dass eine beliebige Veränderung von $D$ keinen 
Einfluss auf die Krümmung in $A$ hat.
\vspace{-3mm}% LAYOUT
} 
\label{fig:bezierkrumm}
\end{figure}

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Die Gerüstkante bei $A$ und die Kurventangente}
Das Folgende ist in Abb.~\ref{fig:bezierkrumm} dargestellt. Es gilt 
$\dot{y}(t) = A_y\dot{b}_0(t) + B_y\dot{b}_1(t) + C_y\dot{b}_2(t) + 
D_y\dot{b}_3(t) $. 
An der Stelle $t=0$ folgt $\dot{y}(0) = A_y\cdot(-3) + B_y\cdot 3$ 
und ebenso $\dot{x}(0) = A_x\cdot(-3) + B_x\cdot 3$.
Damit ist
$\frac{\dot{y}}{\dot{x}} = \frac{B_y-A_y}{B_x-A_x}$. 
Daher ist die Gerüstkante bei $\overrightarrow{AB}$ die Hypotenuse eines 
Steigungsdreiecks der Tangente an die Kurve in $A$. Entsprechendes gilt für $D$
und die Gerüstkante $\overrightarrow{CD}$. Mit $B$ und $C$ steuert man also, 
unter welcher Steigung die Kurve in den beiden Stützpunkten aus- bzw. 
eintreten soll. Die beiden Gerüstkanten sind Kurventangenten.

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Die Gerüstkante bei $A$ und die Kurvenkrümmung} Wenn 
Sie auf der \cite{Website} zum Buch tatsächlich in den 
GeoGebra-Dateien zu den hier in Abb.~\ref{fig:Bezier-GeruestOrt} 
gezeigten Bézierkurven mit den Steuerpunkten "`spielen"', so wird 
Ihnen auffallen, dass ein größerer Abstand von $A$ und $B$ bewirkt, dass die 
Bézierkurve länger in der Nähe der Gerüstkante  bleibt. Wie könnte man das 
mathematisch fassen? 

\noindent% LAYOUT
Eine naheliegende Idee ist es, die \textbf{Krümmung \boldmath $\kappa$ der 
Kurve in $A$} zu betrachten. 
Mit der Formel für die \Index[Kruem@]{Krümmung} von Parameterkurven, siehe 
Satz~\ref{lem:kruemmung}, einem CAS und einem 
geschickten Konzept, die Dreiecksfläche $ABC$ mit dem Kreuzprodukt zu 
berechnen, siehe Satz \ref{lem:cross-spat}, 
kann man die Formel $\kappa = \frac{2 k}{3 \norm{\overrightarrow{AB}}^2 }$ 
herleiten, $k$ ist dabei die Höhe von $C$ auf $\overline{AB}$ im Dreieck 
$ABC$. Dies können Sie auf der \cite{Website} 
genauer nachlesen. Spannend ist, dass sich damit zeigt, dass die Krümmung 
in $A$ gar nicht von $D$ abhängt und auch für alle anderen $C'$ auf einer 
Parallelen durch $C$ zu $\overline{AB}$
konstant bleibt, da sich ja $k$ nicht verändert. So zeigen es auch 
Abb.~\ref{fig:bezierkrumm}\,b) und c).

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Anwendungen.}\label{page:capella}%
In Abb.~\ref{fig:Bezier-Parameterkurve}\;a) macht sich das 
Notenschreibprogramm \?Capella\?\textsuperscript{\textregistered}
diese Eigenschaften zu Nutze. Der \?Notenbogen\? ist ein Bézierspline. Nach dem 
Anklicken desselben hat der Schreiber Gelegenheit, den Bogen in beliebiger 
Weise zu formen.\footnote{Der Erfinder des Programms Capella, Hans-Ulrich 
Werner,  war Musik- und Mathematiklehrer.} Auch in den verschiedenen Foto- 
und Mal-Programmen kann man das Zeichnen von \textit{Bézierkurven} 
auswählen. Es entstehen dann \textit{Ankerpunkte} oder 
\textit{Interpolationspunkte}, englisch \textit{vertices}, bei uns Stützpunkte 
genannt, durch die die Kurve wirklich verläuft, und 
\textit{Steuerungsziehpunkte} oder \textit{Kontrollpunkte},
\Index{Kontrollpunkte, \textbf{handles}} englisch 
\textit{handles}, mit denen man die Kurve auch 
nachträglich noch modellieren kann. Wir verwenden "`Steuerpunkte"' 
als Oberbegriff für Stützpunkte und Steuerungsziehpunkte. 
\Index{Stuetzp@Stützpunkte!\textit{vertices}}% 
Nun haben Sie erfahren, was 
dahintersteckt. Gleichungen bleiben dem Nutzer verborgen. Das Ziel ist die 
ansprechende Gestaltung und nicht die Mathematik. Aber ohne Mathematik könnte 
man diesen Komfort nicht haben.

%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Raumflächengestaltung mit Bézierflächen}%
\label{subsec:raumbezier}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Der französische Ingenieur Pierre Étienne Bézier
\Index{Bezier@Bézier, Pierre Étienne!\~spline}%
verbrachte 42 Jahre seines Berufslebens bei dem Autobauer Renault und
entwickelte 1960 die nun nach ihm benannten Kurven und Flächen, um ein 
mathematisches Konzept für Karosserieteile der Autos 
zu haben. Vorher wurden "`echte"' Modelle für solche \textit{Freiformen} 
hergestellt. Stellen Sie sich bei den folgenden Bildern vielleicht 
Kotflügel vor.

Abb.~\ref{fig:bezier-flaeche} zeigt das grundsätzliche Vorgehen. Zu 4 mal 4 
gleichmäßig angeordneten Punkten der xy-Ebene werden in einer Matrix 
z-Ordinaten angegeben. Man kann sie in GeoGebra auf der \cite{Website} 
interaktiv ändern. Diese 
16 Punkte bilden das Gerüst, aus dem allein auf die in b)
angegebene Weise die \Index[Parameterdarstellung!einer ]{Raumfläche} 
berechnet wird. Wir geben hier die Mathematica bzw. die \?GeoGebra\?-Syntax an:

\begin{center}
\verb#bezier=ParametricPlot3D[stpoly[s,t],{s,0,3},{t,0,3}]#  
bzw. \verb#bezier=Oberfläche(s,t,stpoly(s,t),s,0,3,t,0,3)#
\end{center}

\begin{figure}[htbp]
\includegraphics{figuresHoema/bezier-flaeche}
\caption[Bézierfläche und ihr Gerüst]{\textbf{Bézierfläche}, erzeugt aus 
ihrem "`Gerüst"': \textbf{a)}  Realisierung in Mathematica. \textbf{b)} Für 
die Realisierung in GeoGebra nennt man im Tabellenfenster die z-Ordinaten für 
die Stützpunkte. Daraus wird eine Matrix $ordi$ erzeugt, auf deren 
Komponenten man mit Indizes zugreifen kann. In griffiger Mathematica-Syntax 
ist in b) unten gezeigt, wie daraus mit den Bernsteinpolynomen die 
z-Komponente der Parameterdarstellung erzeugt wird. Sie ist ein Polynom 6. 
Grades in s und t. \textbf{c)} Realisierung im 3D-Fenster von GeoGebra.
} 
\label{fig:bezier-flaeche}
\end{figure}
\noindent%
Der in GeoGebra gewählte Begriff \textit{Oberfläche} ist u.\,E. nicht 
günstig, \?Raumfläche\? wäre besser, im Englischen ist es \textit{surface}. 

Sie sehen, dass die vier äußersten Ecken von der Raumfläche wirklich 
getroffen werden und dass dort die Gerüstkanten auch wirklich Tangenten sind. 
Insofern sind die Bézier\Index[Bezier@Bézier, Pierre Étienne!\~]{fläche}n 
eine Verallgemeinerung der Bézierkurven der vorherigen Abschnitte.
Die \textbf{NURBS}  des nächsten Abschnitts sind nun wiederum eine 
Verallgemeinerung der Bézierflächen.

%****************************************************************************
\section{B-Splines und NURBS}\label{sec:B-Splines-NURBS}
% Beearbeitung DH , Bilder DH
%****************************************************************************

Unsere \und{Bézierkurven} (und auch -flächen) 
\Index{Bezier@Bézier, Pierre Étienne!\~kurve}
\Index{Bezier@Bézier, Pierre Étienne!\~fläche}%
sind noch gar keine Splines, 
wie wir sie von den kubischen
Splines her kennen, denn bisher haben wir sie nur für ein Intervall $t\in[0,1]$
definiert. Zu richtigen Splines werden sie, 
wenn wir mehrere solche Bézierkurven
aneinanderhängen. Dies soll natürlich wieder so geschehen, dass an den 
Übergangsstellen Stetigkeit und möglichst hohe Differenzierbarkeit erreicht 
wird. Die Vorgehensweise ist anders als bei den kubischen Splines und lässt 
sich auf verschiedene Weise variieren. Wir werden meistens nur Kurven 
betrachten. Aber in Abschnitt~\ref{sssec:NURBS-Praxis} zeigen wir 
einen räumlichen NURBS.

%****************************************************************************
\subsection{Béziersplines auf einem größeren Parameterintervall}
\label{bezier-erweitert}
%****************************************************************************
\begin{figure}[htbp]
\includegraphics{figuresHoema/bernstein-Sum-Dopp}
\caption[Bernsteinkurven, ihre Summe und Anwendung]{\textbf{Bernsteinpolynome 
3. Grades,} wie sie für 
Bézier\Index[Bezier@Bézier, Pierre Étienne!\~]{spline}s verwendet werden.
\textbf{a)} als Graphen,
\textbf{b)} gestapelt, ihre Summe ist $=1$ für jedes $t$ 
im Intervall $[0,\,1]$, 
\textbf{c) Erweiterung} mit drei weiteren Steuerpunkten und einer weiteren 
Bézierkurve: die Gesamtkurve ist i.\,A. an der Nahtstelle nicht differenzierbar.
}
\label{fig:bernstein-Sum-Dopp}
\end{figure}
\noindent%
Abb.~\ref{fig:bernstein-Sum-Dopp}\,a) stellt die \textbf{Basis der 
Béziersplines}, die vier \textbf{\und{Bernsteinpolynome}}, 
\Index{Polynom!Bernstein\~e}%
in gemeinsamer Ansicht 
dar. Jeder Punkt $P(t)=(P_x(t),\,P_y(t))$ des Splines ist 
eine Linearkombination der Bernsteinpolynome mit den vier Steuerpunkten als 
Koeffizienten, siehe Abschnitt~\ref{sssec:bezier-geruest}. 
Die Abb.~\ref{fig:bernstein-Sum-Dopp}\,b) zeigt nun eine Eigenschaft, die wir 
bei Erweiterung des Konzeptes beibehalten müssen: Die Basispolynome auf dem 
Parameterintervall $[0,1]$ \textbf{zerlegen die 1}, d.\,h. ihre Summe ist für 
jedes $t$ gleich 1. 

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Was macht man, wenn man Kurven mit mehr als 4 Steuerpunkten 
haben will?}  Man hängt 
einfach ein neues Grüppchen von 4 Steuerpunkten an, wobei aber der 
schon vorhandene letzte Punkt als neuer erster genommen wird. Die 
Punkte sind also nun $A,\ B,\ C,\ D$ und $D,\ E,\ F,\ G$. Der 
Parameter $t$ läuft jetzt für beide Teile zusammen von 0 bis 2. 
Für $t\in[0,1]$ bleibt alles wie gehabt. Das Ergebnis zeigt 
Abb.~\ref{fig:bernstein-Sum-Dopp} c).
Für $t\in[1,2]$ verschiebt man die vier Bernsteinpolynom um 1, verwendet also 
zusätzlich die $b_i(t-1)$. Dabei achtet man darauf, dass jedes der nun 8 
Polynome entweder außerhalb $[0,1]$ --~für die ursprünglichen~--, oder 
außerhalb $[1,2]$ --~für die verschobenen~-- durch 
den Wert null fortgesetzt wird. 
Wir nummerieren die verschobenen nun als $b_i(t)$ mit $i = {4,\dots,7}$ durch 
und bilden die Summe $P(t) = \sum_{i=0}^7 b_i(t)A_i$
mit $(A_0,\dots,A_7)=(A,\ B,\ C,\ D,\ D,\ E,\ F,\ G)$. Die $b_i$ 
sind stückweise zweimal stetig differenzierbare Funktionen, für die 
überall gilt $\sum_{i=0}^7 b_i(t) = 1$,
d.\,h. sie bilden eine \textbf{\?Zerlegung der Eins\?}. Daher ist für jedes 
$t\in[0,2]$ der Punkt $P(t)$ eine gewichtete 
Linearkombination von Punkten 
aus der Menge der $A_i$. So können wir immer neue Vierergrüppchen von Punkten 
anhängen. 

Unschön ist aber, dass die Basisfunktionen $b_i$ selber an der Übergangsstelle 
$t=1$ nicht stetig und differenzierbar sind. 
Das sieht man, wenn man sich Abb.~\ref{fig:bernstein-Sum-Dopp}\,a) rechts 
daneben "`kopiert"' vorstellt. Die \textbf{Stetigkeit} des Béziersplines 
erzwingen wir durch die Doppelung des Anschlusspunktes (oben des Punktes D), 
\textbf{Differenzierbarkeit} wird aber so nicht erreicht,  wie es 
Abb.~\ref{fig:bernstein-Sum-Dopp}\,c) zeigt. Bei der Anwendung von 
Béziersplines in "`\?Mal-Programm\?en"'\footnote{z.\,B. in PaintShop pro} werden 
daher die Steuerpunkte 
neben den "`Naht-Stützpunkten"' gekoppelt, so dass letztere die Mitte der 
Strecke zwischen den Steuerpunkten sind.
Damit wird der Bézierspline zweimal stetig differenzierbar. Dies ist eine 
Folge unserer Überlegungen zu Ableitung und Krümmung in 
Abschnitt~\ref{sssec:sumparam}.

%*************************************************************************
\subsection{B-Splines}\label{B-Splines}
%*************************************************************************
\INDEX[|(]{B-Spline}s vermeiden diese Stückelung durch ein anderes System von 
Basisfunktionen. Sie behalten aber die wesentlichen Ideen  der Béziersplines 
bei:

\begin{merke}[B-Splines als Erweiterung von Béziersplines] 
benutzen folgende Prinzipien:
\begin{enumerate}
	\item	Sie verwenden ein größeres Intervall für $t$.
	\item	Sie verwenden eine Zerlegung der Eins auf diesem Intervall als 
		Basisfunktionen. 
	\item	Jede Basisfunktion ist nur auf einem Teil des $t$-Intervalls für 
		$t$ von Null verschieden.
	\item	Die Basisfunktionen werden mit gleich vielen Steuerpunkten linear 
    kombiniert.
  \item	Für je $k$ Steuerpunkte sind stets $k$ Basisfunktionen wirksam.  
	
\end{enumerate}
Neue Eigenschaften der B-Splines sind:
\begin{itemize}
	\item	Alle Basisfunktionen sind \textbf{stückweise} Polynome von 
    einheitlichem Grad $p\ (\ge 2)$, 		z.\,B. $p=3$. Es gilt dann $k=p+1$
	
	\item	Alle diese Basisfunktionen sind überall $(p{-}1)$--mal stetig 
		differenzierbar\footnotemark, für $p=3$ also zweimal.
	\end{itemize}
\end{merke}
\footnotetext{"`0-mal stetig differenzierbar"' deutet man als 
    "`stetig"', "`$-1$-mal stetig differenzierbar"' ist dann nicht einmal 
    mehr stetig.}

%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\subsubsection{Rekursiver Aufbau der Basen für B-Splines}%
\label{sssec:rekursiv-B-Spline}
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\begin{figure}[htbp]
\includegraphics{figuresHoema/B-Spline-Basis}
\caption[Aufbau der B-Splines]{\textbf{Aufbau der Basen für B-Splines.}
In der oberen Reihe sehen Sie
 rote Basisfunktionen mit wachsendem Polynomgrad, die blauen entstehen aus den 
roten jeweils durch Verschiebung um 1 nach rechts. Aus diesen beiden wird durch 
Gewichtung mit den darunter gezeichneten Geraden als Summe die nächste rote 
Basisfunktion gebildet. Dabei dient die orangefarbene Gerade als Gewicht für die 
rote, die hellblaue als Gewicht für die blaue Kurve. Die neue rote Basisfunktion hat 
 ein um 1 breiteres Definitionsintervall.  
 Sie wird wieder durch Verschiebung in blau gedoppelt.

\textbf{a)} Oben sind zwei Basissplines zu $p=0$, unten haben die Geraden stets
 ein angepasstes Definitionsintervall und einen Wertebereich von 0 bis 1.
\textbf{b)} Rote Basisfunktion zu $p=1$ mit Verschiebung in Blau.
So geht es weiter, für \textbf{c)} gilt  $p=2$, in \textbf{d)} ist $p=3$.}
\label{fig:B-Spline-Basis}
\end{figure}
\noindent%

Zu jedem Polynomgrad $p$ wird ein \textbf{Startpolynom} $B_{0,p}$ definiert, 
aus ihm können dann durch die \textbf{Verschiebungsregel}
{\boldmath 
\[
  B_{i,p}(t):=B_{0,p}(t-i) \quad\mbox{für}\quad i\ge 1 \quad\text{und}\quad p\ge 0 
\] } % ende \boldmath
so viele $B_{i,p}$ erzeugt werden, wie man braucht, um das gesamte $t$-Intervall
abzudecken.
Die \textbf{\?Rekursion\?svorschrift startet} mit 
{\boldmath 
\[
   B_{0,0}(t)= 1\qquad  \mbox{für}\quad 0 \le t \le 1\quad 
  \mbox{und}\quad  B_{0,0}(t)=0 \quad\mbox{sonst}. 
\] } % ende \boldmath
Das ist die rote Strecke in Abb.~\ref{fig:B-Spline-Basis}\,a) oben. 
\\

Für $p\ge 1$ werden zur Konstruktion von $B_{0,p}$ stets $B_{0,p-1}$ (rote 
Kurve) und $B_{1,p-1}$ (blaue Kurve) verwendet, wie es in der oberen Zeile von
Abb.~\ref{fig:B-Spline-Basis} zu sehen ist. $B_{0,p}$ entsteht als gewichtete
Summe mit \Index[Funktion!stueck@]{stückweise linear}en Funktionen 
als Gewichtsfunktionen. Diese sind da,
wo $B_{i,p-1}=0$ ist, selbst auch $=0$, auf dem verbleibenden Intervall laufen 
die Werte linear von 0 bis 1 bzw. von 1 bis 0.
Die zweite Bilderzeile zeigt die auf  
Strecken reduzierten Funktionen, die als Gewichte für die zugehörigen 
Kurven genau darüber verwendet werden. Kurz: orange für rot und hellblau für 
blau. So entstehen nacheinander 

\begin{align*}
 \text{rot} \;\; B_{0,1}(t) &= t\cdot B_{0,0}(t) + (2-t)\cdot B_{1,0}(t), 
             &\text{blau}\;\;\quad B_{1,1}(t) &= B_{0,1}(t-1),\\
  B_{0,2}(t) &= \frac{t}{2}\cdot B_{0,1}(t)+\frac{3-t}{2}\cdot B_{1,1}(t), 
             &\quad B_{1,2}(t) &= B_{0,2}(t-1),\\
  B_{0,3}(t) &= \frac{t}{3}\cdot B_{0,2}(t) + \frac{4-t}{3}\cdot B_{1,2}(t), 
             &\quad B_{1,3}(t) &= B_{0,3}(t-1),\\
             &\dots	           &\dots,
\intertext{allgemein:}
  B_{0,p}(t) &= \frac{t}{p}\cdot B_{0,p-1}(t) + \frac{p+1-t}{p}\cdot B_{1,p-1}(t), 
             &\quad B_{1,p}(t) &= B_{0,p}(t-1)
\end{align*}
und weitere $B_{i,p}$ mit $i>1$ mit der Verschiebungsregel.
Außerhalb von $(i,i+p+1)$ ist $B_{i,p}$ null.

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Die Wirkung der \?Gewichtung\? mit diesen Funktionen} ist nicht nur für 
B-Splines, sondern auch für die im nächsten Abschnitt ~\ref{subsec:NURBS} 
folgenden NURBS dieselbe.

Es ist sofort ersichtlich, dass die einzelnen Basiskurven vom Grad $p$, 
in Abb.~\ref{fig:B-Spline-Basis} rot oder blau, aus $p+1$ 
Stücken bestehen. Diese sind im Bild durchgezogen oder verschieden 
gestrichelt gekennzeichnet.  Nacheinander sind dies für jede rote 
oder blaue Kurve a) eine horizontale Strecke, b) zwei 
Geradenstücke, c) drei Parabelstücke, d) vier Polynomstücke 3. Grades. 
 
Die Basispolynome "`regieren"' je ein Intervall der Breite $p+1$, ihr 
sogenanntes \textbf{Träger\Index[Traeger@Träger, \~]{intervall}}, kurz: 
\textbf{Träger}, nur dort sind sie von Null verschieden.
Die linearen Faktoren, die die Stückelung bewirken, reichen auf dem Träger 
$[0,p+1]$ bzw. $[1,p+2]$ von 0 bis 1 (orange) bzw. von 1 bis 0 (hellblau). 
Da ihre Summe konstant 1 ist, 
wird immer das \textit{vollständige} $B_{0,p-1}$ (rot) bzw. $B_{1,p-1}$ (blau)
an die "`nächste Generation"' $B_{0,p}$ (weiter rechts, rot) weitergereicht. Diese beiden 
Funktionen des Grades $(p-1)$ haben an den Enden ihres Trägers schon Nullstellen 
der Vielfachheit $(p-1)$. Durch ihre Multiplikation mit einem linearen 
Term mit Nullstelle hat 
$B_{0,p}$ an seinen Trägerenden eine um 1 höhere Vielfachheit der Nullstellen, 
schließt sich also noch glatter, nämlich $(p-1)$-mal stetig differenzierbar, 
an die 0 außerhalb des Trägers an. Die weiteren  $B_{i,p}$ erhält man durch 
das Verschieben von $B_{0,p}$ um $i$. 
 
Die \textbf{\?Zerlegung der Eins\?}, also die Summe 1 der Basispolynome für jedes 
$t$, bleibt bei dieser Konstruktion auch erhalten, man kann dies durch 
vollständige Induktion über $p$ beweisen. 

Ohne Beweis nennen wir noch die überraschende Formel 
{\boldmath 
\[ 
  B'_{i,p}=B_{i,p-1}-B_{i+1,p-1}
\]}% Ende boldmath
Aus ihr kann man für alle $B_{i,p}$ die $(p-1)$-malige stetige 
Differenzierbarkeit an allen Übergängen zwischen Funktionsstücken folgern. 
Einzelheiten müssen Sie der einschlägigen Literatur, z.B. \cite{Piegl}
entnehmen.

%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
\subsubsection{Beispiele für B-Splines mit vielen Steuerpunkten}%
\label{sssec:B-Spline-lang}%
%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Schon mit gleich breiten Trägerintervallen  und den eben hergeleiteten 
B-Spline-Basen lassen sich B-Splines aus frei erfundenen Polygonzügen von 
Steuerpunkten erzeugen. 
An diesen kann man nicht nur beliebig ziehen, sondern sie reagieren 
gemeinsam \textbf{mit} dem von Ihnen erzeugten B-Spline 
auf geometrische Abbildungen wie Spiegelungen, Drehungen  u.s.w. Dazu finden Sie 
eindrückliche Beispiele auf der \cite{Website} zum Buch.
Dort ist auch eine Variante mit 
"`Hügeln"' aus Polynomen 4. Grades ausgeführt und diskutiert, die eine schulische 
Vereinfachung erlaubt. 

%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Ein frei erfundener langer B-Spline}

Auch wenn man zu einem Grad $p$ alle $B_{i,p}$ gemeinsam 
betrachtet, sind für jedes $t$ nur $p+1$ Basispolynome von null verschieden. 
Für $p=3$, siehe Abb.~\ref{fig:B-Spline-lang}\,a), sind nur für  $3\le t \le 18$  
wirklich vier Basisfunktionen beteiligt, höchstens diesen Bereich für $t$
darf man nehmen.
\begin{figure}[htbp]
\includegraphics{figuresHoema/B-Spline-lang}
\caption[Elemente eines langen B-Splines]{\textbf{Elemente eines langen 
B-Splines} für 18 Punkte ($A$ bis $R$\/). \textbf{a) Basiskurven vom Grad 3}, 
die für 18 Punkte benötigt 
werden. Sie sind jeweils in einem Intervall der Breite 4 definiert. 
\textbf{b)} 18 Punkte, die das \textbf{Gerüst} für den B-Spline bilden, und der 
\textbf{B-Spline} für $3 \le t\le 18$. 
\textbf{c)} Gezeigt sind die Parameterkurven von 
$P_x(t)=A_x B_{0,3}(t)+\dots+ R_x B_{17,3}(t)$ in Grün und $P_y(t)$ 
entsprechend in Blau. Sie haben sie Koordinaten der Stützpunkte jeweils als 
Koeffizienten. 
}
\label{fig:B-Spline-lang}
\end{figure}

In \?GeoGebra\? erhält man durch das Kommando
\verb#Kurve(Px(t),Py(t),t,3,18)# den \INDEX[|)]{B-Spline} 
als Parameterkurve. Er ist ein \textbf{\Index[B-Spline!]{uniform}er Spline}, da 
die Träger der Basispolynome gleich breit sind und ihre 
\textbf{\Index[Traeger@Träger, \~intervall!]{Knoten}}, so nennt man die 
Anfangspunkte der Träger, gleichmäßig bei 
$0, 1, 2, \dots$ liegen. Auf der \cite{Website} zum Buch können Sie an den 
Punkten $A$ bis $R$ beliebig ziehen oder deren Anzahl reduzieren oder erweitern.


%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Eine Animation in Anlehnung an ein Bild von M. C. Escher}~\\

\includegraphics{figuresHoema/EscherTNani-2a}
\begin{figure}[htbp]
\label{fig:EscherTNani-2a}
\caption[Metamorphose nach Escher]{\textbf{Metamorphose eines Feldes in eine Gans} 
\textbf{a)} Schmaler Ausschnitt aus dem Bild "`Tag und Nacht"'. 
\textbf{b)} Drei Stellungen aus der Animation, bei der sich das Feld stetig in 
die fliegende Gans verwandelt. Dazu sind die Ecken des Polygonzuges durch 
Strecken mit ebenso vielen Punkten auf dem Rand des linken Feldes verbunden 
worden. Kopien der Polygonecken bekommen einen Parameter, durch den sie jeweils von
Anfang bis Ende ihrer Strecke "`rutschen"'. Auf der \cite{Website} zum Buch
können Sie das 
in GeoGebra mit dem Werkzeug Animation sehen, bzw. ist dort ein animiertes 
gif-Bild verfügbar.
}
\end{figure}

\begin{figure}[htbp]
\includegraphics{figuresHoema/Escher-2a}
\caption[Zusammenhang mit dem B-Spline]{\textbf{Zusammenhang mit dem B-Spline}\\ 
\label{fig:Escher-2a}
\textbf{a)} Gezeigt ist das Basiselement, das zu dem vordersten Schnabelpunkt
I gehört. I ist der 9. Punkt, Zählung ab 0, also Basiselement ab 8, das dann 
die Koordinaten von I als Koeffizienten bekommt.
\textbf{b)} Gezeigt sind die 4 Funktionen, aus denen der Graph in a) 
zusammensetzt ist.
\textbf{c)} Die grüne Kurve zeigt, dass der x-Wert von I bei $t=10$ am größten ist, 
 dort ist ja auch das Basiselement aus a) am höchsten. Die blaue Kurve zeigt
die y^^-Werte, für Punkt K hat sie ein relatives Maximum. Unten ist lilafarben das 
Basiselement a) noch angezeigt.
\textbf{d)} Der Polygonzug ist der für Abb.~\ref{fig:B-Spline-lang} verwendete.
Hier aber hätte man, besonders
 zwischen R und S,  mit weiteren Punkten noch besser anpassen können.
}
\end{figure}


Der niederländische Maler und Zeichner Mauritz C. Escher ist, gerade unter 
Menschen, die Mathematik mögen, sehr bekannt. In einem 
biografischen Film zu seinem 50. Todestag im Jahr 2022 haben die Autoren mehrere 
seiner gezeichneten Tiere in animierten Szenen aus den Bildern krabbeln oder 
fliegen lassen.

Davon angeregt haben wir die Metamorphose eines Feldes zu einer fliegenden Gans
aus dem berühmten Bild "`Tag und Nacht"' (1938) mit B-Splines umgesetzt.
In Abb.~\ref{fig:Escher-2a} kann man gut nachvollziehen, wie man mit B-Splines 
auch praktisch arbeiten kann. Natürlich gibt es ausgefeilte Software, die dem 
Anwender rechnerische Mühe erspart. Aber auch das theoretische Konzept hat noch 
mehr zu bieten. Das zeigen die nächsten Abschnitte. 



%DDDDDDDDDDDDDDDDDDDDDDDDDDDDDHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 4.3.24---%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Gestaltung mit NURBS, erster Teil}\label{subsec:NURBS}
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Der Name dieses Spline-Typs ist ein Akronym für \Index{NURBS|(}
\textbf{N}on \textbf{U}niform \textbf{R}ational \textbf{B}-\textbf{S}pline,
in Deutsch: 
\textit{nicht gleichmäßiger rationaler \und{B-Spline}}. Die Forderung 
bei B-Splines nach gleich breiten Trägerintervallen und 
ganzzahligen \Index[Traeger@Träger, \~intervall!]{Knoten} (Anfänge der Träger) 
wird durch \textit{non uniform} 
aufgegeben. Außerdem werden Gewichte 
eingeführt und als Folge davon (\textbf{gebrochen-)% 
\Index[Funktion!gebrochen-]{rational}e Basisfunktionen}   %ab hier anders --%
gebildet. Dieses erweiterte Vorgehen ist sowohl für die im vorigen 
Abschnitt behandelten B-Splines als auch für Bézier-Splines möglich. 
Dabei sind bei B-Splines die einzelnen Basisfunktionen weiterhin gestückelt,
während man mit den gebrochen-rationalen Bézier-Spline-Basen deutlich leichter
hantieren kann. Daher beginnen wir mit diesen und widmen dem allgemeineren 
Konzept mit den rekursiv definierten B-Spines einen zweiten 
NURBS-Teil~\ref{ssec:non-uniform}.


\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Ziele der Arbeit mit NURBS} Anwender von NURBS definieren
ihre Ziele selbst und werden bei der Durchführung von passend entwickelter 
Software unterstützt.
Es geht jedenfalls darum, dass mit der Gleichung \eqref{eq:linearPkt+basis} 
durch Angabe von  Steuerpunkten eine Kurve oder Form 
erzeugt wird, die durch die Bewegung der Steuerpunkte 
ohne neue aufwendige Rechnungen frei verformt werden kann. 
Dabei braucht man wesentlich weniger Steuerpunkte im Vergleich zu anderen
 Spline-Konzepten.

\textbf{Eine exakte Passung mit einer Kurve}
\label{page:exaktePassung} erfordert allerdings bei beiden 
Vorgehensweisen, dass die Kurve eine \textbf{rationale Parametrisierung} hat. 
Dann können Gewichte gefunden werden, mit denen man rationale Basisfunktionen 
bilden kann. Deren Linearkombination mit extra angepassten Steuerpunkten als
 Koeffizienten definiert schließlich die anvisierte Kurve als NURBS. Der Vorteil 
 zeigt sich erst darin, dass man nun das "`Gerüst"' der Steuerpunkte beliebig 
verformen oder wandern lassen kann. Zum Beispiel könnte dann die Gans in 
Abb.~\ref{fig:EscherTNani-2a} mit den Flügeln schlagen.    
 \textbf{Daher  gelten NURBS als zentrales Werkzeug für
Animationen}. 

%sssssssssswsssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Gebrochen \Index[Bézier-Spline!gebrochen-]{rational}e Bézier-Splines}%
\label{sssec:rationaleSplines}
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Wir verwenden nun die \und{Bernsteinpolynome} 3. Grades, die linear unabhängig sind 
und damit als Basis für den Polynomraum  $\Pi_3$ dienen 
können. 
\[
\begin{array}{c}
	b_0(t)=(1-t)^3,%\hfill 
	b_1(t)=3 (1-t)^2 t, %\hfill 
	b_2(t)=3(1-t) t^2,%\hfill 
	b_3(t)=t^3
\end{array}
\]	
Um die Ansprüche einer exakten Passung erfüllen zu können, multiplizieren wir die 
vier Bernsteinpolynome mit vier reellen 
"`Gewichten"' $w_i$. Das zerstört die "`Summe 1"'-Eigenschaft. Diesen Mangel 
beheben wir, indem wir 
durch die Summe der gewichteten Bernsteinpolynome teilen. 

Damit ist unsere
rationale Basis  für Grad 3 die folgende:
\begin{equation}
\label{eq:rationaleBasen}
  R_0 = \frac{w_0\cdot b_0}{\sum_{j=0}^3 w_j\cdot b_j},\quad
  R_1 = \frac{w_1\cdot b_1}{\sum_{j=0}^3 w_j\cdot b_j},\quad
	R_2 = \frac{w_2\cdot b_2}{\sum_{j=0}^3 w_j\cdot b_j},\quad
  R_3 = \frac{w_3\cdot b_3}{\sum_{j=0}^3 w_j\cdot b_j}.
\end{equation}

Für ein Quadrupel von Steuerpunkten $A,\,B,\, C,\,D$ hat die Parameterdarstellung
 mit dieser Basis und den  --~vorläufig noch unbekannten~-- Gewichten
$w_i \text{ mit } i=0,\dots, 3$  also die Gestalt:
\begin{equation}
\label{eq:linearPkt+basis}
P=A\cdot R_0+B\cdot R_1+C\cdot R_2+D\cdot R_3
\end{equation}
Klarerweise haben wir nun wieder eine Zerlegung der Eins. Der Preis 
dafür ist, dass die Basisfunktionen jetzt rationale Funktionen sind. 
Dieser Preis lohnt sich aber, denn viele wichtige Kurven, die durch 
Polynome nicht darstellbar sind, lassen sich durch rationale 
Funktionen parametrisieren. Darauf werden wir bald ausführlich eingehen. 

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Die Ziele für "`NURBS, erster Teil,"'} wollen wir so setzen, 
dass Sie mit den hier verfügbaren Mitteln und lohnendem mathematischen
Handwerk das Konzept gut verstehen können. Dabei werden wir 
als einführendes Musterbeispiel zunächst den Kreis als NURBS
 realisieren, dann auch andere bekannte Kurven. So kann es uns
 gelingen, eine Kurve in eine ganz andere in stetiger Bewegung zu 
überführen. Diese \textbf{Metamorphosen} zeigen wir hier im Druck
 in Einzelschritten, auf der \cite{Website} zum Buch als Animation.

Wir sind uns bewusst  und betonen, dass das Ziel, eine exakte Kurve durch eine  
Metamorphose in eine andere exakte Kurve zu überführen, natürlich seine Relevanz
vor allem in der Sphäre der mathematischen Schönheiten hat. 




\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Algebraische Kurven}
Eine \textbf{algebraische Kurve} kann z.\,B. durch eine 
\textbf{implizite Gleichung}    
$F(x,y)=0$ beschrieben werden.
Dabei ist $F(x,y)$ im $\mathbb R^2$ ein Polynom in den Variablen $x$ und $y$, also eine 
Summe mit Termen der Gestalt $c\cdot x^\alpha y^\beta$ mit reellem $c$ und 
natürlichen Exponenten. Die größte Exponentensumme heißt \textbf{Grad der Kurve}.
Genau die Punkte, die die Gleichung erfüllen, gehören zu der Kurve. Ist die Kurve
von GeoGebra oder anderer Mathematik-Software grafisch dargestellt, 
so gibt der Grad die höchstmögliche Anzahl von Schnittpunkten 
der Kurve mit einer Geraden an.


Sie kennen die  übliche Kreisgleichung, auch alle anderen Kegelschnitte sind 
Kurven 2.~Grades. 
Als Kurven 3. Grades werden wir die Trisektrix und die Versiera betrachten, für den 
4.~Grad gehen wir noch auf die Bernoulli'sche Lemniskate  ein. 

Da NURBS aus rationalen Polynomen aufgebaut sind, kann man nicht-algebraische Kurven
wie Spiralen und etliche andere mit NURBS nur annähern.

\noindent\vspace{-4mm}\parastrich 
\paragraph{Auffinden einer rationalen Parameterdarstellung für eine Kurve}
\label{page:ratParamDarstellung}

\Index{Kurve!algebraische ~}
\Index{Parameterdarstellung!rationale ~} Oft führt folgende Technik zum Ziel: 
Man wähle einen speziellen Punkt $S=(x_0,y_0)$  auf der Kurve, besonders geeignet
sind Doppelpunkte bei Schlaufen oder andere singuläre Punkte. Durch diesen Punkt
legt man eine Geradenschar, die geeignet parametrisiert ist, z.\,B. über die Steigung: 
$y=t (x-x_0)+y_0$.
In der Kurvengleichung setzt man für $y$ diesen Geradenterm ein. Die entstehende
Gleichung wird nach $x$ aufgelöst. Es ergibt sich $x=x(t)$ und durch die Geradengleichung  
auch $y=y(t)$ für eine Parameterdarstellung. Der Grad der 
zu lösenden Gleichung ist um mindestens 1 kleiner 
als der Grad der Kurve,  da $S$ bereits eine Lösung ist, die herausdividiert werden kann.
So gelingt es oft, eine rationale Parameterdarstellung zu finden. Manches Mal bleiben
aber Wurzeln, dann ist dieser Weg nicht gangbar. Man kann dann versuchen, eine 
trigonometrische Parameterdarstellung umzuformen oder man kann bei Funktionen 
die "`Standard-Parametrisierung"' $x=t$ nehmen.



%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{aufgabe}[Rationale Parameterdarstellung für den Einheitskreis]
\noindent%  \Index{Kreis} 
Eine bekannte rationale Parametrisierung des Einheitskreises ist:  
 {\boldmath
\begin{eqnarray}  %Kopka S. 94  {c} darf hier nicht stehen.
  \label{eq:paraKreis}
  \text{Einheitskreis:}\quad
	\vec{K}(t)L = \left(\frac{2t}{1+t^2},\frac{1-t^2}{1+t^2}\right),\ 
	t\in (-\infty,\infty).
\end{eqnarray}
} %% ende boldmath%%%
 Versuchen Sie, diese herzuleiten, indem sie den Kreis 
mit einer Geradenschar durch den Punkt $N_1=(0,1)$ schneiden. Klappt es auch mit $N_2=(-1,0)$? 
\end{aufgabe}
\begin{hinweis}  
Bei der auf Seite~\pageref{page:trisektrix} behandelten Trisektrix  wird die 
eben genannte Technik zur Beschaffung einer Parameterdarstellung ebenfalls angewendet. 
\end{hinweis}

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Bestimmung der Gewichte {\boldmath $w_i$} aus dem Nenner der Parametrisierung}
\label{page:gewichteAusNenner}
%pppppppppppppppppppppppppppppppp
\noindent%
Alle Basisfunktionen haben denselben Nenner. Bei der \textbf{rationalen 
Parametrisierung} einer Kurve haben oft auch $x(t)$ und $y(t)$ denselben Nenner.
Ja, es ist sogar so, dass alle Kurven 3.~Grades, die wir in diesem Buch betrachten 
wollen, den Nenner $1+t^2$ haben. Im Weiteren beschränken wir uns auf diesen Typ.
In \eqref{eq:linearPkt+basis} ist der Nenner gegeben durch 
$\sum_{j=0}^3 w_j\cdot b_j = 1+t^2$. Koeffizientenvergleich ergibt daraus  ein 
lineares Gleichungssystem (LGS) mit vier Gleichungen für die Gewichte. Ausgeschrieben:
\[
\begin{array}{crc}
&w_0 \cdot b_0(t)+w_1 \cdot  b_1(t)+w_2 \cdot b_2(t)+w_3 \cdot  b_3(t)&=1+t^2\\
&w_0 (1-t)^3+w_1\cdot3(1-t)^2 t+w_2\cdot3(1-t) t^2+w_3 t^3&=1+t^2\\
&t^3 (-w0+3 w_1-3 w_2+w_3)+t^2 (3 w_0-6 w_1+3 w_2)+t (3 w_1-3 w_0)+w_0&=1+t^2\\
&\text{Koeffizientenvergleich}&\\
&-w0+3 w_1-3 w_2+w_3&=0 \\
&3 w_0-6 w_1+3 w_2 &=1\\
&3 w_1-3 w_0 &=0\\
&w_0 &=1\\
&\text{Gewichte: }\quad w_0=1,\quad w_1=1,\quad w_2=\frac{4}{3},\quad w_3=2.
\end{array}
\]
Die linear unabhängigen rationalen Basis-Splines mit diesen $w_i$  sind daher:
\begin{equation}
\label{eq:basisHier}
R_0(t)=\frac{(1-t)^3}{1+t^2},\quad R_1(t)=\frac{3 (1-t)^2 t}{1+t^2},\quad 
R_2(t)=\frac{4 (1-t) t^2}{1+t^2},\quad R_3(t)=\frac{2 t^3}{1+t^2}.
\end{equation}
 Der entstehende NURBS ist somit eine Linearkombination aus den $R_i(t)$
 und Punkten $A,B,C,D$, lesen Sie diese als Ortsvektoren $A=(A_x,A_y)^{\T},\ \dots$
 \begin{equation}
\label{eq:allgNURBShier}
	\vec C(t)= %\begin{matrix} 
	\left(\begin{array}{c}x(t)\\y(t)\end{array}\right)=
	A\cdot R_0(t)+B\cdot R_1(t)+C\cdot R_2(t)+D\cdot R_3(t)
		%\end{matrix}
\end{equation}


% MERKEKASTEN
\begin{merke}[Stillstand und Wanderschaft von NURBS]
\label{merke:NURBS-Klasse}
Hat eine algebraische Kurve höchstens 3.~Grades eine \textbf{rationale} 
\textbf{Parametrisierung}  mit Parameter $t$ und dem {\boldmath
\begin{align}
\label{eq:allg-1plus-t-quad-NURBS}
\textbf{Nenner}\addtocounter{footnote}{0}\footnotemark\quad
 1+t^2,
\text{ dann gibt es Punkte }A,\;B,\;C,\;D,  \text{ so dass } %\nonumber
\end{align} 
}%ende boldmath 
\[
\begin{array}{r}
\left(\begin{matrix} x(t) \\y(t) \end{matrix}\right) =\displaystyle\frac{1}{1+t^2} 
\cdot \Bigg( 
\left(\begin{matrix}A_x\\A_y \end{matrix}\right) (1-t)^3 +
\left(\begin{matrix}B_x\\B_y \end{matrix}\right) 3(1-t)^2 t\cr
 +\left(\begin{matrix}C_x \\C_y \end{matrix}\right) 4(1-t) t^2 +
\left(\begin{matrix}D_x \\D_y \end{matrix}\right) 2 t^3 \Bigg)
\end{array}
\]
\noindent%
die \textbf{Parameterdarstellung eines NURBS} ist, der die \textbf{Kurve exakt trifft}.
Der Polygonzug $A,\;B,\;C,\;D$ heißt \textbf{ Gerüst dieser Kurve.}\\
Die Voraussetzung definiert eine \textbf{Klasse algebraischer Kurven}, bei der jede in jede
 andere in stetig er Bewegung übergehen kann.\\
\textbf{Stillstand: } Setzt man die Koordinaten des Gerüstes in die Formel ein, 
ist die Kurve fest \textbf{an Ort und Stelle\addtocounter{footnote}{0}\footnotemark.}
\textbf{Wanderung: }Man muss an jedem Punkt des Gerüstes einen "`Wanderweg"' 
starten lassen, auf dem abhängig von einem Parameter $s$ die Punkte \\
$A'(s)$ mit $A'(0)=A$, $B'(s)$ mit $B'(0)=B$, $C'(s)$ mit $C'(0)=C$ und $D'(s)$ mit $D'(0)=D$ \\
jeder zu einem beliebigen Ziel wandern. \\
Der \textbf{wandernde NURBS} wird dann erzeugt mit:
\[
\begin{array}{c}
 \vec{N}(t,s)=A'(s) R_0(t)+B'(s) R_1(t)+C'(s) R_2(t)+D'(s) R_3(t)\\
 \text{mit Punkten }A'= \left(\begin{matrix}x(s)\\y(s)\end{matrix}\right), B'=\;\dots 
\end{array}
\]
\end{merke}
\addtocounter{footnote}{-1}\footnotetext{Eventuell muss man passend erweitern.}
\addtocounter{footnote}{1}\footnotetext{Beim Vergleich mit der ursprünglichen 
Darstellung hat hat man lediglich eine Probe, 
ob das Gerüst richtig berechnet ist.}
% ENDE MERKE

So ist es in den folgenden Beispielen mit Geraden als Wanderwegen durchgeführt worden. 
Zielpunkte sind bei den Metamorphosen die Gerüstpunkte der Zielkurve.
Freies Ziehen an den Punkten des Gerüstes geht natürlich auch, in 
Abb.~\ref{fig:Kreis_als_NURBS} wird aber deutlich, dass man danach wohl nicht durch Zufall
das Gerüst einer bekannten exakten Kurve erreichen wird. Diese Freiheit gönnen 
wir uns bei der Lemniskate in \ref{fig:Lemniskate+Giraffe}.   

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Exakte Kurven und ihre Metamorphosen}
\label{sssec:exakteKurven}%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Die rationale Parametrisierung des Kreises hat nach Obigem den
\textbf{Nenner $1+t^2$,} der Einheitskreis gehört also zur oben im blauen Merke-Kasten
Seite~\pageref{merke:NURBS-Klasse} definierten NURBS-Klasse. Damit haben wir 
die Gewichte der rationalen Basispolynome  schon bestimmt und können 
Gleichung \eqref{eq:allg-1plus-t-quad-NURBS} verwenden. 

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Auffinden des Gerüstes für eine durch rationale Parametrisierung 
gegebene Kurve}
Der Nenner passt also zu den Basisfunktionen \eqref{eq:basisHier}
Wir müssen das Gerüst finden, das beim Einsetzen in den allgemeinen NURBS 
\eqref{eq:allg-1plus-t-quad-NURBS} diese
Parametergleichung erzeugt. Wir stellen ein lineares Gleichungssystem auf, bei
 dem sich die Nenner links und rechts wegheben und nur noch die Zähler der 
Parametrisierung relevant sind.


Es muss also gelten (\textbf{Musterrechnung}):
\label{page:musterrechnung}.
\[
\begin{array}{l|c|r}
A_x\cdot (1-t)^3       &A_y\cdot (1-t)^3      &\text{Koeffizientenvergleich}\cr
+B_x\cdot 3(1-t)^2 t   &+B_y\cdot 3(1-t)^2 t  &A_x=0,\ -A_x + 3 B_x - 4 C_x + 2 D_x=0\cr
+C_x \cdot 4 (1-t)t^2  &+C_y \cdot 4 (1-t)t^2 &-2 - 3 A_x + 3 B_x=0,\ 3 A_x - 6 B_x + 4 C_x=0\cr
+D_x\cdot 2 t^3        &+D_y\cdot 2 t^3       &-1 + A_y=0,\ -A_y +3 B_y - 4 C_y + 2 D_y=0 \cr
= \textcolor[rgb]{1,0,0}{2 t}&=\textcolor[rgb]{1,0,0}{1- t^2}	&
                                -3 A_y + 3 B_y=0,\ 1 + 3 A_y - 6 B_y + 4 C_y=0
\end{array}
\]
In roter Schrift ist hervorgehoben, wo man für eine zu betrachtende Kurve die
Zähler der rationalen Parametrisierung (mit Nenner $1+t^2$) einsetzen muss. Die
rechte Spalte ist dann  entsprechend zu ändern.\\ 
Das Gleichungssystem liefert die Punkte des \textbf{Gerüstes für den 
Einheitskreis}:\\
\label{page:kreis-geruest}%
\centerline{$A=(0,1),\;B=(\frac{2}{3},1),\;C=(1,\frac{1}{2}),\;D=(1,0)$.} 
In GeoGebra setzen Sie das Gerüst-Polygon $A, B, C, D $ in die Zeichenebene
und definieren
dann den NURBS aus Gleichung~\eqref{eq:allg-1plus-t-quad-NURBS} mit 
\textbf{den Namen der Punkte,} 
\textbf{ohne} die Koordinaten einzusetzen\footnote{Kommando in GeoGebra:  
Kurve(x(A)$R_0+\dots$,y(A)$R_0+\dots$,t,-10,te), te ist ein Schieberegler }. 
\begin{align}\label{eq:KreisNURBS}
\left(\begin{array}{c}x(t)\\y(t)\end{array}\right) =
	A\cdot R_0(t)+B\cdot R_1(t)+C\cdot R_2(t)+D\cdot R_3(t) 
\end{align}
Wenn Sie die Koordinaten wirklich konkret einsetzten, hätten Sie alle Freiheiten 
verloren, die Ihnen der NURBS bieten kann. Dann hätten Sie zum Darstellen des 
Kreises  auch gleich die implizite Gleichung 
oder die Parameterdarstellung nehmen können, von der Sie ausgegangen sind,


\begin{aufgabe}[Erkundung des NURBS für den Kreis]
\label{aufgabe:KreisNurbs-Vari} Bauen Sie (z.\,B. mit GeoGebra) 
Bild~\ref{fig:Kreis_als_NURBS} nach\footnotemark und 
lassen Sie $C$ wandern. Machen Sie sich klar, dass alle NURBS,
die nicht die Stellung $y(C)=0.5$ realisieren, mathematisch bis ins Unendliche reichen.
Wenn Sie Enden sehen, sind das Artefakte.
\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/Kreis_als_NURBS}
\caption[Kreis als NURBS]{\textbf{\?Kreis\? als NURBS, Variation der Ordinate 
von Steuerpunkt  $C$.}\\ 
Punkt $C$ ist in $0.1$-Schritten auf der Geraden $x=1$ im Intervall 
$[-0.5, 2]$ gewandert. Die farbigen Kurven sind in Geogebra mit dem Spurmodus 
entstanden.
\\Die große grüne Schlaufe links gehört zu\\ $y(C)=0.4$, 
rechts die große blaue Schlaufe zu $y(C)=0.6$. \\Für den exakten Kreis muss 
$y(C)=0.5$ sein\\ (rot). Der Vorteil der Darstellung des Kreises als NURBS 
besteht darin, dass man die 
Steuerpunkte nachträglich variieren kann. 
}
\label{fig:Kreis_als_NURBS}
\end{smallfigure}
\end{aufgabe}
\begin{hinweis}
 Variieren Sie weitere Steuerpunkte. Sie könnten sich auch von
Abschnitt~\ref{sssec:exakteKurven} anregen lassen, Wege zu einem von Ihnen
definierten Ziel zu erfinden. 
\end{hinweis}
\footnotetext{Nehmen Sie ggf. die Datei von der [Website] zum Buch.}
\noindent%


Für den Kreis haben wir eben eine Parametrisierung mit einem NURBS 
erstellt. Als bloße Kurvenanpassung, wie sie auch kubische Splines 
bieten, stellt sie keinen besonderen Gewinn dar, denn man hat ja 
schon eine exakte implizite Gleichung und eine Parametrisierung.
Das Besondere an einer Parametrisierung mit NURBS liegt darin, dass man die 
hergeleiteten Steuerpunkte verändern kann und so eine stetige 
Veränderung in eine andere Kurve, eine Metamorphose, erzeugt. Diese erstaunliche 
Möglichkeit möchten wir hier noch an zwei Kurven zeigen.    

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Trisektrix und ihre Verwandlung in einen Kreis}
\label{page:trisektrix}%
Die Trisektrix von MacLaurin hat die implizite Gleichung  
$(a+x)y^2=(3a-x)x^2$, ihr widmet sich \cite[Abschnitt 3.3.1]{HaftendornK}. 
GeoGebra zeigt eine Schlaufe der Breite $3a$ und einen Doppelpunkt im Ursprung,
siehe Abb.~\ref{fig:trisektrix-Konst-NURBS}\;a). Sie lässt sich leicht mit Zirkel und Lineal 
punktweise konstruieren, siehe b), und GeoGebra kann sie als Ortslinie anzeigen.
Für eine \textbf{rationale Parameterdarstellung} schneiden wir sie mit 
der Geradenschar
 $y=t\,x$, wie auf Seite  \pageref{page:ratParamDarstellung} unten erklärt.
Es ergibt sich $(a+x)t^2 x^2=(3a-x)x^2.$ Wir dividieren durch $x^2$, denn den 
Ursprung als doppelten Schnittpunkt kennen wir schon. Den weiteren Schnittpunkt
für diese Kurve 3.~Grades erhalten wir duch Auflösung nach $x$:
\[
\text{Trisektrix:}\quad x(t)=a \frac{3-t^2}{1+t^2}\;\mbox{ und }\; 
y(t)=a\,t \frac{3-t^2}{1+t^2}.
\]
\begin{figure}[htbp]
\includegraphics{figuresHoema/trisektrix-Konst-NURBS}
\caption[Trisektrix als NURBS]{\textbf{Trisektrix Konstruktion und als NURBS} 
\textbf{a)} Trisektrix mit Parameterdarstellung.
\textbf{b)} Konstruktion: Auf dem Kreis um $M=(2a,0)$ läuft $Q$. Die 
Mittelsenkrechte auf $\overline{MQ}$ schneidet die Gerade $OQ$ in $P$. 
Die Ortslinie von $P$ bezüglich $Q$ ist die Trisektrix.
\textbf{c)} Hier soll das Ziel für die Metamorphose der Trisektrix ihr
 Konstruktionskreis sein. Das ist das Thema der nächsten Anregung. %~\ref{aufgabe:ZielKkreis}. 
Der jeweils erste Balken des Gerüstes ist in hellerer
 Farbe gezeichnet. Man sieht hier deutlich, dass das Gerüst umgewendet wird.}  
\label{fig:trisektrix-Konst-NURBS}
\end{figure}
Der Nenner  der rationalen Parameterdarstellung ist wieder $1+t^2$. Im Allgemeinen 
NURBS \eqref{eq:allg-1plus-t-quad-NURBS} dieser Klasse müssen nun wie auf Seite~\pageref{page:musterrechnung}
die Punkte  $A,\; B,\;C,\;D$ des Gerüstes so bestimmt werden, dass obige Parameterdarstellung der 
Trisektix erreicht wird. Es ergibt sich das
 $\text{Gerüst der Trisektrix: }\quad A=(3a,0),\;B=(3a,a),\;C=(2a,\frac{3a}{2}a),\;D=(a,a)$.

\begin{figure}[htbp]
\includegraphics{figuresHoema/Trisektrix-NURBS}
\caption[Trisektrix-Metamorphose mit NURBS]{\textbf{Trisektrix-Metamorphose mit NURBS} 
\textbf{a)} Trisektrix, naheliegende Zuordnung der Gerüste.  
\textbf{b)} Der Kreis wird vom Nordpol aus nach rechts durchlaufen, die Trisektrix
aber vom rechten Scheitelpunkt aus nach links oben. Die Punkte sind nach ihrer Genese 
geordnet, daher muss sich das Gerüst mit der NURBS-Kurve einmal umwenden.
In \textbf{c)} sind mit dem Spurmodus neun NURBS dieser Metamorphose zu sehen, es 
ist spannend zu beobachten, wie die asymptoten-nahen Punkte immer mehr in den Kreis gezogen 
werden. Bei den Enden, die zu sehen sind, handelt es sich natürlich um Artefakte, 
mathematisch reichen sie bis ins Unendliche, auch noch bei "`Wanderparameter"' 
$s=0.9$. Bei $s=1$ hat der Kreis diese langen "`Zipfel"' plötzlich geschluckt. Die 
Kreislücke unten könnte man nur durch größere Werte von $t$ enger machen.
Dies zeigt, dass man den Kreis wohl nicht durch Herumprobieren gefunden hätte. 
Aber das Gerüst der Trisektix ist ja exakt auf des Gerüst des Kreises abgebildet 
worden. \textbf{d)} zeigt das Gerüst des NURBS kurz vor der Umwendung, vgl. 
Abb~\ref{fig:trisektrix-Konst-NURBS}~c).
}
\label{fig:Trisektrix-NURBS}
\end{figure}

\begin{aufgabe}[Metamorphose der Trisektrix in ihren Konstruktionskreis]
\label{aufgabe:ZielKreis}
Die Parameterdarstellung $(x(t),y(t))$ als NURBS~\ref{eq:KreisNURBS} für den Einheitskreis
kann leicht auf andere Kreise übertragen werden. Einen Kreis 
$(\bar x(t),\bar y(t))$ mit Radius $r$ und 
dem Mittelpunkt $(a,b)$ parametrisiert man nun durch
$\bar{x}(t):=r\, x(t)+a$ und $\bar{y}(t):=r\, y(t)+b$. Für das Gerüst nimmt 
man einfach die $r$-fache Größe und "`heftet"' es an einen Kreispunkt an.

\textbf{Aufgabe:} Lassen Sie die Trisektrix zu ihrem Konstruktionskreis wandern.\\
Es kann Ihnen jetzt bewusst werden, dass fast die ganze Arbeit schon erledigt ist.
Ziel ist hier der Kreis in Abb.~\ref{fig:trisektrix-Konst-NURBS}\,c), sein Radius ist 
$r=2$ und sein Mittelpunkt $(2,0)$. Das auf Seite \pageref{page:kreis-geruest} 
berechnete Gerüst des Kreises sehen Sie geometrisch auf den 
verschobenen und vergrößerten Kreis übertragen. Darum brauchen Sie die 
Kreisgleichung gar nicht. \\
Definieren Sie einen Schieberegler
$s \in [0,1]$ und konstruieren Sie mit dem hier folgenden Hinweis die Punkte 
${A',\;B',\;C',\;D'}$ auf den Wegen zum Kreisgerüst. Diese setzen Sie als Namen
mit $x(A'),\;\dots $ bzw. $y(A'),\;\dots $ in 
Gleichung~\ref{eq:allg-1plus-t-quad-NURBS} ein. Fertig ist Ihre erste NURBS-Wanderung.
\end{aufgabe}
\begin{hinweis}
Wenn ein Punkt $A$ als $A'$ gesteuert von einem Parameter $s$ zum Punkt $E$ 
wandern soll, definieren Sie in GeoGebra %\verbatim{ae=vektor(A,E}
{\tt ae=Vektor(A,E)}.  Es ist dann {\tt A'=A+s ae}
der gesuchte wandernde Punkt\footnote{In GeoGebra kann man Punkte und Vektoren 
addieren, man braucht dabei keine "`Ortsvektoren"' zu  definieren.}. 
\end{hinweis}

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Versiera und ihre Verwandlung in einen Kreis}
\label{page:Versiera}
Im Buch \cite[S.\,19]{HaftendornK},  finden Sie Interessantes zur Versiera von Maria
 Agnesi (1718-1799). Die einfache Konstruktion ist in 
Abb.~\ref{fig:Versiera-Metamorph} im linken Bildteil gezeigt: Auf der 
Nordpol-Tangente des Kreises um $(0,a)$ mit Radius $a$ wandert ein Punkt $E$.
Die Gerade $OE$ schneidet den Kreis in $E'$. Dann bekommt $P$ die Abszisse von $E$ und die Ordinate
von $E'$. Die Ortskurve von $P$ ist die Versiera. 


\textbf{Kurze Herleitung} der impliziten Gleichung mit der Methode aus \cite{HaftendornK}:
$P=(x,y)$, Kreisgleichung: $u^2+(v-a)^2=a^2$. Nun ist $y=v$ und 
$\frac{u}{y}=\frac{x}{2a}$. Eliminiert man $v$ und dann $u$, ergibt sich die 
\[
\text{Gleichung der Versiera:} \quad (x^2+4a^2)\,y=8a^3\quad\text{ oder }\quad 
y=\frac{8a^3}{x^2+4a^2} 
\]
Für Funktionen ist $x=t$ die "`natürliche"' Parametrisierung, noch günstiger ist hier
$x(t)=2at$, und nach kurzer Rechnung folgt  $y(t)=\frac{2a}{1+t^2}$. Da die Formeln in 
der Definition
\eqref{eq:allg-1plus-t-quad-NURBS} einen einheitlichen Nenner brauchen, erweitern wir:  
$x(t)=\frac{2at+2at^3}{1+t^2}$. Jetzt können wir mit den  auf Seite~\pageref{page:musterrechnung} 
genannten Formeln in
die Berechnung des Gerüstes der Versiera starten. Durch Koeffizientenvergleich 
ergibt sich folgendes Gerüst:
\[\text{Versiera:}\quad
  A=(0,2a),\;B=(\frac{2a}{3},2a),\; C=(a,\frac{3a}{2}),\;D=(2a,a).  
\]
Die ersten drei Steuerpunkte stimmen mit denen des Kreises überein. Wir können
jetzt einen beliebigen Weg von $D$ zum letzten Punkt des Kreisgerüstes $K=(a,a)$ \textbf{erfinden},
um eine Metamorphose von der Versiera zu ihrem Konstruktionskreis zu gestalten. 
In Abb.~\ref{fig:Versiera-Metamorph} ist ein Polygonzug $D,\,G,\,F,\,K$ 
(violett gepunktet) vorgeschlagen.

 \begin{figure}[htbp]
\includegraphics{figuresHoema/Versiera-Metamorph}
\caption[Versiera-Metamorphose mit NURBS]
{\textbf{NURBS der Versiera der Maria Agnesi.} 
Die Konstruktion wird im Text erklärt, die implizite
Gleichung und ihre Parametrisierung wird hergeleitet.
Ihr Gerüst wird berechnet und mit frei erfundenem Weg wird die
Metamorphose zu ihrem Konstruktionskreis realisiert. 
}
\label{fig:Versiera-Metamorph}
\end{figure}

\textbf{Anmerkung:} Alle GeoGebra-Dateien finden Sie auf 
der [Website] zu diesem Buch. Es ist spannend, die Metamorphosen zu beobachten. 
Ausführlichere Rechnungen in einer lesbaren Mathematica-Datei sind ebenfalls dort. 

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{NURBS für die Bernoulli'sche Lemniskate, eine Kurve 4. Grades}
\label{sssec:4.GradesNURBS}
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\noindent
Allgemein können die Bernsteinpolynome $n$-ten Grades aus dem Term $((1-x)+x)^n$ 
gewonnen werden. Durch
diesen Ansatz ist für jedes $n$ ihre Summe 1. In diesem
Buch verwenden wir sie nun für Grad 4.
\[
\begin{array}{c}	
B_0(t)=(1-t)^4, %\hfill 
B_1(t)=4 (1-t)^3 t,%\hfill 
B_2(t)=6  (1-t)^2 t^2,%\hfill 
B_3(t)=4  (1-t)t^3, %\hfill 
B_4(t)=t^4.
\end{array}
\]	
Die vom Grad 4 sehen fast genauso aus wie die vom Grad 3 in 
Abb.~\ref{fig:bernstein-Sum-Dopp}\,a), nur steigt der Grad der Berühr-Nullstellen
 um 1 und eine Glockenkurve $B_2(t) $ kommt hinzu. 


Nun werden wie im Abschnitt \ref{sssec:rationaleSplines} gewichtete 
Bernsteinpolynome und ihre Normierung zur Summe 1 gebraucht:
\[
R_i = \frac{w_i\cdot B_i}{\sum_{i=0}^4 w_i\cdot B_i} \text {  mit } i \in \{0,1,2,3,4\}.
\]

Wir wollen hier als einzige der vielen Kurven 4.~Grades die 
Bernoulli'sche Lemniskate betrachten. Sie sieht aus wie das Zeichen $\infty$.
Über Lemniskaten finden Sie vielfältige 
Literatur, ausführlich ist \cite{HaftendornK} und die Website \cite{HaftendornW3}. 
\[
\text{Bernoulli'sche Lemniskate:}\qquad (x^2+y^2)^2=a^2(x^2-y^2)
\]
Im Buch \cite{HaftendornK} finden wir in Gleichung 4.29 eine rationale 
Parametrisierung für die
\[
\text{Bernoulli'sche Lemniskate:} \qquad x(t)=a\frac{t^4-1}{1+6t^2+t^4},
  \quad y(t)=a\frac{2 t (t^2-1)}{1+6t^2+t^4}. 
\]
Zuerst müssen wir aus dem Nenner die Gewichte berechnen: \\
\[
\begin{array}{l}
\text{Ansatz: } \\
(1 - t)^4 w_0 + 4 (1 - t)^3 t w_1 + 6 (1 - t)^2 t^2 w_2 +  
  4 (1 - t) t^3 w_3 + t^4 w_4 = 1+6t^2+t^4\\
\text{Koeffizientenvergleich: }\\
0 =-1+ w_0 + t (-4 w_0 + 4 w_1) + t^2 (-6+6 w_0 - 12 w_1 + 6 w_2)\\
 + t^3 (-4 w_0 + 12 w_1 - 12 w_2 + 4 w_3) + t^4 (-1+w_0 - 4 w_1 + 6 w_2 - 4 w_3 + w_4)\\
\text{LGS: }\\
w_0 = 1,\; -4 w_0 + 4 w_1 = 0, \;6 w_0 - 12 w_1 + 6 w_2 = 6,  \\
-4 w_0 + 12 w_1 - 12 w_2 + 4 w_3 = 0,\; w_0 - 4 w_1 + 6 w_2 - 4 w_3 + w_4 = 1\\
\text{Gewichte: }\quad w_0 = 1,\; w_1 = 1,\; w_2 = 2,\; w_3 = 4,\; w_4 =8
\end{array}
\]%

Der NURBS für Kurven 4.~Grades mit dem Nenner~$1+6t^2+t^4$ ist:
\[
\left(\begin{matrix} x(t)\\y(t)\end{matrix}\right)=\frac{1}{1+6t^2+t^4}\cdot\\
\Big( A\cdot (1-t)^4 +B\cdot 4(1-t)^3 t + C\cdot 12(1-t)^2 t^2+D\cdot 16(1-t) t^3+E\cdot 8 t^4 \Big)
\]
Die Lemniskate erhalten wir nur dann, wenn wir ihr Gerüst berechnen. Dafür muss die 
große Klammer mit den Abszissen der Punkte $t^4-1$ und mit den Ordinaten 
$2t -2 t^3$ ergeben. Ein passendes Gleichungssystem haben wir oben mehrfach durch 
Koeffizientenvergleich gelöst. Tun wir das hier ebenso, so ergibt sich das 
folgende Gerüst der \\
$\text{Lemniskate: }\quad A=(4,0),\;B=(4,2),\;C=(2,2),\;D=(1,1),\;E=(0,0)$. 

\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/Lemniskate+Giraffe}
\label{fig:Lemniskate+Giraffe}%
\caption[LemniskateNURBS]{\textbf{Lemniskate und Giraffe mit NURBS} \\
\textit{Die Giraffe saugt die Lemniskate an sich und hat sie dann als Mantel an.}\\
Die Lemniskate für $a=4$ hat das Gerüst $A=(4,0),\;B=(4,2),\;C=(2,2),\;D=(1,1),
\;E=(0,0)$ (blaue Rauten), wobei $A$ der rechte Scheitelpunkt ist und $E$ der Doppelpunkt. 
Diese Punkte sind gedoppelt worden (schwarze Kreuze) und und deren 
Linearkombination ist der NURBS. Diese Kreuze sind ganz frei  
umhergezogen worden, bis die entstandene Form gut aussah. Dann konnten die violetten
Vektoren definiert werden und ihr $s$-faches $A',\;B',\;C',\;D',\;E'$ einen weiteren (grünen)
NURBS definieren.
Der Parameter $s$ lief für die grünen Kurven von $0.05$ bis $0.95$.  
Wie man den NURBS wandern lässt, ist oben erklärt.
Sie können die "`Wanderwege"' (violett) deutlich sehen.
}
\label{fig:Lemniskate+Giraffe}
\end{smallfigure} 

%DDDDDDDDDDDDDDDDDDDDDDDDDDDDDHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH%
%DDDDDDDDDDDDHHHHHHHHHHHHHHHHH- Achtung Ebene geändert- von sssec auf ssec  --%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{NURBS, Teil 2, mit nicht-uniformen B-Splines}
%%%%%nicht-\Index[B-Spline!nicht ]{uniform}en B-Splines}%
\label{ssec:non-uniform}%  %%%%%% evt mit Bindestrich: nicht-uniforme
%%%% so steht es auch in der Legende 
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Wir kehren zurück zu den rekursiv definierten B-Splines aus 
Abschnitt~\ref{sssec:rekursiv-B-Spline} und vollziehen den Übergang von den 
uniformen zu den nicht-uniformen B-Splines. Der entscheidende Punkt ist, dass 
die Knoten in der Knotenliste ungleiche Abstände voneinander haben.
Stellen Sie sich nun die Basisfunktionen in 
Abb.~\ref{fig:B-Spline-lang} 
verschieden breit 
und auch nicht gleich hoch vor, darunter 
wieder die Geradenstücke, wie in Abb.~\ref{fig:B-Spline-Basis}, die von Anfang bis 
Ende des Trägers reichen. Die 
Intervallbreiten der Träger ergeben sich aus der 
\textbf{\Index[Traeger@Träger, \~intervall!]{Knotenliste}} 
$T=\{t_0,t_1,t_2,\dots\}$. 

 Für Abb.~\ref{fig:NURBS}\,a) ist dies 
$T=\left\{0,\frac{1}{2},\frac{3}{4},\frac{6}{5},2,\frac{5}{2},3,\frac{17}{5},
\frac{18}{5}\right\}$. Die Rekursion ist im Prinzip dieselbe, die bei 
Abb.~\ref{fig:B-Spline-Basis} vorgestellt ist, nur ist die Breite der 
Trägerintervalle nun nicht mehr stets 1, sondern sie ergibt sich aus der 
Knotenliste $T$.
Die Start-Basen sind: 
{\boldmath
\[
   B_{i,0}(t)= 1\qquad  \mbox{für}\quad t_i \le t \le t_{i+1}\quad \mbox{und}
\quad 0 \quad\mbox{sonst}. 
\] 
und die Rekursionsformel ist: 
\[
B_{i,p}(t):= \frac{t-t_i}{t_{i+p}-t_i}B_{i,p-1}(t)+\frac{t_{i+p+1}-t}{t_{i+p+1
}-t_{i+1}}B_{i+1,p-1}(t)\qquad 
\]
}% ende \boldmath 
In Abb.~\ref{fig:NURBS}\,a) sind die ersten fünf ganz-rationalen Basispolynome 
dritten Grades zu obiger Knotenliste $T$ dargestellt. 
Wie im uniformen Fall ist jedes gestückelt aus 
vier Teilen und verwendet daher fünf Einträge aus $T$. Dies ist farblich 
unter der t-Achse herausgestellt. Verwenden kann man, wie oben diskutiert, 
nur das t-Intervall, in dem mindestens vier Basispolynome "`regieren"'.

\noindent\vspace{-4mm}\parastrich%-------------------------------------% 
\paragraph{Gebrochen rationale B-Spline-Basen}  Ebenso wie in Gleichung
\label{page:rationaleNichtUniforme}%
\eqref{eq:rationaleBasen} für Bézier-Splines führen wir auch 
hier rationale Basen ein:
\[
R_{i,p}(t)=\frac{w_i\cdot B_{i,p}(t)}{\sum_{j=0}^n\cdot w_j B_{j,p}(t)} 
\text {  mit } i \in \{0,\dots, 4\}.
\]

\begin{figure}[htbp]
\includegraphics{figuresHoema/NURBS}
\caption[Nicht-uniforme NURBS]{\textbf{Nicht-uniforme NURBS.} \textbf{a)} 
 Basiskurven vom Grad 3, je fünf benachbarte Knoten aus der 
Liste $T$ gehören zu einer Basis-Funktion 3. Grades für B-Splines.  
\textbf{b)} Bei einem rot-gestrichelten Viertelkreis mit Gerüst, siehe 
Abb.~\ref{fig:Kreis_als_NURBS}, 
 wird hier unter Beibehaltung des Gerüstes das Gewicht eines Punktes variiert. Im 
Text wird die ganz unterschiedliche Wirkung betrachtet.  
\textbf{c)} Sieben Basiskurven nicht-uniformer, rationaler  B-Splines zweiten 
Grades und in \textbf{d)} ein 
\textbf{geschlossener NURBS} daraus  besteht schließlich aus vier 
Ellipsenstücken. Auf der \cite{Website} zum Buch sind die verwendeten Funktionen 
einsehbar und das Gerüst ist in GeoGebra frei ziehbar.
}
\label{fig:NURBS}
\end{figure}

\noindent\vspace{-4mm}\parastrich %----------------------------------------%
\paragraph{Die Wirkung der Änderung von Gewichten} ist in 
Abb.~\ref{fig:NURBS}\,b) für das Gewicht des letzten Punktes des Gerüstes 
des Einheitskreises $P_3=(1,0)$ gezeigt. Mit der rot-gestrichelten Kurve wird ein
Viertelkreis erreicht. Von innen nach außen 
innen hat $P_3$ die Gewichte $w_3=5000\;\mbox{ und }\;w_3=10$. Für den rot 
gestrichelten  Viertelkreis gilt $w3=2$ (wie in Abb.~\ref{fig:Kreis_als_NURBS}), 
außen sind noch $w_3=\frac{1}{2}$ und $w_3=\frac{1}{50}$ (orange) verwirklicht.


Der Unterschied zu Abb.~\ref{fig:Kreis_als_NURBS} ist, dass dort ein Gerüstpunkt
 verschoben wird, hier aber wird \textbf{ das Gerüst beibehalten}. Um die Wirkung 
deutlich zu machen, ist für den violetten NURBS  das riesengroße Gewicht $w_3=5000$ gewählt. 
 Das führt dazu, dass $P_1$ und $P_2$ gar keine Rolle mehr spielen und der NURBS fast 
direkt von $P_0$ zu $P_3$ verläuft. Hingegen bewirkt ein winziges Gewicht $w_3=0.02$, dass $P_3$  
kaum noch eine Rolle spielt, weshalb der NURBS sich eng an $P_2$ anlehnt und dann 
noch fast gerade zu $P_3$ laufen muss.


Der Parameter $t$ läuft hier nur von 0 bis 1. 
Erst wenn man $-\infty\le t \le\infty $ denkt, schließt sich der Kreis bei $(0,-1)$.



%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Beispiel für einen geschlossenen NURBS}%
\label{sssec:bspl-NURBS}%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Das Schließen eines NURBS wie in Abb.~\ref{fig:NURBS}\,d) erfordert die 
Wiederholung des ersten Steuerpunktes als letzten Punkt, hier  ist $P_6=P_0$. 
Die nicht-uniforme %%% wieder Bindestrich
 rationale Basis ist auf der Grundlage von 
B-Splinepolynomen 2.~Grades erstellt worden und in Abb.~\ref{fig:NURBS}\,c) zu 
sehen. Zusätzlich zu dem bisher Gesagten wird ein 
weiterer Trick benutzt, nämlich 
die Wiederholung von Einträgen in der 
\Index[Traeger@Träger, \~intervall!]{Knotenliste}. In der Rekursion entstehen 
dadurch manchmal Intervalle der Breite 0, 
die --~und das funktioniert wirklich~-- 
einfach nicht berücksichtigt werden. Daraus entstehen zwei Effekte, 
nämlich eine engere 
Anlehnung der Kurve an das Gerüstpolygon, in Abb.~\ref{fig:NURBS}\,d) 
deutlich zu sehen, und eine Verringerung der Differenzierbarkeit an 
zugehörigen Steuerungspunkten. Die Knotenliste lautet hier 
$T=\{0,0,0,\frac{1}{4},\frac{1}{2},\frac{1}{2},\frac{3}{4},1,1,1\}$. 
Die Verdreifachung der 0 und der 1 führt dazu, dass $P_0$ und $P_6$ genau 
getroffen werden. Die mittlere Basisfunktion in Abb.~\ref{fig:NURBS}\,c) z.\,B. 
ist wegen der doppelten $\frac{1}{2}$ nicht mehr differenzierbar, erkennbar 
an der Spitze in Bildmitte. Die resultierende Kurve ist aber trotzdem wegen 
geschickt gewählter Gewichte zweimal stetig differenzierbar.

Die sieben Steuerpunkte und die zugehörigen Basisfunktionen in Abb.~\ref{fig:NURBS} 
haben in c) und d) dieselbe Farbe. Sie lassen sich auf der \cite{Website} 
zum Buch \textbf{ganz frei ziehen}, 
denn diese Datei ist in GeoGebra realisiert. Der abgebildete NURBS besteht 
aus vier Ellipsenbögen, die von einem Berührpunkt zum nächsten reichen. 
In GeoGebra kann man sich das durch das Werkzeug 
"`Kegelschnitt aus 5 Punkten"' anzeigen lassen, hier z.\,B. $(A,B,C,D,P_3)$. 
Wenn das Gerüst ein Parallelogramm ist, erreicht man eine exakte vollständige 
\?Ellipse\?, bei einem Gerüst-Quadrat erhält man einen perfekten Kreis.

%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Doppelte Knoten in der Knotenliste}%
\label{sssec:NURBS-doppelte-Knoten}%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Im vorangehenden Abschnitt \ref{sssec:bspl-NURBS} zu den geschlossenen NURBS 
wurde gesagt, dass als nötiger Trick Elemente in der Knotenliste 
verdoppelt werden, und dass man die dadurch in der Rekursion 
entstehenden Intervalle der Länge 0 einfach weglassen soll. Wir wollen 
hier uns hier im Detail ansehen, was genau doppelte Knoten bewirken.

\begin{figure}[htbp]
\includegraphics[width=11cm]{figuresHoema/NURBSKnotendoppelt.eps}
\caption[Doppelte Knoten in Knotenliste]{\textbf{Doppelte Knoten in der Knotenliste.} 
\textbf{a)} Zu der Knotenliste (0,1,a,3,4) werden hier die Basisfunktionen %% Liste in $$ gesetzt
\(B_{02},\ B_{12}\) und \(B_{03}\) mit $a=2.8$ gezeigt, und dazu die Basisfunktionen 
\(\bar B_{02},\ \bar B_{12}\) und \(\bar B_{03}\) zur Knotenliste 
$(0,1,3,3,4)$, letztere gestrichelt. Diese wurden unter Weglassen des 
leeren Intervalls [3,3] berechnet. \textbf{b)} Hier werden die Basisfunktionen 
\(B_{11}\) und \(\bar B_{11}\) gezeigt, dazu deren Differenz \(\Delta B_{11}\). 
Ersichtlich geht diese für $a\to3$ im Intervall  $[1,a]$ gegen null.
Das Intervall $[a,3]$ -- in dem wir \(\Delta B_{11}\) nicht ganz vollständig 
gezeichnet haben -- schrumpft auf die Breite null. Daher liegt punktweise Konvergenz für 
 \(B_{11} \to \bar B_{11}\) vor.
}
\label{fig:NURBSKnotendoppelt}
\end{figure}

Abb.~\ref{fig:NURBSKnotendoppelt} a)  zeigt zur Knotenliste $(0,1,a,3,4)$ 
mit $a=2.8$ die Basispolynome \(B_{02},\ B_{12}\) und \(B_{03}\) eines NURBS. 
Zusätzlich werden gestrichelt die gleichen Polynome zur Knotenliste 
$(0,1,3,3,4)$ dargestellt, zur Unterscheidung heißen sie 
\(\bar B_{02},\ \bar B_{12}\) und \(\bar B_{03}\). Sie können in der 
GeoGebra-Datei auf der \cite{Website} alle Polynome 
\(B_{00},\ B_{10},\ B_{20},\ B_{30},\ B_{01},\ B_{11},\ B_{21},\ B_{02},\ B_{12}\) 
und \(B_{03}\)  und deren überstrichene Varianten im Algebrafenster 
zur Anzeige auswählen. Dort können Sie auch die Funktionsterme ansehen. 
Über einen Schieberegler ist der Knoten $a$ im Bereich [2,3] veränderbar, 
sodass Sie den Übergang zum doppelten Knoten verfolgen können. 
So können Sie erkennen, dass die Basisfunktionen mit dem 
doppelten Knoten bei 3, die unter Weglassen des leeren Knotenintervalls 
$[3,3]$ berechnet wurden, sich tatsächlich als Grenzwert für $a\to3$ ergeben


\noindent\vspace{-4mm}\parastrich%-------------------------------------% 
\paragraph{Genauere Betrachtung der Basisfunktionen} Als erste wäre die Basisfunktion
\begin{align}
\label{eq:ersteBasis}%
B_{11}(x)=\frac{x - 1}{a - 1}B_{10}(x) + \frac{3 - x}{3 - a}B_{20}(x)
\end{align}
vom doppelten Knoten bei 3 betroffen, denn sie enthält den Bruch 
\(\frac{3-x}{3-a}\) als Teilterm. Dieser ist 
für \(a=3\), also den verdoppelten Knoten, nicht definiert. In GeoGebra 
auf der \cite{Website} können Sie alles verfolgen.
Ziehen Sie \(a\) auf 3, dann wird \(B_{11}\) nicht mehr angezeigt, und alle 
vom Intervall [a,3] abhängigen Funktionen auch nicht. Deshalb 
gibt es von den Funktionen \(B_{10},\ B_{01},\ B_{11},\ 
B_{21},\ B_{02},\ B_{12}\) und \(B_{03}\) Versionen, die 
undefinierte Teilterme weglassen und \(a=3\) setzen. \(B_{20}\) wird 
nicht mehr gebraucht. 


Wir wollen zum Verstehen durch Anschauen aber auch noch einen 
\textbf{rechnerischen Beweis} liefern, und zwar für \(B_{11}\), welche Funktion 
ja sozusagen der "`Anfang allen Übels"' ist. 
Abb.~\ref{fig:NURBSKnotendoppelt} b) zeigt \(B_{11}\), die Version
\(\bar B_{11}\) zur Knotenliste (0,1,3,3,4) und 
die Funktion \(\Delta B_{11} = B_{11} - \bar B_{11}\). Es ist 
\begin{align*}
  \Delta B_{11} &= \left(\frac{x-1}{a-1} - \frac{x-1}{3-1}\right)B_{10} 
	+ \left(\frac{3-x}{3-a} - \frac{x-1}{3-1}\right)B_{20} =  \\
  &= (3-a)\frac{x-1}{(a-1)(3-1)}B_{10} + \text{ irgendwas }\cdot B_{20}.
\end{align*}
Der linke Summand geht gegen 0, wenn \(a\to3\) geht, der rechte ist 
nur zwischen dem 2. und dritten Knoten, also auf dem Intervall $[a,3]$, 
von null verschieden. Daraus folgt, dass 
punktweise \(\Delta B_{11}\to0\) geht für \(a\to3\), oder anders 
gesagt $B_{11}\stackrel{a\to3}\longrightarrow \bar B_{11}$ punktweise.  


Eine analoge Rechnung gelingt in allen anderen Fällen ebenso. Schauen 
Sie sich auch an, wie die Grenzfunktionen für \(a=3\) im doppelten 
Knoten einmal weniger differenzierbar sind als ohne doppelten Knoten 
(0-mal differenzierbar heißt dabei einfach "`stetig"') und überlegen 
Sie, dass das daran liegt, dass die Gewichtsfunktionen am 
Intervallrand am doppelten Knoten keine Nullstelle mehr haben: der 
dazu nötige Term --~im Beispiel $B_{11}$ aus Formel \eqref{eq:ersteBasis} ist er 
$(3-x)\frac{B_{20}}{3-a}$~-- wird gerade weggelassen! 

%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{NURBS in der Praxis}%
\label{sssec:NURBS-Praxis}%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Wir haben hier nur Grundlegendes mit wenigen Steuerpunkten gezeigt. Aber auch 
dafür brauchte man schon ein kräftiges CAS, 
vor allem um die Rekursionen und die mehrfach indizierten Terme zu handhaben. 
Im letztgenannten Beispiel haben wir die Ergebnisse aus 
Mathematica nach GeoGebra übertragen. So aber konnten Sie die Grundgedanken 
verstehen. 
Wenn Sie Genaueres wissen wollen, suchen Sie im  Internet nach neuen 
Veröffentlichungen, denn das Thema befindet sich in schneller 
Entwicklung. "'The NURBS Book"' \cite{Piegl} ist ein älteres, aber 
ausführliches Grundlagenbuch dazu. 
 
\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/NURBS-Torus}
\caption[Torus als NURBS]{\textbf{\?Torus\? als NURBS.} In der Praxis gibt es 
ausgereifte Software für NURBS, die dem Anwender die Mühen abnimmt. Das gilt 
insbesondere für den Einsatz im 3D-Bereich. Im Gegensatz zu einfacheren 
Konzepten für Splines können NURBS sowohl Freiformen als auch Standardformen 
wie Zylinder, Kegel, Ringe, Kugel u.\,s.\,w. gestalten.}
\label{fig:NURBS-Torus}
\end{smallfigure}
\noindent%
Wir zeigen Ihnen dieses Bild, weil in Animationsfilmen ja auch dreidimensionale 
Objekte dargestellt werden müssen.


%SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
%######################################################
\section{Numerische Integration}\label{sec:int-num}
%#######################################################
Seit der griechischen Antike und bis in die Barockzeit galt die 
\textbf{Geometrie} als die \textbf{Königsdisziplin} der Mathematik. 
Danach erst kamen durch Leibniz, Newton, Euler und viele andere die 
Differential- und Integralrechnung in die mathematische Welt. 
Der \textbf{Mathematiker Johannes \?Kepler\?} aber, der schon vorher, etwa um 
1600, die wesentliche Formel zur exakten Berechnung der 
Parabelflächen und näherungsweisen Bestimmung beliebiger Funktionsflächen 
aufstellte, ahnte von Integralen nichts, aber er hatte fundierte
Kenntnisse der griechischen Geometrie. Insbesondere kannte er die Werke 
"`\textbf{Kegelschnitte}"' von Apollonius von Perge und 
"`\textbf{\Index[Archimedes!]{Parabelausschöpfung}}"' 
von Archimedes (etwa 200 v.Chr.). 
Damit ist der Kern der \INDEX[!\~'sche Regel]{Kepler}'schen Regel, der wir uns 
jetzt widmen, schon über \textbf{2000 Jahre alt}.   
In \cite[S. 260 ff.]{HaftendornM} gibt es zur Parabelausschöpfung einige 
Bilder, vollständig finden Sie den archimedischen Beweis im Kurvenbuch 
\cite[S.~179 f.]{HaftendornK}. 

Das Wort \textbf{\?Quadratur\?}, das für "`Flächenberechnung"' steht, kennt man 
auch von der "`Quadratur des Kreises"'. 
Damit war die rein geometrische Umwandlung der Fläche eines Kreises in ein 
Quadrat gemeint. Das ist eines der "`unlösbaren Probleme der Antike"'. 
In Formelsammlungen heißen die nun folgenden Formeln oft 
\textbf{Quadraturformeln}.   
Hier wollen wir uns auf Keplers Beitrag zur numerischen Integration 
konzentrieren, also auf seine Methode, ein Integral nicht analytisch, 
sondern numerisch und angenähert zu berechnen. 

Die numerische Berechnung von Integralen wird immer dann nötig, wenn 
der analytische Weg nicht gangbar ist, weil
\begin{itemize}
	\item	der Integrand keine Stammfunktion aus elementaren Funktionen 
		hat, oder
	\item	zwar eine Stammfunktion existiert, aber nur sehr aufwendig zu 
		verwenden ist, oder
	\item	der Integrand gar nicht als analytischer Term vorliegt, 
		sondern nur als Wertetabelle, weshalb eine analytische 
		Berechnung gar nicht vorstellbar ist.		
\end{itemize}


\paragraph{Einfache Methoden zur numerischen Berechnung von Integralen} 
\label{page:numintsimple}%
liegen auf der Hand: Man kann Integrale sofort 
\vspace{-2mm}
\begin{enumerate}
	\item	durch   \textbf{\INDEX[, Bernhard!\~'sche Summe]{Riemann}'sche 
    Obersummen oder Untersummen} zu einer 
		geeigneten, mehr oder weniger feinen Zerlegung des 
		Integrationsintervalls in Teilintervalle annähern, siehe in
    Abb.~\ref{fig:intdef} die linken beiden Bilder, oder
	\item	durch Riemann'sche Summen annähern, wobei als Funktionswert aus 
		dem Teilintervall der Funktionswert am Intervallanfang genommen 
		wird, oder
	\item	durch Riemann'sche Summen annähern, wobei als Funktionswert aus 
		dem Teilintervall der Funktionswert in der Intervallmitte genommen 
		wird ({\bf \?Mittenregel\?}), oder
	\item	durch \textbf{\?Trapezsumme\?n} annähern, 
    wie sie in Abb.~\ref{fig:numIntwirdnumDGL}\,c) gezeigt sind.
\end{enumerate}
\vspace{-2mm}
Mit der \textbf{1.} Möglichkeit erhält man automatisch eine Fehlerabschätzung 
als Differenz von Ober- und Untersumme mitgeliefert.\\
Die \textbf{4.} Möglichkeit liefert eine bessere Annäherung und auch eine 
feinere Fehlerabschätzung, die wir uns später kurz ansehen.\\
Der \textbf{2. bis 4.} Möglichkeit werden Sie in der einfachsten (und 
ungenauesten) Version mit nur {\bf einem} Teilintervall bei der 
numerischen Lösung von Differentialgleichungen wiederbegegnen, schauen 
Sie bei Abb.~\ref{fig:numIntwirdnumDGL} nach. 
Für die Praxis sind alle diese Möglichkeiten zu ungenau oder zu 
aufwendig. Schauen wir also, was Kepler zu sagen hat. 

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Kepler'sche Regel}\label{subsec:keplerregel}%
\label{subsec:kepler-regel}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Hier konzentrieren wir uns auf die Kepler'sche Integrationsregel. Sie wird 
auch \textbf{Kepler'sche Fassregel} genannt, sie berechnet 
aber Flächen, nicht Volumina. 
Wir formulieren jetzt gleich den allgemeinen Satz, beweisen ihn im nächsten 
Abschnitt zuerst auf die historische, geometrische Art, und dann nochmals mit 
Hilfe der Integralrechnung. 

\begin{lemma}[Kepler'sche Integrationsregel] \label{lem:kepler-regel}
Das Integral über eine beliebige im Intervall $[a,\,b]$ (\und{fast überall})
\Index{Funktion!stetig!fast überall}% 
stetige Funktion $f$ ist näherungsweise 
{\boldmath
\[
  I = \int_a^b{ f(x) }\,\d x \approx\frac{b-a}{6}\left(f(a) + 
  4f\left(\frac{a+b}{2}\right) + f(b)\right)
  \stackrel{\mbox{kurz}}{=} \frac{h}{3}(y_a + 4 y_m + y_b). 
\] 
}% Ende boldmath
mit der Streifenbreite $h=\frac{b-a}{2}$. \\
Für Parabeln und Polynome 3. Grades ist die Berechnung exakt.
\end{lemma}% LAYOUT
\noindent%
Die mehrfache Anwendung der Kepler'schen Regel wird in der 
Quadraturformel von Simpson \ref{subsec:simpson-regel} formuliert, 
dort gehen wir auch auf die Fehlerabschätzung ein.  
Die Aussage über Polynome dritten Grades  wird in 
Abschnitt~\ref{sssec:kepler-p3} gezeigt. Nun aber  
zu den zwei Beweisen der Aussage des Satzes ~\ref{lem:kepler-regel} über 
Parabeln.

%sssssssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\subsubsection{Die Kepler'sche Regel ist exakt für Parabeln}%
\label{sssec:kepler-parabel}%
%ssssssssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\begin{figure}[htbp]
\includegraphics{figuresHoema/kepler-beweise}
\caption[Kepler'sche Regel, Beweise]{\textbf{Beweise der Kepler'schen Regel:} 
\textbf{a)} beweist mit der linken Parabel eine 
Sondersituation, die dann rechts daneben verwendet wird. \textbf{b)} 
zeigt den historischen, geometrischen Weg von Archimedes und Kepler. 
Ein Parabelsegment (grün) nimmt \textbf{immer} $\frac{2}{3}$ des 
umbeschriebenen (blau gestreiften) Parallelogramms ein.}
\label{fig:kepler-beweise}
\end{figure}
\vspace{-5mm}% LAYOUT
\begin{proof} Wir nehmen Bezug auf Abb.~\ref{fig:kepler-beweise}. 
Dort ist in  vier Stellungen die Form der Normalparabel zu sehen, 
dazu ein stets gleiches Intervall $[a,b]$. Die jeweils linke 
Parabel in a) bzw. b) zeigt eine Kernaussage, die dann für alle Stellungen, 
z.\,B. die der jeweils rechten \?Parabel\? auch gilt. Für Integrationen 
sind waagerechte Verschiebungen natürlich nicht wesentlich, 
aber auch einen Öffnungsfaktor für die Parabeln braucht man wegen 
der Linearität des Integraloperators nicht zu berücksichtigen.

\paragraph{Der historische Beweis} beruht auf der Erkenntnis von Archimedes, 
dass nämlich ein Parabelsegment, in Abb.~\ref{fig:kepler-beweise}\,b) grün 
gezeichnet, exakt \textbf{zwei Drittel} des blau gestreiften 
\textbf{Parallelogramms} 
einnimmt, wobei die zu der Sehne parallele Tangente ihren Berührpunkt genau 
an derselben Abszisse hat wie der Mittelpunkt der Sehne, 
nämlich in der Mitte des Intervalls $[a,b]$. Für die (rote) Integralfläche $I$ 
ist dann das Segment von dem großen Trapez mit der 
Fläche $T_g=(b-a)\frac{y_a+y_b}{2}$ zu subtrahieren. 
Das blau gestreifte Parallelogramm errechnet sich aus der Differenz des 
großen Trapezes $T_g$ und des kleinen Trapezes $T_k$ mit dem Tangentenstück $
\overline{GH}$. \\
Zusammen folgt mit der \textbf{\?Trapezformel\?} 
"`$F=$ Mittellinie $\cdot$ Höhe"' dann
\[
I=T_g -\frac{2}{3}(T_g-T_k)=\frac{1}{3}T_g+\frac{2}{3}(b-a)(y_m)=\frac{b-a}{6}
(y_a+4 y_m +y_b).
\] 

\begin{figure}[htbp]
\includegraphics{figuresHoema/parabel-segment}
\caption[Parabelsegment]{\textbf{Allgemeine Aussage über Parabelsegmente}, 
bewiesen mit Integralrechnung und \und{Scherung}.
\Index{Abbildung!Scherung}% 
Näheres dazu im Text.
 }
\label{fig:parabel-segment}
\end{figure}
\paragraph{Wenn man den eleganten Weg von Kepler vollständig 
begründen will,} ohne die Erkenntnis von Archimedes einfach 
hinzunehmen, kann man in der in Abb.~\ref{fig:parabel-segment} 
vorgeschlagenen Weise wie in \textbf{a)} vorgehen und 
$\int_0^b x^2\d x=\frac{1}{3}b^3$ bilden \textit{und} zeichnen.
Spiegelt man dann wie in \textbf{b)} an der y-Achse, 
hat man ein gerades (blaues) Segment im Rechteck der Breite $2b$ 
und der Höhe $b^2$. Die (blau gestreifte) Integralfläche 
ist $\frac{2}{3}b^3$, also $\frac{1}{3}$ der Rechtecksfläche. 
Damit bleiben für das (grüne) Segment $\frac{2}{3}$ der Rechtecksfläche. 

Die Addition einer Ursprungs-Geraden $g$ zu einer Funktion $f$ bedeutet stets 
eine \textbf{Scherung} mit der y-Achse als Scherachse und 
dem Steigungswinkel $\alpha$ der Geraden als Scherwinkel. Die in \textbf{c)} 
gezeigte Parabel $f+g$ berührt die Gerade $g$ im Ursprung. 
Aus dem Rechteck wird ein flächengleiches Parallelogramm, denn Scherungen 
sind flächentreue affine Abbildungen, siehe Abschnitt \ref{sssec:affine-abb}.

In diesem Parallelogramm nimmt das \textbf{Segment $\frac{2}{3}$ der 
Parallelogrammfläche} ein. 
Da Verschiebungen und Streckungen Flächenverhältnisse nicht ändern, gilt dies 
für \textbf{jedes Segment} und bei \textbf{jeder Parabel}.

\paragraph{Ein zweiter Beweis der Kepler'schen Regel gemäß 
Abb.~\ref{fig:kepler-beweise}\,a)} berechnet die im Bild a) mit 
$c$ bezeichnete, hellbraune Fläche unter der Parabel $y=x^2$ zu einem 
Intervall $[a,b]$ als das Integral  
$I_c=\int_a^b{x^2}\d x=\frac{1}{3}(b^3-a^3)=\frac{1}{3}(b-a)(a^2+ab+b^2)$. 
Die letzte Gleichung findet man durch Polynomdivision oder Horner-Schema, 
siehe Seite \pageref{page:horner}.
Wir bemühen uns nun, die Summanden der Kepler'schen Regel "`ins Spiel"' 
zu bringen. Es ist $y_a=a^2$, $y_b=b^2$, und die Ordinate in der 
Mitte bei $m$ in a) sei $\hat y_{m}$. In den nachfolgenden Bildteilen ist 
die Mittenordinate dann $y_m$. Es gilt
$4\hat{y}_m=4\left(\frac{a+b}{2}\right)^2=(a+b)^2=a^2+2ab+b^2$. 
Damit gilt für das gesuchte Integral 
$I_c=\frac{1}{3}(b-a)(a^2+ab+b^2)=\frac{b-a}{6}(2a^2+2ab+2b^2) = 
\frac{b-a}{6}(a^2+(a^2+2ab+b^2)+b^2)
= \frac{b-a}{6}(a^2+4\hat y_{m}+b^2)$

Wird die Parabel nun nach oben verschoben, wie in der rechten Parabel von a) 
zu sehen, übernimmt der Scheitel $S=(s,y_s)$ 
die Rolle des Ursprungs. Für die gemeinte (rote) Integralfläche muss zu dem 
eben berechneten  $I_c$ noch das (violette) Rechteck $r=(b-a)\cdot y_s$ 
addiert werden.  Es ist dann\\
$I=\int_a^b{ f(x) }\,\d x = I_c+r = \frac{b-a}{6}(a^2 + 4\hat y_{m} + b^2+6 y_s)
= \frac{b-a}{6}(a^2 + y_s + 4 \hat y_{m} + 4y_s + b^2 + y_s) = 
\frac{b-a}{6}(f(a) + 4 y_m + f(b))$ mit $y_m = f\left(\frac{a+b}{2}\right)$. 
Dies ist die behauptete Gleichung.  

Anmerkung: Das linke Integral $I_c$ steht in \textit{keinem festen Verhältnis} 
zu einem anderen Teil der Zeichnung, wie es bei der 
Kepler'schen Methode der Fall ist.
\end{proof}

%sssssssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\subsubsection{Die Kepler'sche Regel ist ebenfalls 
exakt für Polynome 3. Grades}%
\label{sssec:kepler-p3}%
%ssssssssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
Die Abb.~\ref{fig:kepler} geht aus von einem beliebigen 
\INDEX[!Interpolations\~]{Polynom} dritten 
Grades, das als Interpolationspolynom $p_3$ durch vier Punkte 
(siehe Abschnitt~\ref{subsec:interpolpoly}) bestimmt wird. Die zweite 
Stützstelle sei dabei in der Mitte zwischen der 1. und 3. Stützstelle. 
Durch die ersten drei Stützpunkte wird nun --~auch als Interpolationspolynom~--
 eine Parabel gelegt. Mit diesen Stützpunkten wird das Integral 
über die Parabel nach der Kepler'schen Regel exakt berechnet. 

\begin{figure}[htbp]
\includegraphics{figuresHoema/kepler}
\caption[Kepler'sche Regel]{\textbf{Kepler'sche Regel für eine Parabel und 
ein Polynom \boldmath $p_3$.} 
\textbf{a)} Die beiden Integralflächen haben zwar nicht 
dieselbe Form, aber dieselbe Fläche. 
\textbf{b)} Der Grund ist, dass das Integral über ihre Differenzfunktion null 
ist. 
\textbf{c)} Kleines Lehrstück zur Bestimmung der Interpolationspolynome mit in 
GeoGebra definierten Matrizen (siehe Text unten und \cite{Website}).}
\label{fig:kepler}
\end{figure}
\noindent%
Das Integral über die Parabel ist in Abb.~\ref{fig:kepler}\textbf{\,a)} links 
mit grüner, aufwärts gerichteter Schraffur zu sehen. 
Das ebenfalls von GeoGebra gelieferte Integral über $p_3$ hat 
braune abwärts gerichtete Schraffur und 
wird als $d=3\frac{1}{3}$ angezeigt. Es ist zunächst \textit{nicht} 
offensichtlich, 
dass die allein grün schraffierte Fläche die 
gleiche Größe hat wie die allein braun 
schraffierte. Diese beiden sind in \textbf{Bild b)} nochmals dargestellt, 
dazu auch die Differenzfunktion $\bigl($Polynom $p_3$ minus  Parabel$\bigr)$. 
Sie ist sicher 
selbst ein Polynom dritten Grades mit drei Nullstellen, deren eine in der 
Mitte der beiden anderen liegt, wie in der Kepler'schen Regel vorausgesetzt. 
Damit muss aber die mittlere Nullstelle der Wendepunkt sein, der beim dritten 
Grad stets 
Symmetriepunkt ist. Darum sind die beiden gestreiften Flächen betragsmäßig 
gleich groß und die für die Parabel gezeichnete Integralfläche hat dieselbe 
Größe wie die Integralfläche des Polynoms $p_3$.

%sssssuuuuuuuuuuuuuuuusssssssssssssssssssssssssssssssssss
\subsubsection{Interpolationspolynom elementar mit GeoGebra finden}%
\label{sssec:interpol-elementar}%
%ssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
In Abb.~\ref{fig:kepler}\textbf{\,c)} ist das Fenster der 
\textbf{Tabellenkalkulation} 
von \?GeoGebra\? zu sehen. In diesem kleinen Abschnitt 
knüpfen wir an Seite~\pageref{sssec:para-3-pkte} an. 
Wir zeigen, wie man auf einfache Weise die Koeffizienten 
$\vec{a}=(a_0,a_1,a_2)^\T$ des Polynoms 
bei gegebenen Stützstellen $\vec{x}=(x_0,x_1,x_2)^\T$ und 
Stützwerten $\vec{y}=(y_0,y_1,y_2)^\T$ berechnen kann. Das 
Gleichungssystem auf Seite~\pageref{sssec:para-3-pkte} kann 
vektoriell geschrieben  werden als 
\[
\left(\begin{matrix}y_0\\y_1\\y_2\end{matrix}\right)=
\left(\begin{matrix}1&x_0&x_0^2\\
1&x_1&x_1^2\\1&x_2&x_2^2\\
\end{matrix}\right)\cdot
\left(\begin{matrix}
a_0\\a_1\\a_2
\end{matrix}\right), \mbox{ in Kurzform: } \vec{y}=A\cdot \vec{a}.
\] 
Im Tabellenfenster sehen Sie ab B5 nach unten die Stützstellen, ab C5 die 
Stützwerte. Die Zahlen auf weißem Hintergrund sind für die Parabel, die auf 
grünem für das Polynom 3. Grades $p_3$.
Auch die Zahlen der Matrix $A$ sind in A1:C9 passend eingetragen. 
Übertragung, 
Quadrierung usw. von Zellen funktioniert in GeoGebra wie bei jeder 
\?Tabellenkalkulation\?s-Software. In GeoGebra aber kann man nun durch Markieren 
eines  Bereiches mit der rechten Maustaste den Befehl "`Erzeuge Matrix"' 
auswählen. In allen anderen Fenstern ist dann die entsprechende Matrix 
verfügbar. 

Nun setzt man einfach die Methoden der linearen Algebra ein und berechnet mit 
$\vec{a}=A^{-1}\cdot \vec{y}$ die gesuchten Koeffizienten. Damit können die 
Parabel $f$ und das Polynom $g$ definiert und für die linken Bilder in Abb.~
\ref{fig:kepler} verwendet werden.

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Simpson'sche Regel}%
\label{subsec:simpson-regel}%
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Eine größere Genauigkeit erreicht man, wenn man das Integrationsintervall in 
eine gerade Anzahl von gleich breiten Intervallen oder Streifen zerlegt und 
dann in nebeneinanderliegenden Streifenpaaren immer die Kepler'sche Regel 
anwendet. Das Ergebnis ist die \textbf{\INDEX[|(]{Simpson'sche Regel}}.

\begin{figure}[htbp]
\includegraphics{figuresHoema/simpson}
\caption[Simpson'sche Regel]{\textbf{Simpson'sche Regel an Beispielen.} 
\textbf{a)} zeigt die Simpson-Regel mit 4 Streifen der Breite $h=0.25$ für die 
Funktion $\sin(\pi x^2)$. 
In \textbf{b)} wird die Viertelkreisfläche mit ebenfalls 4 Streifen der Breite 
1 angenähert, aber mit bescheidenem Erfolg.
\textbf{c)} zeigt eine Näherung für die wichtige 
Gauß'sche Glockenkurve mit 8 Streifen, der Fehler liegt unter 3 
Millionstel.\\
Weiteres zu den gezeigten Näherungen steht im 
Abschnitt~\ref{sssec:simpson-beispiele} nach der 
Simpson-Formel in Satz~\ref{lem:simpson-regel} und der 
Fehlerbetrachtung~\ref{sssec:simpson-fehler}.}
\label{fig:simpson-regel}
\end{figure}

\vspace{-3mm}
\begin{lemma}[Simpson'sche Integrationsregel]\label{lem:simpson-regel}
Ein Intervall $[a,\,b]$ wird in $2N$ Streifen der Breite $h:=\frac{b-a}{2N}$ 
aufgeteilt, dadurch sind $2N+1$ Stützpunkte $P_i=(x_i,y_i)$ mit $y_i=f(x_i)$ 
und $i\in \{0,1,\dots 2N\}$ definiert. Das Integral über eine beliebige 
(fast überall) stetige Funktion $f$ in diesem Intervall ist dann 
näherungsweise 
{\boldmath
\[
   I = \int_a^b{ f(x) }\,\d x \approx 
\frac{h}{3}\left( y_0 + 4y_1 + 2y_2 + 4y_3 + 2y_4 + \dots + 4y_{2N-1} + y_{2N}
\right).
\] 
}% Ende boldmath
\noindent%
Sachlich sind dabei $N$ Kepler-Regeln aneinander gesetzt, die 
Ordinaten an den inneren "`Nahtstellen"', die $y_{2i}$, kommen 
deshalb doppelt vor.\\ 
Für Parabeln und Polynome 3. Grades ist die Berechnung exakt.
\end{lemma}

%sssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\subsubsection{Fehlerbetrachtung zur Simpson'schen Regel}%
\label{sssec:simpson-fehler}%
%sssssssssssssssssuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
In der Numerik geht es nicht nur darum, wie ein numerisches 
Verfahren durchgeführt wird und warum es zur Problemlösung beiträgt, 
sondern wichtig ist auch die \textbf{Abschätzung des Fehlers}, 
des Unterschieds vom "`wahren"' Wert, den man bei Verwendung  
des Verfahrens maximal haben wird.  

Wenn mit der Simpson-Regel und Streifenbreite $h$ der Wert $S_h(f;a,b)$ 
berechnet wurde, kann man ein \textbf{\?Restglied\?} $E_h$ einführen und 
schreiben: 
{\boldmath 
\[
  I = \int_a^b f(x)\,\d x = S_h(f;a,b) + E_h(f;a,b).
\]
}% Ende boldmath
In \cite[S. 577 f.]{Engeln-Muellges} wird das Restglied  
$E_h(f;a,b)$ für 4-mal stetig differenzierbares $f$ hergeleitet:
{\boldmath
\[
  E_h(f;a,b) = -\frac{b-a}{180}h^4 f^{(4)}(\eta) \mbox{ mit }
  \eta\in(a,b),\ h = \frac{b-a}{2N}.
\]
}% Ende boldmath
Man sagt daher, das \textbf{Simpson-Verfahren habe die 
\Index[Simpson'sche Regel!]{Fehlerordnung} \boldmath $\O(h^4)$}. \\
Ins Restglied $E_h$ geht der Wert der vierten  
Ableitung an einer "`Zwischenstelle"' $\eta$ als Faktor  ein. Solche 
Formulierungen  mit  "`ominösen"' Zwischenstellen kommen in vielen Themen der 
Mathematik, besonders aber hier in der Numerik häufig vor. Gemeint ist: es 
\textit{existiert} so eine Stelle $\eta$ (sprich \textit{eta}), 
mit deren Einsetzung in $f^{(4)}$ man
 den \textit{genauen} Fehler bekommt. Leider kennt man $\eta$ nicht, 
sonst könnte man den Wert (hier des Integrals) ja sofort exakt angeben.

Wenn man die vierte Ableitung berechnen kann und ihren maximalen 
Betragswert kennt, hat man wenigstens eine \textbf{obere Schranke} für den 
Betrag des Fehlers. Wenn man die Streifenbreite verdoppelt, wird wegen  
$(2h)^4=16h^4$ der alte Fehler $\frac{1}{16}$ des neuen 
Fehlers betragen\footnote{Weil die Zwischenstellen $\eta_h$ und $\eta_{2h}$ 
i.\,d.\,R. nicht übereinstimmen, ist dies nur angenähert richtig.}, 
kurz $E_h\approx\frac{E_{2h}}{16}$. 

\paragraph{Eine Abschätzung des Fehlers} gelingt, obwohl man seinen 
wahren Wert nicht kennt, durch Vergleich zweier Näherungen: Es ist 
$E_{2h} = \frac{16}{16}E_{2h} = \frac{1}{16}E_{2h} + \frac{15}{16}E_{2h} 
\approx E_h + 15 E_h\then E_{2h} - E_h\approx 15E_h$. 
Seien $S_{2h}$ und $S_h$ die Näherungen, die man mit der 
Streifenbreite $2h$ bzw. $h$ errechnet hat. 
Dann gilt für das Integral $I$ sowohl $I \approx S_{2h}+E_{2h}$ 
als auch $I \approx S_{h}+E_{h}$ 
und damit  $0\approx S_{2h}- S_{h}+E_{2h}-E_h=S_{2h}-S_h+15E_h$. 
\vspace{-5mm}

\begin{merke}[Fehlerabschätzung durch Verdopplung der Streifenbreite]
Der Fehler  $E_h$ lässt sich näherungsweise aus den Werten der 
Näherungen $S_{2h}$ und $S_h$ bei doppelter und einfacher Streifenbreite 
bestimmen: 
{\boldmath $E_h\approx\dfrac{S_h-S_{2h}}{15}$.}
\end{merke}

\vspace{-5mm}
\textbf{Anmerkung:} Für Polynome bis zum dritten Grad ist $f^{(4)}\equiv 0$. 
Wenn man die Fehlertheorie als bewiesen voraussetzt,
folgt auch hieraus, dass die \textbf{Simpson-Formel für Parabeln und Polynome 
3. Grades exakte Integralwerte liefert}. 
Wir haben diesen Sachverhalt oben für 
die Kepler-Formel bewiesen, weil aber Simpson nur Kepler'sche 
Doppelstreifen aneinander reiht, 
gilt er auch für die Simpson-Formel. Allerdings hat man ja mit 
nur zwei Streifen, also der Kepler-Formel, schon den exakten Integralwert. 
Die Mehrarbeit mit Simpson braucht man sich nicht zu machen.

%###########################################################################
\subsubsection{Betrachtungen zu den Näherungen in 
Abb.~\ref{fig:simpson-regel}}%
\label{sssec:simpson-beispiele}%
%###########################################################################
\vspace{-5mm}% LAYOUT
\begin{description}
\item[a) Funktion {\boldmath $f(x)=\sin(\pi x^2)$.}
] Das Integral $I=\int_0^1 f(x) \d x$ kann grundsätzlich nur 
numerisch bestimmt werden, es ist "`nicht geschlossen lösbar"', 
d.\,h. es gibt keinen Term für eine Stammfunktion mit elementaren 
Funktionen. Mit jedem CAS erhält man $I\approx 0.50485459$ mit 
8-stelliger Genauigkeit. 

Will man sich einen Näherungswert mit der Simpson-Regel beschaffen, 
ist zu erwarten, dass man schon mit 4 Streifen zu einem passablen Wert 
für das Integral kommt, denn man sieht, dass zwei Parabeln 
etwa passen könnten. Tatsächlich ist mit $2h=\frac{1}{4}$ der 
Näherungswert $S_{2h}=0.5098096$. Der relative Fehler ist knapp $1\%$.

Wir wollen nun die Abschätzung aus dem obigen blauen Kasten anwenden. 
Dazu bestimmen wir auch $S_h=0.50520282$ und schätzen damit 
$E_h\approx\frac{S_h-S_{2h}}{15}=-0.0003071$. In Wahrheit ist 
$E_h=I-S_h=-0.0003482$, das ist in derselben Größenordnung.
 
Führen wir noch eine Halbierung von $h$ durch, erhalten wir 
$S_{h/2}=0.50487585$ und damit
$E_{h/2}\approx \frac{S_{h/2}-S_h}{15}=-0.00002180$. In Wahrheit ist
$E_{h/2}=I-S_{h/2}=-0.00002125$.

Addieren wir den approximierten Fehler als Korrektur zur Näherung, kommen wir 
auf $I\approx S_{h/2}+E_{h/2}= 0.50485405$, das ist ein absoluter Fehler von 
$0.54\cdot10^{-6}$ und ein relativer Fehler von etwa 1 Millionstel.

\item[b) Viertelkreis, Funktion {\boldmath $f(x)=\sqrt{4^2-(x-4)^2}$.}] 
Bei diesem Beispiel ist die Steigung von $f$ im Ursprung unendlich, 
für $f^{(4)}$ trifft das erst recht zu. Damit ist $f^{(4)}$ nur in 
dem \textbf{halboffenen Intervall $(0,1]$ stetig. 
} Man sieht in Abb.~\ref{fig:simpson-regel}\,b) deutlich, dass der 
Löwenanteil des Fehlers in der Nähe des Ursprungs entsteht. Der 
relative Fehler ist hier knapp $2\%$. Das Simpson-Verfahren wird 
letztlich dennoch konvergieren, aber man wird eine deutlich höhere 
Streifenzahl für eine brauchbare Genauigkeit benötigen.  

\item[c) Gauß\Idx{Gauß!\~}{'sche Glockenkurve}, 
{\boldmath $f(x)=\frac{1}{\sqrt{2 \pi}}\e^{-\frac{x^2}{2}}$.}]
Auch hier kann ein Wert für das Integral nur numerisch beschafft 
werden, es gibt aber keine Probleme.  Mit 8 Streifen ist man schon 
weniger als 3 Millionstel vom wahren Wert entfernt. 
\end{description}
\Index{Simpson'sche Regel|)}%

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Weitere Verfahren}\label{subsec:weiterint}
%sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Es gibt sehr viele weitere Verfahren zur numerischen Integration, die 
wir keinesfalls alle betrachten wollen. Die bisher vorgestellte Idee 
kann aber weitergedacht werden und so zu einer Reihe von weiteren 
{\bf \?Quadraturformel\?n}, also Approximationen des Integralwertes durch 
geeignete Linearkombinationen von ausgewählten Funktionswerten, 
führen. Die daraus resultierenden Verfahren wollen wir uns kurz 
ansehen. 

Die Idee bestand darin, Funktionswerte des Integranden an 
gleichabständigen x-Stellen durch ein \INDEX[!Interpolations\~]{Polynom} zu 
interpolieren und dann dieses Polynom zu integrieren. Man kann diese Idee 
verallgemeinern, indem man
\begin{enumerate}
	\item	andere Polynomgrade wählt --~und damit auch andere Anzahlen von 
		Stützstellen,
	\item	die Stützstellen nicht gleichmäßig verteilt, oder gar
	\item	die Integrationsgrenzen als Stützstellen nicht mitnimmt. In 
		diesem Fall erhält man sogenannte {\bf offene} Quadraturformeln, 
		nimmt man die Integrationsgrenzen mit, so heißen sie {\bf geschlossen}.
\end{enumerate}
Wie schon bei der Kepler'schen Regel geschehen, werden wir die 
Quadraturformeln zuerst für Stützstellen im Intervall $[a,b]$ 
formulieren und dann wie beim Übergang zur Simpson'schen 
Integrationsregel mehrfach aneinanderhängen.

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Noch einmal die einfachen Methoden}%
\label{sssec:numinteinfach}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Die auf Seite \pageref{page:numintsimple} aufgeführten einfachen Methoden 
lassen sich alle über Interpolationen beschreiben, zunächst für {\bf nur 
einen Streifen} der Breite $h:=b-a$:
\begin{description}
	\item[Riemann'sche Ober/-Untersumme:] Polynomgrad ist 0, 
		Stützstelle ist die Maximum- bzw.  
		Minimumstelle der Funktion im Streifen.
	\item[Riemann\Idx{Riemann, Bernhard!\~}{'sche Summe}:] ebenso, aber Stützstelle ist beliebig.
	\item[\?Mittenregel\?:] ebenso, aber 
		Stützstelle ist die Intervallmitte.
\end{description}
Das sind alles  {\bf offene} \INDEX[!offen/geschlossen]{Quadraturformel}n.
In allen bisherigen Fällen ist die Approximation gegeben durch
\[
	I = \int_a^b f(x)\,\d x \approx (b-a)f(x_0) = h\,f(x_0)
\]
mit der ausgewählten Stützstelle $x_0$.
\begin{description}
	\item[\?Trapezregel\?:] Polynomgrad ist 1, \label{page:trapezregel}
		Stützstellen sind $x=a$ und $x=b$. Die Approximation ist
\[
	I = \int_a^b f(x)\,\d x \approx (b-a)\frac{f(a)+f(b)}{2} = 
	\frac{h}{2}(f(a)+f(b)). 
\]
\end{description}
Diese Quadraturformel ist geschlossen.
Wenn das Intervall $[a,b]$ in mehrere Streifen einer Breite $h$ zerlegt 
wird, kann man jede der obigen Quadraturformeln mehrfach 
aneinanderhängen. Die Riemann'schen Summen werden erst dadurch 
wirklich zu solchen.

Wie bei der Simpson'schen Regel wollen wir ohne Beweis 
zumindest grobe Fehlerabschätzungen für die "`aneinandergehängten"' 
Quadraturformeln angeben. Es gilt eine allgemeine 
Regel:

\vspace{-5mm}
\begin{lemma}[Fehlerordnung einfacher Quadraturformeln]\label{lem:fehler-quad}
  Integriert eine Quadraturformel alle Polynome bis zum Grad $k$ 
	exakt, und ist $f$ außerdem $(k{+}1)$-mal stetig differenzierbar, so ist die 
	globale \INDEX[|textbf]{Fehlerordnung} 
\[
	\O(h^{k+1}).
\]	
\vspace{-7mm}
\end{lemma}
\vspace{-5mm}
\begin{itemize}
	\item Alle \textbf{Riemann'schen Summen} integrieren nur 
	konstante Funktionen exakt, 
$k=0$, Fehlerordnung ist $\O(h)$.
	\item Die \textbf{Trapezregel} integriert natürlich lineare 
	Funktionen exakt, $k=1$, hat 
also Fehlerordnung $\O(h^2)$.
	\item Auch die \textbf{Mittenregel} integriert überraschenderweise 
	lineare Funktionen 
exakt, denn sie stimmt für diese mit der Trapezregel überein, hat also 
auch Fehlerordnung $\O(h^2)$, obwohl sie eine Stützstelle weniger 
benutzt!
\end{itemize}
\noindent%
In der Abb.~\ref{fig:FehlerSimpleQuadratur} wird dieses Fehlerverhalten 
anschaulich gemacht.

\begin{figure}[htbp]
\includegraphics{figuresHoema/FehlerSimpleQuadratur}
\caption[Fehler einfacher Quadraturformeln]{\textbf{Fehler einfacher 
Quadraturformeln.} Es ist in jedem Bild die approximierte 
Integralfläche im Vergleich mit der wirklichen Integralfläche zu sehen. 
Die Fehlerflächen sind nach links zusammengeschoben und liegen auf 
einem Streifen der Breite $h$ bzw. bei d) $\frac{h}{2}$. Einzelheiten stehen 
im Text. In der GeoGebra-Datei auf der \cite{Website} können Sie mit $n$ die 
Anzahl der Streifen verändern und das Fehlerverhalten verstehen.
}
\label{fig:FehlerSimpleQuadratur}
\end{figure}

\paragraph{Einzelheiten zu Abb.~\ref{fig:FehlerSimpleQuadratur}}
\textbf{Zu a)} {\bf Riemann'sche Untersumme} und \textbf{b)} {\bf Riemann'sche 
Obersumme.} Man sieht, dass die Fehler etwa einen halben $h$-Streifen 
füllen, d.\,h. die Fehlerordnung ist $\O(h)$.\\
\textbf{Zu c)} {\bf Trapezsumme.} Der Streifen der Breite $h$ wird nur zu einem 
kleinen Bruchteil ausgefüllt, die Fehlerordnung ist $\O(h^2)$.\\
\textbf{Zu d)} {\bf Mittenregel.} Die Fehlerflächen haben positive und 
negative Anteile, die sich fast aufheben, deshalb auch hier 
Fehlerordnung $\O(h^2)$. Dieses bedarf einer Erläuterung, der wir den 
folgenden Abschnitt widmen. 

%########################################################################
\subsubsection{\?Fehlerabschätzung\? bei der Mittenregel}%
\label{sssec:FehlerMittenregel}%
%########################################################################
in Abb.~\ref{fig:RechnungMittenregel}  wird deutlich, wie die roten 
Fehlerflächen am linken Rand von Abb.~\ref{fig:FehlerSimpleQuadratur}\,d) 
zustande kommen. 

\begin{smallfigure}[htbp]
\includegraphics[width=8cm]{figuresHoema/RechnungMittenregel-n.eps}
\caption[Fehlerabschätzung Mittenregel]{\textbf{Abschätzung des 
Fehlers bei der \INDEX[|textbf]{Mittenregel}.} 
In der linken Hälfte überschätzt die Mittenregel das Integral um die 
grüne Fläche, in der rechten unterschätzt sie ebenfalls um die grüne 
Fläche. Durch Punktspiegelung dieser an der Mitte kann man links die 
Differenzfläche (rot schraffiert) als Gesamtfehler erkennen. 
Sie hat jeweils Ordinatenstücke der 
Länge $d_1-d_2$, (gelb). \\
Diese roten Differenzflächen sind in Abb.~\ref{fig:FehlerSimpleQuadratur}\,d) 
bei der Mittenregel abgebildet.
}
\label{fig:RechnungMittenregel}
\end{smallfigure}
\noindent%
Dieses Bild erlaubt auch eine Abschätzung des Fehlers. Die Strecken 
$d_1$ und $d_2$ lassen sich abschätzen:
\begin{align*}
  d_2 &= f(x_m+s) - f(x_m) \approx s\cdot f'(x_m) \\
  d_1 &= f(x_m) - f(x_m-s) \approx s\cdot f'(x_m-s)
\end{align*}
Daher ist 
\begin{align*}
	\left|\text{Fehlerordinate}\right| &= \left|\text{Funktion} - 
	\text{Approximation}\right| = \left|d_2 - d_1\right| \approx \\
	&\approx \left|s\bigl(f'(x_m) - f'(x_m-s)\bigr)\right| \approx 
	\left|s^2 f''(x_m-s)\right| \le s^2 \max_{(a,b)}|f''|.   
\end{align*}
Wir setzen zur Abkürzung \fbox{$M:=\max_{(a,b)}|f''|$}.
Durch Integration über die Variable $s$ schätzt man den Fehler 
$\Delta(x_m)$ im Streifen der Breite $h$ mit $x_m$ in der Mitte:
\[
	\Delta(x_m) \le \int_0^{h/2} s^2M\,\d s =\left.\frac{s^3}{3}M 
	\right|_0^{h/2} = \frac{1}{24}h^3M.
\]
Wenn man über die $n$ Streifen summiert und $n=\frac{b-a}{h}$ 
beachtet, dann erhält man für den Gesamtfehler die Abschätzung
\[
	\Delta_{\text{Mittenregel}} \le n\cdot\frac{1}{24}h^3M = 
  \frac{b-a}{24}h^2M = \O(h^2).
\]
Eine ähnliche, aber einfachere Überlegung für die Trapezsumme hat 
übrigens das schlechtere Ergebnis
\[
	\Delta_{\text{Trapezsumme}} \le \frac{b-a}{12}h^2M.
\]

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Newton-Cotes-Formeln}%
\label{sssec:newtoncotes}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Die Kepler'sche und die Trapezregel, welche durch quadratische bzw. 
lineare Polynome interpolieren, fallen in die Gruppe der 
\Index{Newton, Isaac!\~-Cotes-Formel}
{\bf geschlossenen} \und{Newton-Cotes-Formeln}. Ihre natürliche Fortsetzung 
besteht darin, den Grad allgemein auf $n$ zu setzen, $n+1$ 
Stützstellen zu verwenden und davon $n-1$ äquidistant im Intervall 
$[a,b]$ zu verteilen. Leider ist es nicht so wie bei der Kepler'schen Regel, 
dass dann auch garantiert Polynome vom Grad $n+1$ exakt integriert 
werden und die Fehlerordnung nach Satz~\ref{lem:fehler-quad} auf $\O(h^{n+2})$ 
steigt: \Index{Oaa@$O(h^n)$|see {Landau-Symbole}}% 

\begin{lemma}\label{lem:fehler-newton-cotes}
\textbf{Newton-Cotes-Formeln} mit Interpolationspolynomen vom Grad $n$ haben
\begin{align*}
  \text{für gerades } n &= 2m &\text{ \textbf{die globale \?Fehlerordnung\?} }& 
	\O(h^{2m+2}) = \O(h^{n+2}), \\
  \text{für ungerades } n &= 2m+1 &\text{ \textbf{die globale Fehlerordnung} }& 
	\O(h^{2m+2}) = \O(h^{n+1}).
\end{align*}
\end{lemma}
\noindent%
Die nächste \textbf{Newton-Cotes-Formel}, die sogenannte 
\textbf{\?Drei-Achtel-Regel\?}, 
die mit Interpolationspolynomen vom Grad 3 arbeitet, hat also dieselbe 
Fehlerordnung wie die Kepler'sche Regel, bzw. in der 
aneinandergehängten Version wie die Simpson'sche Formel, obwohl ein 
Funktionswert mehr ausgerechnet werden muss! Wir geben Sie 
dennoch an. Das Intervall $[a,b]$ wird dazu in drei Streifen der Breite 
$h=\frac{b-a}{3}$ zerlegt. Die Approximation lautet:{\boldmath
\[
	\mbox{\textbf{Drei-Achtel-Regel:}}  
  \int_a^b f(x)\,\d x \approx \frac{3h}{8}\bigl(f(a) + 3f(a+h) + 
	3f(a+2h) + f(b)\bigr).
\]
\label{page:drei-achtel-regel}% 
}%ende boldmath
Einen Sprung in der Fehlerordnung --~und damit eine Verbesserung~-- 
gibt es mit der nächsten \textbf{Formel, die 
mit Polynomen vom Grad 4 interpoliert}: Das Intervall $[a,b]$ wird in 
vier Streifen der Breite  
$h=\frac{b-a}{4}$ zerlegt. Die Approximation lautet:
\[
	\int_a^b f(x)\,\d x \approx \frac{4h}{90}\bigl(7f(a) + 32f(a+h) + 
	12f(a+2h) + 32f(a+3h) + 7f(b)\bigr).
\]
Die globale Fehlerordnung ist nun $\O(h^6)$, bei Halbierung der Streifenbreite 
fällt der Fehler auf $\frac{1}{64}$.
So kann man immer weiter fortfahren. Allerdings werden ab $n=7$ manche 
Koeffizienten vor den Funktionswerten negativ. Das kann zu 
\Index[Auslöschung und ]{Genauigkeitsverlust}en durch Auslöschung führen, 
weshalb man diese Formeln eher selten verwendet. 

\vspace{-1mm}% LAYOUT
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Gauß-\Index[Gauß!\~-]{Quadratur}}%
\label{sssec:gaussquadratur}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Die gerade eben gemachten Aussagen bezüglich der Fehlerordnung von 
Newton-Cotes-Formeln gelten nicht mehr uneingeschränkt, wenn man darauf 
verzichtet, die Stützstellen äquidistant im Intervall $[a,b]$ zu 
verteilen. Ungleichmäßig verteilte Stützstellen haben den {\bf Nachteil}, 
dass man nicht mehr --~wie bei der Simpson'schen Formel gezeigt~-- auf 
einfache Weise durch Verdopplung der Streifenbreite eine 
Fehlerabschätzung bekommt. Man kann nämlich die alten Stützstellen 
dann nicht "`recyceln"'. Der {\bf Vorteil} ist dafür, dass man optimale 
Quadraturformeln bekommen kann. Was optimal heißt, sagt sich so: 
\begin{merke}[Gauß-Quadratur]
Bei Interpolation mit Polynomen vom Grad $n$, also $n+1$ Stützstellen, 
kann man durch optimale Wahl der \Index[Stuetzst@]{Stützstelle}n erreichen, 
dass sogar Polynome bis zum Grad $2n+1$ exakt integriert werden. Die 
globale \?Fehlerordnung\? ist dann $\O(h^{2n+2})$.
\end{merke}
\noindent%
Üblicherweise werden Gauß-Formeln für den Fall $[a,b]=[-1,1]$ 
angegeben. Für andere Intervalle muss man eine lineare Transformation 
auf die gewünschten Intervallgrenzen vornehmen. 

Wir zeigen den Ansatz für die Suche nach einer Gauß-Quadratur für beliebiges 
$n$, also Interpolation durch ein Polynom vom Grad $n$ mit $n+1$ Stützstellen 
$x_0,\ x_1,\ \dots,\ x_n$. Die Approximation wird angesetzt als
\[
	\int_{-1}^1 f(x)\d x \approx a_0 f(x_0) + a_1 f(x_1) + \dots + a_n f(x_n)
\]
mit $n+1$ Koeffizienten $a_0,\ a_1,\ \dots,\ a_n$, die noch zu finden sind. 
Das sind $2n+2$ unbekannte Größen $a_i$ und $x_i,\ i=0,\dots,n$.
Wir können also $2n+2$ Bedingungen erfüllen. Wenn wir verlangen, 
dass $f=p_{2n+1}$ mit einem Polynom $p_{2n+1}$ vom Grad $2n+1$ exakt 
integriert wird, dann können wir die $2n+2$ Koeffizienten von 
$p_{2n+1}$ beliebig vorgeben, und die Approximation muss exakt sein, 
$\approx$ wird zu $=$. {\bf Das sind genau {\boldmath $2n+2$ Bedingungen für 
$2n+2$} Unbekannte, eine Lösung sollte somit für jedes 
{\boldmath $n$} möglich sein}.
Konkret sieht die Rechnung für $n=1$ so aus:
\begin{align*}
  p_3(x) &= c_3x^3 + c_2x^2 + c_1x + c_0 \quad 
  \text{ist der Ansatz für } p_3, \\ 
	\int_{-1}^1 p_3(x)\d x &= \left. \frac{c_3}{4}x^4 + \frac{c_2}{3}x^3 + 
	\frac{c_1}{2}x^2 + c_0x\right|_{-1}^1 = \\  
	&= \frac{2}{3}c_2 + 2c_0 \stackrel{!}= a_0p(x_0) + 
  a_1p(x_1) = \\
	&= a_0(c_3x_0^3 + c_2x_0^2 + c_1x_0 + c_0) + a_1(c_3x_1^3 + c_2x_1^2 
	+ c_1x_1 + c_0) = \\
	&= c_3(a_0x_0^3 + a_1x_1^3) + c_2(a_0x_0^2 + a_1x_1^2) + c_1(a_0x_0 
	+ a_1x_1) + c_0(a_0 + a_1).  
\end{align*}
Aus dem Koeffizientenvergleich  für $c_3,\ c_2,\ c_1,\ c_0$
erhält man vier Gleichungen:
\begin{align*}
  a_0x_0^3 + a_1x_1^3 &= 0, & a_0x_0^2 + a_1x_1^2 &= \frac{2}{3}, & 
  a_0x_0 + a_1x_1 &= 0, & a_0 + a_1 &= 2. 
\end{align*}
\vspace{0mm}%
Die Lösung ist 
$a_0=a_1=1$ und $x_0= -\frac{1}{\sqrt3},\ x_1 = \frac{1}{\sqrt3}$,
sie ist bis auf die Nummerierung eindeutig. Damit ist das Ergebnis
\begin{merke}[Gauß'sche Quadraturformel]
{\boldmath
\[
  \int_{-1}^1 f(x)\d x \approx f\left(-\frac{1}{\sqrt3}\right) +
	f\left(\frac{1}{\sqrt3}\right).
\]
}% Ende boldmath
\noindent% 
Für ein beliebiges Integrationsintervall führen wir noch die nötige 
Transformation aus:
{\boldmath
\[
  \int_{a}^b f(x)\d x \approx f\left(m-\frac{h}{\sqrt3}\right) +
	f\left(m+\frac{h}{\sqrt3}\right).
\]
mit $m=\frac{b+a}{2},\ h=\frac{b-a}{2}$.
} % Ende boldmath
\end{merke}
\noindent%
Das damit tatsächlich alle Polynome bis zum 3. Grad exakt integriert 
werden, kann man auch auf andere Weise unmittelbar einsehen: Da die
Funktionen $f(x)=1,\ x,\ x^2,\ x^3$ eine Basis von $\Pi_3$ sind und 
Integration ein linearer Operator ist, muss die Exaktheit der Gauß'schen
Quadraturformel nur für diese Basisfunktionen gezeigt werden.
Diese ist für $1,\ x,\ x^3$ unmittelbar einsichtig: für $f(x)=1$ ist 
es bei den Gewichten $a_0=a_1=1$ egal, wo $x_0$ und $x_1$ liegen, es
kommt immer die Summe $1+1=2$ heraus, welches auch der Integralwert ist.
Die anderen beiden sind ungerade Funktionen, Approximation und Integral 
ergeben beide 0, dazu müssen die Stützstellen nur symmetrisch zur y-Achse 
liegen. Nur für $f(x)=x^2$ muss man etwas nachrechnen: Es ist 
$\int_{-1}^1 x^2\d x = \frac{2}{3}$,
andererseits ist $f\left(\pm\frac{1}{\sqrt3}\right) = \frac{1}{3}$, 
und die Summe ist auch $\frac{2}{3}$. Die Situation ist in 
Abb.~\ref{fig:GaussQuadratur} dargestellt.

\begin{figure}
\includegraphics[width=12.6cm]{figuresHoema/GaussQuadratur.eps}
\caption[Gauß'sche Quadraturformel]{\textbf{Die erste 
Gauß\Index[Gauß!\~]{'sche Quadraturformel}} integriert Polynome bis zum Grad 3 
exakt: von links nach rechts sind die Funktionen $f(x)=1,\ x,\ x^2,\ x^3$ 
gezeigt. In blau sieht man jedes Mal die Ordinaten an den Stützstellen 
$\pm\frac{1}{\sqrt3}$, diese Werte sind aber nur ganz links eingetragen. 
Außerdem ist für $x^2$ das (blau schraffierte) Rechteck gezeigt, 
das die Fläche nach der Gauß'schen Quadraturformel darstellt.
}
\label{fig:GaussQuadratur}
\end{figure}

\paragraph{Höhere Gauß'sche Quadraturformeln} ergeben sich aus den 
entstehenden Gleichungen für größere $n$, die offenbar recht systematisch 
aufgebaut sind und zwar linear in den Koeffizienten $a_i$ und nichtlinear in 
den Stützstellen $x_i$. Das letztere ist für größere Werte von $n$ ein 
Problem, denn ab $n=4$ gibt es keine Darstellung durch einfache 
Wurzelterme mehr. Die Umsetzung der höheren Gauß'schen Formeln 
erfordert also noch zusätzlich die numerische Bestimmung der 
Stützstellen, aber darauf gehen wir hier nicht weiter ein.

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Numerische \?Raumintegral\?e}\label{subsec:numintraum}
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Für die numerische Berechnung von höherdimensionalen Integralen gibt 
es eine Vielzahl von Methoden, insbesondere auch deshalb, weil die 
Form der Integrationsgebiete sehr reichhaltig sein kann. Wir gehen 
deshalb nur auf zwei naheliegende Wege ein.

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Rechteck als Integrationsgebiet}%
\label{subsec:numintrechteck}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Ist das \?Integrationsgebiet\? für eine Funktion im $\mathbb R^2$ ein 
Rechteck, bzw. allgemeiner für Funktionen mit mehr als 2 
Veränderlichen ein entsprechend höherdimensionaler \mbox{(Hyper-)}Quader, 
dann bietet es sich an, den Satz von Fubini anzuwenden und jedes der 
beiden einzelnen Integrale mit einer Formel vom Newton-Cotes-Typ 
anzunähern. Nehmen wir das Integral
\[
	\varint_{[a,b]\times[c,d]} f(x,y)\, \d x\,\d y = \int_c^d\left(\int_a^b 
	f(x,y)\,\d x\right) \d y = \int_c^d F(y)\,\d y,
\]
wobei $F(y)$ für das innere bestimmte Integral steht. Wir benötigen 
die Werte von $F$ an den Stützstellen $y_i$ im Intervall $[c,d]$, und 
für jedes $F(y_i)$ brauchen wir die Werte von $f(x_j,y_i)$ an 
Stützstellen $x_j\in[a,b]$. Wenn man hier für alle $y_i$ dieselben 
Stützstellen $x_j$ nimmt, läuft es letztlich darauf hinaus, die Werte 
$f(x_j,y_i)$ mit geeigneten Gewichten zu multiplizieren und zu 
addieren. Die Gewichte selbst sind dabei die Produkte der bei 
der Integration nach $x$ bzw. nach $y$ verwendeten Gewichte.

\begin{figure}[htbp]
\includegraphics{figuresHoema/RaumintegralRechteck.eps}
\caption[Raumintegral numerisch über Rechteck]{\textbf{Raumintegral 
numerisch über ein Rechteck.} 
$\varint_{[a,b]\times[c,d]} f(x,y)\, \d x\,\d y$ für\\ 
$f(x,y)=(x-2)^2+\frac{1}{2}(y-3)^2-7$. 
Bezüglich $x$ wird die Drei-Achtel-Regel, bzgl. 
$y$ die Kepler'sche Regel verwendet. Die Gewichte für die Punkte im Rechteck 
ergeben sich als die Produkte der Gewichte für die einzelnen Variablen.
Z.\,B. ist das Gewicht zu $(x_1,y_1)$ gegeben als 
$\frac{3}{8}\cdot\frac{4}{6} = \frac{1}{4}$. \textit{Gleiche Gewichte 
haben gleiche Farben}. Die Realisierung und die Rechnungen in diesem Fall, 
erstellt mit GeoGebra, finden Sie auf der \cite{Website}.
}
\label{fig:RaumintegralRechteck}
\end{figure}
\noindent%
In Abb.~\ref{fig:RaumintegralRechteck} wird für die Integration nach 
$x$ die 3/8-Regel (Seite~\pageref{page:drei-achtel-regel}), und für die 
Integration nach $y$ die Kepler'sche Regel aus Satz~\ref{lem:kepler-regel}
verwendet. Man schreibt sie am besten wegen $3h = b-a$ für die 
3/8-Regel bzw. $2h = d-c$ für die Kepler'sche Regel in der Form
\begin{align*}
  \int_a^b f(x,y)\,\d x &\approx (b-a)\left(
	\frac{1}{8}f(x_0,y) + \frac{3}{8}f(x_1,y) + \frac{3}{8}f(x_2,y) + 
	\frac{1}{8}f(x_3,y)	\right), \\ 
  \int_c^d f(x,y)\,\d y &\approx (d-c)\left(
	\frac{1}{6}f(x,y_0) + \frac{4}{6}f(x,y_1) + \frac{1}{6}f(x,y_2)
	\right), 
\end{align*}
mit $x_0 = a,\ x_1 = \frac{2a+b}{3},\ x_2 = \frac{a+2b}{3},\ x_3 = b,\ 
y_0 = c,\ y_1 = \frac{c+d}{2},\ y_2 = d$ gleichverteilt in den 
jeweiligen Intervallen. Für die $4\cdot3$ Stellen im Rechteck kann man 
die Gewichte im Bild ablesen, und man erhält die numerische Näherung 
\begin{align*}
  \varint_{[a,b]\times[c,d]} f(x,y)\, \d x\,\d y &\approx (b-a)(d-c)\left(
	\frac{1}{48}f(a,c) + \frac{1}{16}f(x_1,c) + \dots \right.\\ 
	&+ \left.\frac{1}{48}f(b,c) + \frac{1}{12}f(a,y_1) + \dots + 
	\frac{1}{48}f(b,d)	\right).	 
\end{align*}
Es ist klar, dass diese Näherung exakt ist, wenn $f(x,y)$ in $x$ und 
$y$ jeweils einzeln ein Polynom vom Grad höchstens 3 ist. Darunter 
fallen alle Polynome vom gemeinsamen Grad 3 in $x$ und $y$. Bei unserem Beispiel 
in Abb.~\ref{fig:RaumintegralRechteck} ist der gemeinsame Grad 2.
 
\textbf{Mehrere Rechtecke}, auf denen so approximiert wird, kann 
man auch zu einem großen 
Rechteck zusammensetzen. Wenn dann $h$ die Streifenbreite in 
$x$-Richtung und $k$ in $y$-Richtung ist, dann ist die Fehlerabschätzung 
von der Form $\O(h^4) + \O(k^4) = \O(\max(h,k)^4) = \O(h^4)$, wenn wir, 
wie im Folgenden immer, annehmen, dass $h\ge k$ ist.
Analog geht man mit anderen Approximationsformeln vor.

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsubsection{Dreieck als Integrationsgebiet}%
\label{subsec:numintdreieck}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
Die optimalen Quadraturformeln von Gauß kann man --~wie im vorigen 
Abschnitt beschrieben~-- für jede Koordinate einzeln einsetzen. Man kann 
aber auch für andere Integrationsgebiete als Rechtecke direkt, d.\,h. 
ohne Zerlegung in mehrere Integrationen nach Fubini, optimale 
Stützstellen suchen. Wir zeigen drei Beispiele für achsenparallele 
Dreiecke als Integrationsgebiet $G$ in Abb.~\ref{fig:RaumintegralDreieck}.

\begin{figure}[htbp]
\includegraphics[width=12.6cm]{figuresHoema/RaumintegralDreieck.eps}
\caption[Raumintegral numerisch über Dreieck]{\textbf{Raumintegral 
numerisch über ein achsenparalleles Dreieck.} \textbf{a)} Stützpunkt ist der 
Dreiecksschwerpunkt, d.\,h. der Schnitt der Seitenhalbierenden. \textbf{b)} Die 
Stützpunkte liegen auf den Seitenmitten. \textbf{c)} Der blaue Stützpunkt ist 
der Schwerpunkt. Die grünen Punkte sind drei Punkte eines Rechtecks mit 
linker unterer Ecke $\frac{9-2\sqrt{15}}{21}(h,k)$ und rechter 
oberer Ecke $\frac{6+\sqrt{15}}{21}(h,k)$, die roten Punkte sind 
drei Punkte eines Rechtecks mit linker unterer Ecke 
$\frac{6-\sqrt{15}}{21}(h,k)$ und rechter oberer Ecke 
$\frac{9+2\sqrt{15}}{21}(h,k)$; beide Male gehört eine Rechteckecke 
nicht zu den Stützstellen. Die zugehörigen Gewichte sind eingetragen.} 
\label{fig:RaumintegralDreieck}
\end{figure}
\noindent%
Die {\bf Kubaturformeln} lauten in allen Fällen:
\[
	\int_G f(x,y)\,\d x\,\d y \approx \Delta_G\sum(\text{Gewicht}\cdot 
	\text{Funktionswert}) 
\]
Dabei meint $\Delta_G = \frac{1}{2}hk$ die Fläche des Dreiecks. Die 
Gewichte summieren sich deshalb auch zu 1.
\begin{description}
	\item[a) Ein Stützpunkt.] Es werden alle linearen Funktionen exakt 
		integriert. Die Fehlerordnung ist $\O(h^2)$.
	\item[b) Drei Stützpunkte.] Es werden alle quadratischen Funktionen 
		exakt integriert. Die Fehlerordnung ist $\O(h^3)$. Durch 
		Kombination zweier solcher Dreiecke erreicht man auch im Rechteck 
		mit nur fünf Stützpunkten diese Fehlerordnung. Für ein großes 
		Rechteckgitter bleiben nur wenig mehr als drei Stützpunkte pro 
		Rechteck übrig, weil fast alle in zwei Rechtecken gleichzeitig 
		liegen.
	\item[c) Sieben Stützpunkte.] Alle Polynome vom maximalen Grad 5 werden 
	exakt integriert, man hat die Fehlerordnung $\O(h^6)$, allerdings um den 
	Preis von irrationalen Koordinaten und Gewichten! Um diese zu finden, 
	musste wieder ein umfangreiches Gleichungssystem gelöst werden.
\end{description}
Diese Formeln\footnote{Die Quelle der Formeln ist 
\cite[S. 646 f.]{Engeln-Muellges}, 
die ihrerseits auf \cite{Engels} verweist. 
\textit{Achtung}: Engeln-Müllges hat einen Schreibfehler: 
statt $9-\sqrt{15}$ muss es $9-2\sqrt{15}$ heißen.
}
lassen sich leicht auf nicht achsenparallele Dreiecke 
verallgemeinern, man muss nur die Punktkoordinaten entsprechend transformieren,
was insbesondere bei a) und b) sehr leicht ist.

\begin{example}[für ein Raumintegral]\label{ex:raumintegral}
\begin{smallfigure}[ht]
\includegraphics{figuresHoema/RaumintegralBsp.eps}
\caption[Beispiel Raumintegral]{\textbf{Beispiel für ein Raumintegral.} 
Das Integral 
$\int_{-1}^1\int_{-1}^1 \frac{1}{2\pi}\e^{-\frac{1}{2}(x^2+y^2)}\,\d x\,\d y$
wird auf vier Weisen numerisch berechnet. Der richtige Wert ist $0.466065$,
als Näherungen ergeben sich \\
\textbf{a)} $0.569672$, \textbf{b)} $0.485574$,\\ 
\textbf{c)} $0.469626$, \textbf{d)} $0.466559$.\\
Hier sieht man beim Vergleich von b) und c), dass mit weniger Punkten und 
verbesserter Fehlerordnung eine höhere Genauigkeit erzielt wird.
}
\label{fig:RaumintegralBsp}
\end{smallfigure}
\noindent%
Wir bestimmen das Integral
\[
  \int_{-1}^1\int_{-1}^1 \frac{1}{2\pi}\e^{-\frac{1}{2}(x^2+y^2)}\,\d x\,\d y,
\]
das als zweidimensionale Gauß-Verteilung in der Statistik eine Rolle spielt,
numerisch mit vier Verfahren, die in Abb.~\ref{fig:RaumintegralBsp} gezeigt 
sind:
\textbf{a)} 2 Dreiecke, 2 Punkte, \textbf{b)} 8 Dreiecke, 8 Punkte, 
\textbf{c)} 2 Dreiecke, 5 Punkte, 
\textbf{d}) 2 Dreiecke, 14 Punkte. In der Legende zur Abbildung finden Sie die 
erhaltenen Näherungswerte, die sich von a) bis d) verbessern, der kleinste 
Fehler beträgt 0.1\%. Zum Vergleich: Mit den Gewichten von 
Abb.~\ref{fig:RaumintegralRechteck}
erhält man bei 12 Punkten $0.476295$ als Näherungswert mit einem Fehler von 2\%.
\end{example}



%Version 7.9. DH
%#############################################
\section{DGLn numerisch lösen}\label{sec:DGLnum}
%#################################################

Häufig lassen sich DGLn nicht oder nur sehr umständlich analytisch 
lösen. Das ist z.\,B. der Fall für die DGL
\[
	y' = y^2 - x.
\]
Diese DGL wird uns im Folgenden als Beispiel dienen. 
Es handelt sich um die vielleicht einfachste DGL 2. Grades, die \textbf{nicht 
elementar lösbar} ist.

\begin{figure}[htbp]
\includegraphics{figuresHoema/y2minusx-isoklinen-bis-losung}
\caption[Richtungsfeld $y'=y^2-x$ Untersuchung]{\textbf{Untersuchungen zum 
Richtungsfeld von \boldmath $y'=y^2-x=f(x,y)$.}\\
\textbf{a)} \?Richtungsfeld\? mit zwei auffälligen Kurven.
\textbf{b)} Richtungsfeld mit \?Isokline\?n für $m=$\hspace*{1em}\linebreak
$2,\,0,\,-2,\,-4,\,-6$.
\textbf{c)} Mit dem Spurmodus von GeoGebra eingezeichnete Scharen von 
Lösungskurven, die Sie auf der \cite{Website} zum Buch selbst erkunden können. 
Hervorzuheben ist die schwarze Lösung, 
die die blauen und grünen Lösungen voneinander trennt.
}
\label{fig:y2minusx-isoklinen-bis-losung}
\end{figure}
\noindent%
Das Richtungsfeld scheint auf zwei spezielle Lösungen 
hinzuweisen, die farblich eingetragen sind. Die obere grüne Kurve 
ist anscheinend instabil, die untere hellblaue stabil. Es sind aber beides 
\textbf{keine Lösungskurven}.
Nach dem Einzeichnen der Isoklinen für $m=2,\,0,\,-2,\,-4,\,-6$ sieht man
deutlich, dass die Kurven in a) zumindest weiter links keine 
Lösungen sein können. Die fraglichen Kurven sind Teile der Nullisokline.
Im Spurmodus von GeoGebra sind in c) viele Lösungskurven entstanden. 
In Abb.~\ref{fig:y2minusx-isoklinen-bei0} können Sie den Bereich um den 
Ursprung wie in c) in größerer Darstellung sehen. Es ist gesichert, dass 
wir \textbf{in diesem Ausschnitt der Ebene tatsächlich alle 
wesentlichen Beobachtungen} machen können.

Im Bildteil c) wird klar, dass die in Bildteil a) gezeigten 
\und{Nullisoklinenteile} \Index{Isokline!Null\~}%
\?Asymptote\?n von Lösungen sind, der obere Teil aber nur von der speziellen 
schwarzen Lösung, auf die Abb.~\ref{fig:y2minusx-iso-sammeln-streuen} 
noch einmal besonders eingeht. Die blauen Lösungen, die ihr Maximum auf der 
Nullisokline haben, müssen ihren Graphen außerhalb dieser Parabel nach 
links fortsetzen, werden aber "`hart begrenzt"' durch die schwarze Kurve, 
jenseits der die grünen Lösungen herrschen. Sie wird in 
Abschnitt~\ref{subsec:y2minusxexakt} exakt berechnet und in 
Abb.~\ref{fig:y2minusxexakt} 
violett zusammen mit anderen exakten Lösungskurven dargestellt.\\
Hier aber sind die Lösungskurven mit dem Runge-Kutta-Verfahren, siehe 
Abschnitt~\ref{subsec:runge-kutta}, als GeoGebra-Befehl numerisch beschafft
worden. 

\paragraph{Asymptotisches Verhalten der Lösungen dieser DGL:} Wir greifen  
in Abb.~\ref{fig:y2minusx-iso-sammeln-streuen} auf, was wir auf Seite 
\pageref{page:quetschen-streuen} f. schon überlegt haben. Man kann also am 
Richtungsfeld erkennen, wo etwa Lösungskurven "`zusammengequetscht"' werden 
und wo sie "`zerstreut werden"'.\footnote{Stets "`lesen"' wir die 
Funktionsgraphen von links nach rechts.}  Dort sind 
\textbf{stabile bzw. instabile Lösungen} 
zu erwarten.  So zeigt es Abb.~\ref{fig:y2minusx-iso-sammeln-streuen}.
\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/y2minusx-iso-sammeln-streuen}
\caption[Richtungsfeld $y'=y^2-x$]{\textbf{Richtungsfeld von 
\boldmath $y'=y^2-x=f(x,y)$.}\\
\textbf{a)} Nullisokline, sowie farblich hervorgehobene Richtungsvektoren aus 
anderen Isoklinen,
\textbf{b)} Lösungskurven, die die Nullisokline als Asymptoten haben.
}
\label{fig:y2minusx-iso-sammeln-streuen}
\end{smallfigure}
Die schwarz eingezeichnete Lösungskurve, von der schon die Rede war, 
ist eine \textbf{\und{instabile Lösung}}. 
\Index{DGL!Lösung!stabil/instabil}%
Der untere Ast der Nullisokline ist dagegen \textbf{Asymptote für stabile 
Lösungen}.
Die \textbf{instabile Lösung} existiert numerisch gerechnet nur "`ideell"'. 
Liegt ein Startpunkt mathematisch exakt auf ihr, ist sie die zugehörige 
Lösung. Aber selbst mit 15-stelliger Genauigkeit auf ihr gewählte Startpunkte 
sind nicht genau genug, die numerischen Lösungen dazu verlassen sie nach 
wenigen Einheiten. Dies wird bei Abb.~\ref{fig:y2minusxexakt} diskutiert. 
Aber auch die \textbf{stabilen Lösungen} sind bei numerischer Behandlung 
nicht unproblematisch. Im Folgenden können Sie das bei den einzelnen Verfahren 
sehen.

\paragraph{Wenigstens den Graphen einer DGL-Lösung} kann man auf numerischem 
Weg finden, wenn eine DGL schwierig zu lösen ist oder man die 
Funktionsdarstellung der Lösung nicht benötigt. Hierfür gibt es 
\textbf{mehrere Verfahren}, einfache grobe und mit gesteigertem Aufwand auch 
feinere, genauere. Alle Verfahren versuchen, eine Wertetabelle für 
die Lösungsfunktion $y(x)$ zu einem gegebenen Anfangswert $y_0=y(x_0)$ zu 
finden, also eine Tabelle der Form: 

\begin{tabular}{|c|c|c|}
\hline
$i$ & $x_i$ & $y_i = y(x_i)$ \\
\hline
0 & $x_0$ & $y_0$ \\
1 & $x_1 = x_0+h$ & $y_1 \approx y(x_1)$ \\
2 & $x_2 = x_0+2h$ & $y_2 \approx y(x_2)$ \\
$\cdots$ & $\cdots$ & $\cdots$ \\
\hline
\end{tabular}
\noindent%
Sie soll zu $x_i-$Werten mit dem regelmäßigen Abstand $h$, der 
{\bf \?Schrittweite\?}, Näherungswerte für die Funktionswerte $y(x_i)$ 
enthalten. Man kann dann diese Wertepaare als Punkte 
$P_i = (x_i,y_i)$ in das Richtungsfeld 
eintragen und evtl. durch einen Streckenzug verbinden, der dann 
den Verlauf der Lösungskurve annähert. Das Ergebnis dieses Vorgehens 
können Sie schon in Abb.~\ref{fig:y2minusxEuler} sehen.

{\bf Bemerkung:} Um Indizes zu vereinfachen, werden wir im Folgenden 
stets beschreiben, wie man von $y_0\approx y(x_0)$ in einem 
Verfahrensschritt auf $y_1\approx y(x_1)$ kommt. Es ist natürlich immer
gemeint, dass man auf analoge Weise von $y_i\approx y(x_i)$ zu 
$y_{i+1}\approx y(x_{i+1})$ geht. Ohne die lästigen "`$i$'s"' im Index 
ist es aber übersichtlicher.

Wir werden uns fast ganz auf DGLn 1. Ordnung beschränken. Alle 
Methoden können aber leicht für höhere Ordnungen erweitert werden, 
siehe Abschnitt \ref{sssec:DGLnumSysteme}

%#############################################
\subsection{Eulerverfahren}\label{subsec:eulerDGL}
%#############################################

Wir betrachten eine explizite DGL der Form $y' = f(x,y)$. In den 
Beispielen und Abbildungen wird stets $f(x,y) = y^2 - x$ sein. 

Die naheliegende Idee zum Finden von Näherungswerten stammt von 
{\bf Euler}. Sie nutzt die Taylorentwicklung 1. Ordnung von $y(x)$, also 
eine lineare Approximation aus:  
\[
	y(x_0+h) = y_0 + y'(x_0)h + \O(h^2).
\]
Ihr entnimmt man direkt die Näherung $y_1 = y_0 + y'(x_0)h$, d.\,h. man geht 
auf der Tangente einer Lösung durch $A:=P_0$ vorwärts. Deren Steigungsdreieck 
mit der Breite $h$ und der Steigung $m = f(x_0,y_0)$ legt $y_1$ fest. Damit hat 
man den nächsten angenäherten 
Kurvenpunkt $P_1 = (x_1,y_1)$. Diesen nimmt man nun als neuen 
Anfangspunkt und wiederholt das Verfahren. Das Ergebnis sieht aus wie 
in Abb.~\ref{fig:y2minusxEuler}.

\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/y2minusxEuler.eps}
\caption[Eulerverfahren]{\textbf{\Index[DGL!]{Eulerverfahren}\\ 
für \boldmath $y'=y^2-x$.} Schrittweite ist \\
$h=0.5$, Anfangswerte sind $y(0) = 0.7$, 
also ist $A=P_0=(0,\,0.7)$.
Es folgen \\
$P_1=(0.5,\,0.945), P_2=(1.0,\,1.142)\dots$\\
Ab etwa $x=4$ ist die \textbf{blaue\\
Lösungskurve recht dicht an der (rot gepunkteten) Nullisokline}. 
Wenn ein Eulerschritt diese nach unten überschreitet, wird der nächste Schritt 
nach oben gehen. Im Bild wechseln nun positive und negative Steigungen. Man 
beachte aber, dass die blaue Lösung rechts niemals wieder Steigung null haben 
wird, sie liegt stets über der Nullisokline.                               
}
\label{fig:y2minusxEuler}
\end{smallfigure}
\noindent%
Jeder einzelne Schritt von $P_i$ zu $P_{i+1}$ ist 
durch eine rote Strecke gezeichnet. 
Die entstehende Wertetabelle, die auch die nötigen Rechnungen enthält, 
sieht für das Beispiel mit $P_0 = (0,0.7)$ und $h=0.5$ wie folgt aus:

\begin{tabular}{|c|c|c|c|}
\hline
$i$ & $x_i$ & $y_i = y_{i-1} + h\cdot m_{i-1}$ & $m_i=f(x_i,y_i)=y_i^2-x_i$ \\
\hline
0 & $0.0$ & $0.7$ & $0.7^2-0=0.49$\\
1 & $0.5$ & $0.7+h\cdot m_0 = 0.7+0.5\cdot0.49 = 0.945$ & $0.945^2-0.5=0.393$\\
2 & $1.0$ & $0.945+0.5\cdot0.393 = 1.142$ & $0.303$\\
3 & $1.5$ & $1.294$ & $\cdots$\\
$\cdots$ & $\cdots$ & $\cdots$ & $\cdots$ \\
\hline
\end{tabular}
\noindent%
Wie in der Abbildung \ref{fig:y2minusxEuler} zu sehen, ist das 
Ergebnis nicht besonders gut:
\begin{itemize}
	\item	Der Streckenzug schießt zuerst über das Ziel, die blaue 
		Lösungskurve, hinaus.
	\item	Zufällig findet er später zurück zur Lösungskurve,
	\item	gerät dort aber in immer größer werdende Oszillationen
	\item	und wird irgendwann, das ist abzusehen, die Lösung völlig verlassen.
\end{itemize}
Diese und ähnliche Gefahren bestehen bei jedem Verfahren zur 
numerischen Lösung von DGLn.

Eine einfache Abhilfe besteht darin, die Schrittweite $h$ zu 
verkleinern, um den sich verändernden Richtungen des Richtungsfeldes 
besser zu folgen. Dann wird die Tabelle feiner, die Rechnung länger, die 
Approximation (hoffentlich) genauer. In 
Abb.~\ref{fig:y2minusxEulerhdiv} sind zum Vergleich die Schrittweiten 
$h=0.5,\ 0.25,\ 0.125$ gezeigt:

\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/y2minusxEulerhdiv}
%\includegraphics[width=3cm]{figuresHoema/y2minusxEuler05.eps}
%\includegraphics[width=3cm]{figuresHoema/y2minusxEuler025.eps}
%\includegraphics[width=3cm]{figuresHoema/y2minusxEuler0125.eps}
\caption[Eulerverfahren mehrere Schrittweiten]{\textbf{Eulerverfahren für 
\boldmath $y'=y^2-x$.} 
Schrittweiten sind $h=0.5,\ 0.25,\ 0.125$, Anfangswerte wieder 
$y(0) = 0.7$. Die schwarzen Balken dokumentieren die Halbierung
des globalen Fehlers an der Stelle 2 bei Halbierung der Schrittweite.
}
\label{fig:y2minusxEulerhdiv}
\end{smallfigure}
\noindent%
Die Approximation wird tatsächlich zunehmend besser, das Verfahren von 
Euler scheint also mit $h\to0$ gegen die Lösungskurve zu den 
Anfangswerten zu konvergieren. Eine Konvergenzbetrachtung wird aber 
nötig sein.

%#############################################
\subsubsection{Untersuchung der Konvergenz}%
\label{sssec:EulerKonvergenz}%
%#############################################
Aus der Taylorentwicklung $y(x_1) = y_0 + y'(x_0)h + \O(h^2)$ 
liest man direkt ab, dass man für den {\bf Fehler} bei einem Eulerschritt zu 
$y_1=y_0 + y'(x_0)h$ die Abschätzung
{\boldmath$|y_1-y(x_1)|< C\cdot h^2$} hat mit einer geeigneten, von 
$h$ unabhängigen Konstanten $C$. Das ist der Fehler bei einem 
Eulerschritt, abhängig von $h$, der lokale \INDEX[ordnung]{Fehler}.

\begin{merke}
Der {\bf lokale Fehler} des Eulerverfahrens ist von der Ordnung 
\boldmath $\O(h^2)$. 
\end{merke}
\noindent%
Wenn man die Schrittweite 
verkleinert, indem $h$ ersetzt wird durch $\frac{h}{n}$ mit einer 
ganzen Zahl $n$, dann braucht man nun $n$ Schritte des 
Eulerverfahrens, um wieder bei $x_1=x_0+\frac{h}{n}\cdot n$ anzukommen. Man 
erhält einen verbesserten Näherungswert $\tilde y_1$. Jeder einzelne 
Schritt hat einen Fehler $<C\cdot\frac{h^2}{n^2}$. Der {\bf 
Gesamtfehler} wird also $|\tilde y_1-y(x_1)|<n\cdot 
C\cdot\frac{h^2}{n^2} = C\cdot\frac{h^2}{n} \approx 
\frac{1}{n}|y_1-y(x_1)|$. Der Fehler nimmt proportional zur 
Schrittzahl ab.\footnote{Weil wir uns mit jedem Eulerschritt 
möglicherweise weiter von der Lösungskurve entfernen und zu einer 
anderen --~falschen~-- Taylorentwicklung wechseln, muss man 
eigentlich hier etwas genauer überlegen. Für kleine $h$ läuft es aber 
auf das angegebene Ergebnis hinaus.}

Wir schreiben dieses Ergebnis um zu $|\tilde 
y_1-y(x_1)|<C\cdot\frac{(x_1 - x_0)^2}{n}$. Diese Formel enthält $h$ nicht 
mehr. Darum kann $x_1$ nun eine beliebige Zielstelle sein, 
für die wir eine Näherung von $y(x_1)$ suchen. 
$h$ soll nun die {\em benutzte} Schrittweite sein, d.\,h. bei $n$ 
Schritten von $x_0$ bis $x_1$ ist $h = \frac{x_1-x_0}{n}$. Man kann nach $n$ 
umstellen zu $n=\frac{x_1-x_0}{h}$. Setzt man dieses $n$ in den Fehler ein, so 
erhält man $|\tilde y_1-y(x_1)| < C\cdot(x_1 - x_0)h$. Das ist der 
Fehler an einer Zielstelle, abhängig von der benutzten Schrittweite, 
der globale Fehler. Da der Faktor $x_1 - x_0$ nicht von $h$ abhängt hat das 
Verfahren den globalen Fehler $O(h^1)$.
\vspace{-5mm}
\begin{merke}
Die Ordnung des {\bf globalen Fehlers} eines numerischen Verfahrens heißt 
{\bf \INDEX[|textbf]{Konsistenzordnung}}. Die des Eulerverfahrens ist daher 1. 
\end{merke}
\vspace{-5mm}
\noindent%
Der globale Fehler hat also die gleiche Ordnung wie die verwendete 
Taylornäherung. Will man die Fehlerordnung verbessern, braucht man 
eine bessere Taylornäherung.
In Abb.~\ref{fig:y2minusxEulerhdiv} können Sie durch Ausmessen sehen, 
dass bei Halbierung der Schrittweite sich auch die Abweichung der 
Euler-Punkte von der Lösungskurve in etwa halbiert. Ein solcher Vergleich ist 
durch schwarze Abstandsbalken für die Zielstelle $x=2$ markiert. \\
Wir können hier auch festhalten: 

\begin{merke}
Will man beim Eulerverfahren den 
Fehler auf $\frac{1}{100}$ drücken, also {\bf 2 Dezimalstellen Genauigkeit 
hinzugewinnen}, dann muss man auch ein Hundertstel der alten 
Schrittweite verwenden und hat den {\bf 100-fachen Rechenaufwand}. 
\end{merke}
\noindent%
Verfahren mit einer höheren globalen Fehlerordnung wie $\O(h^2)$ oder mehr sind 
also wünschenswert.

%#############################################
\subsubsection{Verbesserung der Fehlerordnung}%
\label{sssec:Eulerbesser}%
%#############################################
Versuchen wir eine quadratische \INDEX[polynom]{Taylor}entwicklung:
\[
	y(x_0+h) = y_0 + y'(x_0)h + \frac{1}{2}y''(x_0)h^2 + \O(h^3).
\]
Wir haben schon benutzt, dass $y'(x) = f(x,y)$ ist, um $y'(x_0)$ zu 
bekommen. Durch nochmaliges Ableiten nach $x$ erhalten wir eine Formel 
für $y''$, die nur $f$ verwendet:
{\boldmath
\[
	f' = y'' = 
	\mbox{\unboldmath
	$\dfrac{\d}{\d x}f(x,y(x)) = f_x(x,y(x)) + f_y(x,y(x))\cdot y'(x)$
	}% Ende mbox
	 = f_x + 	f_y\cdot f.	 
\]
}% Ende boldmath
Wir haben in der Rechnung die Regel für die totale Ableitung und die 
Kettenregel verwendet, siehe Abschnitt~\ref{subsec:Kettenregelxy}, und im 
letzten Schritt die Argumente 
weggelassen. Analog bekommen wir die dritte Ableitung, wenn wir $y'=f$ 
und deshalb $f'=y''=f_x + f_yf$ benutzen: 
{\boldmath
\begin{align*}
	y''' &= 
	\mbox{\unboldmath
	$f_{xx} + f_{xy}\,y' + (f_{yx} + f_{yy}\,y')f + f_y\,f' =$
	}% Ende mbox
	\\
	 &= f_{xx} + 2f_{xy}\,f + f_{yy}\,f^2 + f_xf_y +f_y^2f. 	 
\end{align*}
}% Ende boldmath
Ansonsten gehen wieder nur die totale 
\INDEX[!totale \~]{Ableitung} und die \?Kettenregel\? ein. 
Die Rechnung ist eine 
Geduldsprobe, aber im Prinzip und mit einem guten CAS kann man 
beliebige Ableitungen von $y$ ausrechnen. Wenn wir die gefundenen 
Ableitungen $y''$ und $y'''$ einsetzen, haben wir sogar die 
Taylorentwicklung 3. Ordnung
\[
	y(x_0+h) = y_0 + f\cdot h + \frac{1}{2}(f_x + f_yf)h^2 + 
	\frac{1}{6}(f_{xx} + 2f_{xy}f + f_{yy}f^2 + f_xf_y +f_y^2f)h^3+ \O(h^4). 
\]
Alle Funktionen müssen in $(x_0,y_0)$ ausgewertet werden. 

Schon mit dieser Approximation könnte man eine lokale \?Fehlerordnung\? 
von $\O(h^4)$ und daher eine globale Fehlerordnung 
von $\O(h^3)$ erreichen. In der Praxis ist das allerdings sehr 
ineffektiv wegen der komplizierten Terme, in denen sehr oft $f$ und 
seine Ableitungen ausgewertet werden müssen. Weil diese Auswertungen 
rechnerisch am aufwendigsten sind, wäre die Performance eines hierauf 
basierenden numerischen Verfahrens unerträglich schlecht. Man braucht 
eine bessere Idee!

%#############################################
\subsection{Heunverfahren}\label{subsec:heun}
%#############################################

Die Idee besteht darin, einen Eulerschritt vorauszuschauen, wie sich das 
Richtungsfeld entwickelt. Man entnimmt die Steigung des 
Richtungsfeldes am erreichten Punkt $Z$, bildet einen Mittelwert mit der 
Steigung am Startpunkt, und führt einen Eulerschritt mit diesem 
Mittelwert aus. In Abb.~\ref{fig:y2minusx-Heunverfahren}\,a) und b) wird das 
Vorgehen für den Punkt $P_3=(x_3,y_3)\approx(1,1.023)$ 
und die Schrittweite $h=0.5$ gezeigt.
\begin{figure}[htbp]
\includegraphics{figuresHoema/y2minusx-Heunverfahren.eps}
%y2minusxHeunverfahren
%includegraphics[width=4cm]{figuresHoema/y2minusxHeunfeatures.eps}\qquad
%\includegraphics[width=6cm]{figuresHoema/y2minusxHeun.eps}
\caption[Heunverfahren ein Schritt]{\textbf{\Index[DGL!]{Heunverfahren} für 
\boldmath $y'=y^2-x$ schrittweise und im ganzen Verlauf.} \textbf{a)} ist ein 
Ausschnitt aus c), und b) zeigt den 4. Verfahrensschritt vergrößert im 
zweiten Grafikfenster von GeoGebra. 
Daraus sind $P_3$, $P_4$ und die Richtung nach 
$P_4$ (orange) aus der Konstruktion in b) übertragen worden und demonstrieren 
die Korrektheit des geometrischen Verfahrens.\\
\textbf{b)} Mit der in $P_3$ gültigen (lila) Pfeilrichtung  erreicht man im 
Abzissenabstand $h=0.5$ den Zwischenpunkt $Z$, in dem die durch den hellgrünen 
Vektor bzw. die grüne Gerade gezeigte Richtung gilt. Der Mittelwert der beiden 
Geradensteigungen ist hier geometrisch durch die durch $M$ gemittelte Strecke
und die blau-gestrichelte Gerade $MZ$ visualisiert. 
Auf einer Parallelen zu ihr durch $P_3$ erreicht man an der Abszisse von $Z$ 
Punkt $P_4$.\\
In \textbf{c)} ist ein Bild einer 
\textbf{"`multifunktionalen"' GeoGebra-Datei} gezeigt. 
Auf der \cite{Website} können Sie nicht nur die 
Schrittweite $h$ und den Start $A$
steuern, sondern mit $\alpha$ mehrere der im Folgenden dargestellten Verfahren 
auswählen. Hier gilt $\alpha=1$ und $A:\, y(0) = 0.7$. Vergleichen Sie mit dem 
Eulerverfahren Abb.~\ref{fig:y2minusxEuler}, das man mit $\alpha=0$ erhält, und 
mit dem modifizierten Eulerverfahren in Abb.~\ref{fig:y2minusx-Euler-modi}, das 
$\alpha=0.5$ erfordert.
}
\label{fig:y2minusx-Heunverfahren}
\end{figure}
Abb.~\ref{fig:y2minusx-Heunverfahren}\,c) zeigt, was für die blaue 
Lösungskurve als Näherung mit dem Heunverfahren und der Schrittweite 
$h=0.5$, die auch schon beim Eulerverfahren verwendet wurde, 
herauskommt. Die Verbesserung ist deutlich.
Der Rechengang ist in allen Einzelheiten in der folgenden Tabelle zu 
sehen:
\[
\begin{array}{|c|c|c|c|c|c|c|}
\hline
  i & x_i = & y_i = & m_i = & y_z = & m_z = & m = \\
	  & x_{i-1}+h & y_{i-1} + m\cdot h & f(x_i,y_i) & y_i + m_i\cdot 
		h & f(x_{i+1},y_z) & \frac{1}{2}(m_i + m_z) \\
\hline
0 & \textcolor[rgb]{0.2,0.8,0.2}{\textit{\textbf{ 0.0}}} & 
\textcolor[rgb]{0.2,0.8,0.2}{\textit{\textbf{ 0.7}}}& \textbf{0.49} & 
\textbf{0.945}& \textbf{0.393} & 0.442 \\
1 & 0.5 & 0.921 & 0.348 & 1.095 & 0.198 & 0.27 \\
2 & 1.0 & 1.057 & 0.118 & 1.116 & -0.254 & -0.068 \\
3 & \textcolor[rgb]{1,0,0}{1.5} &\textcolor[rgb]{1,0,0}{ 1.023}
 &\color[rgb]{0.5,0,0.5}{ -0.453} & 
\textcolor[rgb]{0.5,0,0.5}{0.797} & 
\textcolor[rgb]{0,1,0}{-1.365} &\textcolor[rgb]{1,0.41,0.13}{-0.909 }\\
4 & \textcolor[rgb]{1,0,0}{2} &\textcolor[rgb]{1,0,0}{ 0.569} 
& \cdots & \cdots & \cdots & \cdots \\
\hline
\end{array}
\]
{\em Kursive} Zahlen sind die Anfangswerte und werden {\em nicht} nach 
den Formeln in der Kopfzeile berechnet. {\bf Fette} Zahlen sind schon 
aus dem Eulerverfahren bekannt.

Auffällig ist in Abb.~\ref{fig:y2minusx-Heunverfahren}\,c), dass die 
Heun-Näherung rechts positive Steigung hat, obwohl alle Richtungpfeile
abwärts zeigen. Das liegt daran, dass der erste Eulerschritt dort weit
nach unten springt, sodass $Z$ im Bereich großer positiver Steigungen liegt.
Der Mittelwert $\frac{1}{2}(m_i+m_z)$ ist dann tatsächlich positiv.
\noindent%
Abb.~\ref{fig:y2minusxHeunFehler} vergleicht die Schrittweiten $h=1,\ 
0.5,\ 0.25$ für das Heunverfahren. Die Verbesserung der Approximation 
ist so gut, dass die große Schrittweite 1 nötig ist, um überhaupt das 
Verhältnis der globalen Fehler abschätzen zu können. Bei Halbierung 
der Schrittweite scheint sich der Fehler auf weniger als ein Viertel zu 
reduzieren, was auf eine Fehlerordnung von $O{(h^2)}$ hinweist.

\begin{smallfigure}[htbp]
%\includegraphics[width=3cm]{figuresHoema/y2minusxHeun1.eps}
%\includegraphics[width=3cm]{figuresHoema/y2minusxHeun05.eps}
%\includegraphics[width=3cm]{figuresHoema/y2minusxHeun025.eps}
\includegraphics{figuresHoema/y2minusxHeunFehler}
\caption[Heunverfahren drei Schrittweiten]{\textbf{Heunverfahren für 
\boldmath $y'=y^2-x$.}  
Schrittweiten sind $h=1,\ 0.5,\ 0.25$. Drei Fehlerbalken sind 
hervorgehoben und zeigen, dass sich der globale Fehler viertelt, wenn 
die Schrittweite halbiert wird. Vergleichen Sie mit 
Abb.~\ref{fig:y2minusxEulerhdiv}. 
}
\label{fig:y2minusxHeunFehler}
\end{smallfigure}

%#############################################
\subsubsection{\?Fehlerordnung\? des Heunverfahrens und seiner Verwandten}%
\label{subsec:heunordnung}%
%#############################################
Das Heunverfahren und viele der Verfahren, die wir uns noch ansehen 
werden, lassen sich so beschreiben, dass für jeden Schritt der nächste 
$y$-Wert $y_{i+1}$ aus den schon berechneten Werten $x_i,y_i$ und der 
Schrittweite $h$ mittels einer {\bf \?Verfahrensfunktion\?} $\Phi_f(x,y,h)$ 
berechnet wird als
\[
	y_{i+1} = \Phi_f(x_i,y_i,h),
\]
in der natürlich die rechte Seite $f$ der DGL geeignet verwendet wird. 
Den Index $f$ werden wir im Folgenden weglassen, weil wir keine 
verschiedenen $f$ betrachten werden. \\
Konkret sind die Funktionen
\begin{align*}
  \Phi=\Phi_E(x,y,h) &= y + f(x,y)h & \text{für }&\text{Euler}, \\
  \Phi=\Phi_H(x,y,h) &= y + \frac{1}{2}\Bigl(f(x,y) + f\bigl(x+h,y + 
	f(x,y)\,h\bigr)\Bigr)h & \text{für }&\text{Heun}.   
\end{align*}
Die Verfahrensfunktion für Heun können Sie nachprüfen, indem Sie einen 
Heunschritt ausführen, dabei aber immer $f$ unausgewertet lassen. Zur 
Bestimmung der Fehlerordnung bei Heun kann man das Ergebnis eines 
Heunschrittes, nämlich $y_1(x) = y_1(x_0+h) = \Phi_H(x_0,y_0,h)$, in eine 
Taylorreihe nach Potenzen von $h$ entwickeln. Wir werden das gleich 
tun, aber --~wenn schon, denn schon~-- für eine \textbf{Verallgemeinerung des 
Verfahrens}. Sie besteht darin, dass 1. ein anderer Hilfspunkt gewählt 
wird und 2. die beiden gefundenen Steigungen anders als durch deren 
arithmetisches Mittel mit anderen Gewichten gemittelt werden:
\begin{itemize}
	\item	Es wird $Z = (x_0 + \alpha h, y_0 + \beta f(x_0,y_0)\,h)$ 
		genommen. Wir nutzen also nur den $\alpha$-ten Teil der 
		Schrittweite aus und schlagen auch nicht genau die Richtung der 
		Startsteigung ein, wenn $\beta\ne\alpha$ ist.
	\item	Die Steigung für den abschließenden Eulerschritt wird so 
		gemittelt:\\
		 $m = a m_0 + b m_z$.
\end{itemize}
Das ist die allgemeinste Möglichkeit, einen Hilfspunkt zu nutzen. Man 
erhält
\[
	\Phi(x,y,h) = y + \Bigl(a f(x,y) + b f\bigl(x+\alpha h,y + 
	\beta f(x,y)\,h\bigr)\Bigr)h 
\]
Für die Taylorreihe brauchen wir --~die Rechnung wird gleich 
anschließend erklärt~--~:
{\boldmath
\begin{align*}
  \Phi(x_0,y_0,0) =&\, y_0. \\
	\mbox{\unboldmath$ \Phi'(x_0,y_0,h)$} =& 
	\mbox{\unboldmath$ \Bigl(\dots\Bigr)'h + \Bigl(\dots\Bigr)\cdot1$}, \\
  \Phi'(x_0,y_0,0) =& 
	\mbox{\unboldmath$ \left.\Bigl(\dots\Bigr)\right|_{h=0} = a f + b f $} = 
	(a+b)f. \\
  \mbox{\unboldmath$ \Phi''(x_0,y_0,h)$} =& 
	\mbox{\unboldmath$ \Bigl(\dots\Bigr)''h + \Bigl(\dots\Bigr)'+ 
  \Bigl(\dots\Bigr)'\cdot1 $}, \\
	   &
	\mbox{mit \unboldmath$ \Bigl(\dots\Bigr)' = b f_x \alpha + b f_y\beta f$}, \\
  \Phi''(x_0,y_0,0) =& 
	\mbox{\unboldmath$ \left.2\Bigl(\dots\Bigr)'\right|_{h=0}$} = 2b(\alpha 
	f_x + \beta f_y f). 
\end{align*}
}% Ende boldmath
Alle Ableitungsstriche meinen Ableitung nach $h$. Die Rechnung benutzt 
wieder nur Kettenregel und totale Ableitung. Sie ist recht 
übersichtlich, wenn man die große Klammer $\bigl(\dots\bigr)$ in 
$\Phi(x,y,h)$ möglichst lange "`in Ruhe"' lässt. Wir brauchen ja nur die 
Werte für $h=0$, deshalb fallen die unangenehmen Ableitungen von 
$\bigl(\dots\bigr)$ meist weg, außer bei $\Phi''$. Ab $\Phi'''$ wird es 
dann "`ernst"'. Wir haben ein CAS genutzt und können deshalb die 
Taylorreihe 3. Ordnung angeben:
\begin{align*}
	y_1(x) = y_1(x_0+h) &= y_0 + (a+b)f\,h + b( \alpha f_x + \beta f_y f) h^2 + \\
	&+ \frac{1}{2}b \left( \alpha^2 f_{xx} + 2\alpha\beta f f_{xy} + 
	\beta^2 f^2 f_{yy}\right) h^3 + O\left(h^4\right) 
\end{align*}
Alle Terme mit $f$ und dessen Ableitungen sind in $(x_0,y_0)$ zu nehmen. 
Wir vergleichen mit der Taylorreihe für die Lösung der DGL:
\[
	y(x_0+h) = y_0 + f\cdot h + \frac{1}{2}(f_x + f_yf)h^2 + 
	\frac{1}{6}(f_{xx} + 2f_{xy}f + f_{yy}f^2 + f_xf_y +f_y^2f)h^3+ \O(h^4). 
\]
Wenn unser Verfahren die exakte Lösung gut approximieren soll, dann 
müssen beide Taylorreihen so weit wie möglich übereinstimmen. Da es 
für alle DGLn, also jedes mögliche $f$ stimmen muss, ist klar, dass die 
Faktoren vor $h^3$ nicht übereinstimmen können: in $y(x_0+h)$ kommen 
Summanden der Form $f_xf_y$ vor, in $y_1(x_0+h)$ aber nicht! Durch 
Koeffizientenvergleich der Faktoren von $h$ und $h^2$ findet man, dass
\begin{align*}
  (a+b)f &= f & \text{ und } && b\alpha f_x + b\beta  f_y f  &= 
	\frac{1}{2}(f_x + f_y f) 
\end{align*}
sein muss. Das ergibt drei Gleichungen für $a,\ b,\ \alpha,\ \beta$:
\begin{align*}
  a+b &= 1, & b\alpha &= \frac{1}{2}, & b\beta &= \frac{1}{2}.
\end{align*}
\begin{merke}
Folglich ist {\boldmath $\alpha=\beta$}, und bei Vorgabe von $\alpha$ 
erhält man {\boldmath $b=\dfrac{1}{2\alpha}$} und {\boldmath $a=1 - 
\dfrac{1}{2\alpha}$}.\\[1mm]
Für alle diese Kombinationen hat man also ein 
Verfahren mit dem {\bf lokalen Fehler} {\boldmath $\O(h^3)$} und der 
{\bf Konsistenzordnung 2}. 
\end{merke}

%#############################################
\subsubsection{Das modifizierte Eulerverfahren als 
Verwandte des Heunverfahrens}%
\label{subsec:heunverwandte}%
%#############################################
Speziell für $\alpha=1$ wird $a=b=\frac{1}{2}$. Das ist das 
Heunverfahren. Variiert man $\alpha$, dann erhält man ein ganzes 
Kontinuum von Verfahren mit globalem Fehler 2. Ordnung. Eines davon, 
das in der Literatur einen eigenen Namen hat, das 
{\bf \und{modifizierte Eulerverfahren}}, 
\Index{DGL!Eulerverfahren!modifiziertes \~}%
gehört zu $\alpha=0.5$. Es hat $a=0,\ b=1$. 
\begin{figure}[htbp]
\includegraphics{figuresHoema/y2minusx-Euler-modi.eps}%\hfill
%\includegraphics[width=4cm]{figuresHoema/y2minusxEulermodfeatures.eps}\hfill
%\includegraphics[width=6cm]{figuresHoema/y2minusxEulermod.eps}
\caption[Modifiziertes Eulerverfahren]{\textbf{Modifiziertes Eulerverfahren 
\boldmath $y'=y^2-x$ schrittweise und im gesamten Verlauf.}
\textbf{a) und b)} Der Schritt von $P_3=(1.5,0.964)$ nach $P_4$ wird genau 
betrachtet. Zum Zwischenpunkt $Z$ (violett) gelangt man mit einem Eulerschritt 
mit $m_3=f(x_3,y_3)$. 
Der Hilfspunkt $H$ auf der Hälfte der Strecke $\overline{P_3 Z}$ ist 
$H=(x_3+\frac{h}{2}, y_3+m_3\cdot\frac{h}{2})$. Dort hat das Richtungfeld die 
Steigung $m_H=f(x_H,y_H)$ (hellblau).
Mit \textit{dieser Steigung} vollzieht man einen \textit{ganzen} Eulerschritt 
und gelangt zu $P_4=(x_3+h,y_3+m_H\cdot h)$. \\
\textbf{b)} zeigt 
dieses Vorgehen in größerem Maßstab im zweiten Grafikfenster von GeoGebra. Die 
gelbe Gerade und $P_4$ sind in das Hauptfenster a) übertragen worden. Man 
erkennt die Übereinstimmung.
\textbf{c) Gesamtverlauf mit Startpunkt \boldmath
$A\colon\ y(0)=0.7$.} Vergleichen Sie mit Abb.~\ref{fig:y2minusxEuler},  
Abb.~\ref{fig:y2minusx-Heunverfahren}\c) und  
Abb.~\ref{fig:Runge-Kutta-solo}\,b).
}
\label{fig:y2minusx-Euler-modi}
\end{figure}
In Abb.~\ref{fig:y2minusx-Euler-modi}\,b) 
liegt der (einzige) Hilfspunkt $H$ also auf halbem Wege von $P_3$ zum $Z$ 
aus dem vollen Eulerschritt. Man nennt dies einen 
\textbf{"`halben"' Eulerschritt}. 
Die Steigung $m_H$ des Richtungsfeldes in diesem 
Punkt $H$ wird aber nun für einen vollen Eulerschritt von $P_3$ nach $P_4$ 
genommen. Im Bild sind daher die blaue Gerade und die orangefarbene parallel.  
In Abb.~\ref{fig:y2minusx-Euler-modi}\,c) schneidet das modifizierte  
Eulerverfahren etwas besser ab als das Heunverfahren.
\begin{merke}\centering\boldmath
Das \?Heunverfahren\? und das modifizierte Eulerverfahren haben beide \\ 
die {\bf \?Konsistenzordnung\?} $2$.  
\end{merke}
\noindent%
Für $\alpha=0$ wird $a=b=\infty$. Man kann aber den Grenzübergang 
$\alpha\to0$ durchführen und erhält dann das (einfache) Eulerverfahren 
zurück. Das Gleiche passiert für den Grenzübergang $\alpha\to\infty$. 
Allerdings wird für $\alpha<0.5$ die Zahl $a$ negativ. Das wäre 
ungünstig, da bei der Mittelung der Steigungen Differenzen auftreten, 
die zu \Index[Auslöschung und ]{Genauigkeitsverlust} 
durch Auslöschung führen können. 

In der GeoGebra-Datei auf der \cite{Website} können Sie alle Varianten der 
Verfahren für verschiedene Anfangsbedingungen ausprobieren. Dabei werden Sie 
feststellen, dass je nach Situation mal das eine, mal das andere 
$\alpha$ besser funktioniert. Wir bemerken zum Rechenaufwand: 
\begin{merke}
Will man beim Heunverfahren und seinen Varianten den 
Fehler auf $\frac{1}{100}$ drücken, also {\bf 2 Dezimalstellen Genauigkeit 
hinzugewinnen}, dann braucht man nur ein Zehntel der alten 
Schrittweite zu verwenden und hat nur den {\bf 20-fachen Rechenaufwand}. 
\end{merke}
\noindent%
Nicht etwa nur den 10-fachen Aufwand, weil man {\bf\boldmath je Heunschritt $f$ 
zweimal auswerten muss}! Dennoch sinkt der Aufwand im Vergleich zum 
Eulerverfahren auf ein Fünftel (20\%). Dieser Effekt wird noch 
deutlicher, wenn man 4 Dezimalstellen gewinnen will: Euler benötigt 
den 10000-fachen Aufwand, Heun nur den 200-fachen, usw.

Mit nur einem Hilfspunkt kann man, wie oben mit den Taylorreihen 
gezeigt, nicht über die globale Fehlerordnung $\O(h^2)$ hinausgelangen. 
Das geht aber mit weiteren Hilfspunkten. Um den nächsten, zweiten 
Hilfspunkt aufzusuchen, kann man die zwei schon gefundenen Steigungen 
vom Startpunkt und ersten Hilfspunkt verwenden. Die im endgültigen 
Eulerschritt verwendete Steigung wird als gewichtetes Mittel aus den 
drei Steigungen (vom Startpunkt und zwei Hilfspunkten) genommen. Über 
die Taylorentwicklungen erhält man wieder Gleichungen für $\alpha,\ 
\beta,\ a,\ b,\ \dots$ und weitere Größen, die man angesetzt hat. Die 
Rechnungen dazu werden aber sehr unübersichtlich und ab 3 Hilfspunkten 
praktisch unausführbar. Es gibt aber einen anderen Ansatz, mit dem man 
hier weiterkommt.

%#############################################
\subsection{Numerische Integration liefert Verfahren für DGLn}
\label{subsec:numIntTOnumDGL}%
%#############################################

Eine grundsätzlich andere Idee zur numerischen Lösung von DGLn nutzt 
numerische Integration aus:
\begin{align*}
  y(x_1) &= y(x_0) + \int_{x_0}^{x_1} y'(x)\d x = 
  y(x_0) + \int_{x_0}^{x_1} f\bigl(x,y(x)\bigr)\d x.
\end{align*}
Dieses Integral lässt sich natürlich nicht direkt auswerten, im 
Integranden kommt ja $y(x)$ vor, welches wir erst bestimmen wollen. 
Aber wir können numerische Integration anwenden. Die Trapezregel 
(siehe  Seite \pageref{page:trapezregel} und 
Abb.~\ref{fig:numIntwirdnumDGL}\,c)) etwa 
ergibt
\begin{align*}
	y(x_1) &\approx y(x_0) + \frac{f(x_0,y_0) + f(x_1,y_1)}{2}(x_1 - 
	x_0) = \\
	&= y_0 + \frac{m_0 + m_1}{2}h.
\end{align*}
Hier haben wir fast schon die Bezeichnungen der Steigungen vom Heunverfahren 
benutzt. In der Tat finden wir so das Heunverfahren wieder: 
$y_1 = y(x_1)$ ist ja erstmal gar nicht bekannt, die Trapezformel 
nicht direkt anwendbar. Wir kommen nur weiter, wenn wir eine Näherung $y_z$
für $y_1$ einsetzen. Diese kann uns ein Eulerschritt liefern. Wir ersetzen dann 
auch $m_1$ durch $m_z = f(x_1,y_z)$. Das aber 
ist genau das Heunverfahren! \\
Auch Euler und modifizierter Euler lassen sich auf numerische 
Integration zu\-rück\-füh\-ren:
\begin{align*}
  \int_{x_0}^{x_1} f(x,y(x))\d x &\approx f(x_0,y_0)(x_1 - x_0) && 
	\text{ergibt Euler} \\ 
  \int_{x_0}^{x_1} f(x,y(x))\d x &\approx f(x_{1/2},y_{1/2})(x_1 - x_0) && 
	\text{ergibt Euler modifiziert}
\end{align*}
Hierbei steht $x_{1/2}$ für $x_0+\frac{h}{2}$ und $y_{1/2}$ für 
$y(x_0+\frac{h}{2})$. Letzteres muss wieder durch einen halben 
Eulerschritt approximiert werden. Abb.~\ref{fig:numIntwirdnumDGL} 
veranschaulicht diese Approximationen.

\begin{figure}[htbp]
\includegraphics[width=12.6cm]{figuresHoema/numIntwirdnumDGL}
\caption[DGL über numerische Integration]{\textbf{Einsatz von 
numerischer Integration für DGLn.} 
\textbf{a)} Riemann'sche Summe $\to$ \Index[DGL!]{Eulerverfahren}, 
\textbf{b)} \?Mittenregel\? $\to$ modifiziertes Eulerverfahren, 
\textbf{c)} \?Trapezregel\? $\to$ Heunverfahren, 
\textbf{d)} Kepler\Index[Kepler!\~]{'sche Regel} $\to$ ? Lesen Sie den 
folgenden Text! 
}
\label{fig:numIntwirdnumDGL}
\end{figure}
\noindent%
Bisher sind also nur die sozusagen "`dümmsten"' numerischen 
Integrationsverfahren zum Einsatz gekommen. Mit der Kepler'schen Regel sollte 
es schon besser werden. Sie braucht offenbar auch zwei Hilfspunkte 
$(x_{1/2},y_{1/2})$ und $(x_1,y_1)$, und wir erwarten eine 
Konsistenzordnung von 3.

Es stellt sich heraus, dass dem \textbf{\und{Kepler-basierten Verfahren}} eine 
einfache Fortführung des Heunverfahrens entspricht:
\Index{DGL!Kepler-basiertes Verfahren}
\begin{itemize}
	\item	$y_0$ ist als Anfangswert gegeben, er liefert die Steigung $m_0$.
	\item	Ein erster Hilfspunkt $Z$ wird wie beim Heunverfahren mit einem 
		Eulerschritt gefunden, er liefert die Steigung $m_z$.
	\item	Der zweite Hilfspunkt $K$ wird mit der Steigung  
	  $m'=\frac{m_0+m_z}{2}$ eines Heun-Schrittes und halber Schrittweite 
    gefunden: $K=(x_K,y_K)=(x_0+\frac{h}{2},\;y_0+m'\cdot\frac{h}{2})$. 
    Er liefert die Steigung $m_K=f(x_K,y_K)$.
	\item Diese hat das größte Gewicht in dem Mittel 
		\fbox{$m=\frac{1}{6}(m_0+4 m_K+m_Z)$}. Mit dieser Steigung wird von $P_0$ 
    aus in einem Schritt $P_1=(x_0+h,y_0+m h)$ erreicht.	
\end{itemize}
Erkennen Sie in der Mittelung der Steigungen die Faktoren der 
Kepler'schen Regel wieder? Man erhält so tatsächlich die Konsistenzordnung 3.

Auch aus der Newton-Cotes-Formel (siehe Abschnitt \ref{sssec:newtoncotes}) 
kann man ein Verfahren gewinnen, welches drei Hilfspunkte braucht. 
Darauf gehen wir nicht weiter ein, sondern wenden uns im nächsten Abschnitt
dem bekanntesten Verfahren zu.

%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\subsection{Runge-Kutta-Verfahren}\label{subsec:runge-kutta}%
%ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

Das in der Praxis am häufigsten benutzte Verfahren verwendet 
ebenfalls drei Hilfspunkte. Es ist das 
{\bf \Index[DGL!]{Runge-Kutta-Verfahren}} und 
hat die {\bf \?Konsistenzordnung\? 4}. Leider gibt es dazu kein 
naheliegendes numerisches Integrationsverfahren. Wir wollen es nur 
grafisch darstellen (Abb.~\ref{fig:Runge-Kutta-solo}).

\begin{figure}[htbp]
\includegraphics{figuresHoema/Runge-Kutta-solo}
\caption[Runge-Kutta-Verfahren]{\textbf{Runge-Kutta-Verfahren.}
\textbf{a) Skizze\footnotemark}  eines Schrittes von $P_3$ aus:\\
Die Hilfspunkte werden in folgender Reihenfolge aufgesucht:\\
Mit $m_3$ (lila) einen halben Eulerschritt zu $H$, dort findet 
man $m_H$ (hellblau).\\
Mit $m_H$ einen halben Eulerschritt zu $R$, dort findet 
man $m_r$ (grün).\\
Mit $m_r$ einen ganzen Eulerschritt zu $S$, dort findet 
man $m_s$ (violett).\\
Der Zielpunkt $P_4{=}(x_4,y_4)$ wird mit einem ganzen 
Eulerschritt erreicht (rot), bei dem man 
\fbox{$m = \frac{1}{6}(m_3+2m_H+2m_R+m_S)$} verwendet.\\[1mm]
\textbf{b)} Die Punkte des Runge-Kutta-Verfahrens 
liegen \textbf{praktisch perfekt} auf der Lösungskurve. 
\vspace{-5mm}
}
\label{fig:Runge-Kutta-solo}
\end{figure}
\begin{merke}
Will man beim Runge-Kutta-Verfahren den 
Fehler auf $\frac{1}{10000}$ drücken, also {\bf 4 Dezimalstellen Genauigkeit 
hinzugewinnen}, dann braucht man nur ein Zehntel der alten 
Schrittweite zu verwenden und hat nur den {\bf 40-fachen 
Rechenaufwand}. 
\end{merke}
\vspace{-2mm}
\noindent%
Nicht etwa 10-fach, da man $f$ nun für jeden Schritt viermal auswerten 
muss. Das sind dennoch nur $0.4\%$ des Aufwandes beim Euler- und 5\% dessen 
beim Heunverfahren.
In der Abb.~\ref{fig:y2minusx-alle-Vergleich} sehen Sie Euler, Heun, Euler 
modifiziert und Runge-Kutta im Vergleich bei der Schrittweite $h = 0.5$. 
Deutlich ist die höhere Genauigkeit von Runge-Kutta schon bei gleicher 
Schrittweite zu sehen.
\footnotetext{Der Deutlichkeit halber ist sie nicht maßstäblich.}%

Mehr als drei Hilfspunkte lohnen sich nicht, weil merkwürdigerweise 
neue Hilfspunkte die Fehlerordnung nicht mehr jedes Mal erhöhen. 
%\noindent%
%In der Abb.~\ref{fig:RungeKuttaVergleich} 
%\vspace{-4mm}
\begin{smallfigure}[htbp]
\includegraphics{figuresHoema/y2minusx-alle-Vergleich}%width=7.2
\caption[Numerische DGL-Verfahren]{\textbf{Numerische DGL-Verfahren für 
{\boldmath $y'=y^2-x$}} im Vergleich mit $h=0.5$.
Der exakte Wert (blau) an der Stelle $x=3$ ist $y(3)=-1.47393$.\\
Das Runge-Kutta-Verfahren (rot) bringt: $y(3)\approx -1.50044$, das ist ein\\ 
Fehler von nur $1.4\%$.
Modifiziertes Eulerverfahren (ocker): $y(3)\approx -1.3515$,\\
Heun (lila): $y(3)\approx -1.1338$,\\
Euler (grün): $y(3)\approx 0.9641$.\\ 
Auf der \cite{Website} ist $A$ beweglich.
}
\label{fig:y2minusx-alle-Vergleich}
\end{smallfigure}
%\vspace{-4mm}

%#############################################
\subsection{Skurriles zur exakten Lösung von \boldmath $y' = y^2 - x$}
\label{subsec:y2minusxexakt} 
%#############################################

Die DGL $y' = y^2 - x$ lässt sich mit einem guten CAS analytisch 
lösen, allerdings nicht mit elementaren Funktionen. Mathematica 
liefert eine Lösung, in der {\bf \?Besselfunktion\?en 1. Art} {\boldmath 
$J_k(x)$} vorkommen:  
\[
	y(x) = -\frac{\i x^{3/2} \left(c_1 \left(J_{-\frac{4}{3}}\left(\frac{2}{3} \i 
	x^{3/2}\right)-J_{\frac{2}{3}}\left(\frac{2}{3} \i 
	x^{3/2}\right)\right)+2 
   J_{-\frac{2}{3}}\left(\frac{2}{3} \i x^{3/2}\right)\right)+c_1 
	 J_{-\frac{1}{3}}\left(\frac{2}{3} \i x^{3/2}\right)}{2 x \left(c_1 
   J_{-\frac{1}{3}}\left(\frac{2}{3} \i 
	 x^{3/2}\right)+J_{\frac{1}{3}}\left(\frac{2}{3} \i 
	 x^{3/2}\right)\right)} 
\]
Das sieht unangenehm aus und ist es auch. Der Leser wird bemerken, 
dass die imaginäre Einheit $\i$ vorkommt, die Lösung also komplex 
formuliert ist, obwohl alles reell sein sollte. Nicht mit Mathematica, 
aber durch emsiges Lesen in Handbüchern zu speziellen Funktionen kann 
man die komplexen Zahlen loswerden, wenn man die Besselfunktionen 
durch {\bf\boldmath modifizierte Besselfunktionen 1. Art $I_k(x)$} ersetzt.
Mit der geschickten Ersetzung der Integrationskonstanten $c_1$ durch 
$c_1 = \frac{1+\sqrt3\,\i}{2}c$ erhält man
\[
	y(x) = -\frac{\sqrt{x} \left(c I_{\frac{2}{3}}\left(\frac{2 
	x^{3/2}}{3}\right)+I_{-\frac{2}{3}}\left(\frac{2 
	x^{3/2}}{3}\right)\right)}{c 
   I_{-\frac{1}{3}}\left(\frac{2 
	 x^{3/2}}{3}\right)+I_{\frac{1}{3}}\left(\frac{2 x^{3/2}}{3}\right)} 	 
\]
Die Abb.~\ref{fig:y2minusxexakt} zeigt einige interessante Lösungskurven.

\begin{figure}[htbp]
\includegraphics[width=12cm]{figuresHoema/y2minusxexakt.eps}
\caption[$y'=y^2-x$ exakt gelöst]{\textbf{$y'=y^2-x$ exakt gelöst.}  
}
\label{fig:y2minusxexakt}
\end{figure}
\noindent%
Die spezielle Lösung, die  in Abb.~\ref{fig:y2minusx-isoklinen-bis-losung}\,c) 
die Grenze zwischen den grünen und den blauen Lösungskurven bildet, 
entsteht für $c=-1$ und lautet 
\[
	y(x) = -\frac{\sqrt{x} \left(I_{-\frac{2}{3}}\left(\frac{2 
	x^{3/2}}{3}\right)-I_{\frac{2}{3}}\left(\frac{2 
	x^{3/2}}{3}\right)\right)}{I_{\frac{1}{3}}\left(\frac{2 
   x^{3/2}}{3}\right)-I_{-\frac{1}{3}}\left(\frac{2 
	 x^{3/2}}{3}\right)} = -\frac{\text{Ai}'(x)}{\text{Ai}(x)}. 
\]
Sie löst das Anfangswertproblem $y(0) = 
-\dfrac{\sqrt[3]{3}\,\Gamma\!\left(\frac{2}{3}\right)}%
{c\,\Gamma\!\left(\frac{1}{3}\right)} = 
0.729011132947227$. Dabei steht $\text{Ai}(x)$ für eine weitere 
spezielle Funktion, die {\bf \?Airy-Funktion\?}. Es kommt noch eine 
Funktion vor, die {\bf \?Gammafunktion\?} $\Gamma(x)$, die die Fakultät 
auf ganz $\mathbb R$ fortsetzt und für ganze Zahlen $n$ den Wert 
$\Gamma(n) = (n-1)!$ hat. 

Versuchen Sie einmal, in der GeoGebra-Datei diesen Anfangswert exakt 
einzustellen und die Lösung 
anzuschauen. Sie müssen dazu in den Einstellungen die Stellenzahl für 
Dezimalzahlen möglichst hoch setzen.  

Eine Skurrilität ist, dass diese spezielle Kurve unter Umständen falsch 
gezeichnet wird, siehe Abb.~\ref{fig:y2minusxexaktskurril}.

\begin{smallfigure}[htbp]
\includegraphics[width=6cm]{figuresHoema/y2minusxexaktskurril.eps}
\caption[$y'=y^2-x$ numerisch ungenau]{\textbf{$y'=y^2-x$ exakt 
gelöst, aber numerisch ungenau.} Wenn man statt der Airy-Funktionen die 
ursprünglichen Besselfunktionen verwendet, gerät selbst Mathematica hier 
offenbar in numerische Schwierigkeiten, wie man am rechten Bildrand deutlich 
sieht. Auch ist diese "`Lösungskurve"' bei $x=0$ plötzlich unstetig. 
Tatsächlich wurden hier die Realteile der scheinbar komplexen Lösungen 
gezeichnet, was aber am Ergebnis nichts ändern dürfte, da die Lösungen ja 
eigentlich reell sind.
}
\label{fig:y2minusxexaktskurril}
\end{smallfigure}
\noindent%
Diese simple DGL führt also sehr schnell in mathematisch abgelegene Gefilde. 
Die vorkommenden Funktionen haben aber eine Vielzahl technischer 
Anwendungen, z.\,B. 
\begin{description}
	\item[Besselfunktionen] für 
\begin{itemize}
  \item Eigenschwingungen einer kreisförmigen Membran oder Orgelpfeife,
  \item Ausbreitung von Wasserwellen in runden Behältern,
  \item Wärmeleitung in Stäben,
  \item Feldverteilung im Querschnitt von Rundhohlleitern,
  \item stationäre Zustände von Kastenpotentialen,
  \item Leistungsverteilung in Kernreaktoren,
  \item Lichtbeugung an kreisförmigen Löchern.
\end{itemize}
	\item[Airy-Funktion] für die
\begin{itemize}
  \item Lösung der Schrödinger-Gleichung für einen linearen Potentialtopf.
\end{itemize}
\end{description}
Der Leser muss nicht wissen, was das alles im Einzelnen ist, und wir können
auch nicht weiter darauf eingehen.

%#############################################
\subsection{Weitere Methoden und Aspekte}\label{subsec:DGLnumAspekte} 
%#############################################

Alle bisher betrachteten Verfahren zur numerischen Lösung von DGLn 
sind {\bf explizite Einschrittverfahren}. Das bedeutet, dass die 
Verfahrensfunktion $\Phi$ außer von $h$ nur von {\em einem} zuvor 
berechneten Punkt $(x_k,y_k)$ abhängt. {\em Explizit} bedeutet, dass 
die nächste Näherung direkt durch $y_{k+1} = \Phi(x_k,y_k,h)$ gegeben 
ist. 

Es gibt auch {\bf implizite} Verfahren, 
bei denen die Verfahrensfunktion die neue Näherung selbst enthält.
Eine andere Variation der Ideen führt auf die Möglichkeit sogenannter {\bf 
Mehrschrittverfahren}, bei denen die Verfahrensfunktion auf mehrere 
vorher berechnete Punkte zurückgreift.

Diese beiden Möglichkeiten führen wir nun aus. Es gibt noch eine Vielzahl weiterer numerischer Methoden und Aspekte, die 
in den dann folgenden Abschnitten kurz beleuchtet werden sollen.

%#############################################
\subsubsection{I\Index[DGL!i]{mplizite Verfahren}}%
\label{sssec:DGLnumimplizit}%
%#############################################
In einem impliziten Verfahren enthält die Verfahrensfunktion $\Phi$ als 
Argument auch den Näherungswert $y_{k+1}$, der im aktuellen Schritt 
berechnet werden soll:\\
$y_{k+1} = \Phi(x_k,y_k,y_{k+1},h)$. In 
diesem Fall hätte man zusätzlich noch eine Gleichung aufzulösen, um  
$y_{k+1}$ zu finden. Ein Beispiel für ein solches Verfahren ergibt 
sich, wenn man das \Index[DGL!]{Heunverfahren} als 
Umsetzung der Trapezregel ernst 
nimmt:
\begin{align*}
  y_1 &= y_0 + \int_{x_0}^{x_1}f(x,y)\d x \approx 
	y_0 + \frac{f(x_0,y_0)+f(x_1,y_1)}{2}(x_1-x_0) = \\
	&= y_0 + \frac{h}{2}\bigl(f(x_0,y_0)+f(x_0+h,y_1)\bigr) = \Phi(x_0,y_0,y_1,h).
\end{align*}
Die entstehende Gleichung für $y_1$ lässt sich meist nicht einfach 
auflösen. Man wird versuchen, sie durch eine Iteration zu lösen. 
Ausgehend von einem Startwert $y_1^{(0)}$ werden iterativ neue 
Näherungswerte für $y_1$ berechnet mit
\[
	y_1^{(i+1)} = \Phi(x_0,y_0,y_1^{(i)},h).
\]
Man hofft auf rasche Konvergenz 
$\displaystyle\lim_{i\to\infty}y_1^{(i)}\to y_1$ 
oder, und das ist praktikabler, führt nur einen solchen 
Iterationsschritt mit einem "`guten"' Startwert durch. Wenn man im 
Beispiel des impliziten Verfahrens aus der Trapezregel als Startwert 
\[
	y_1^{(0)} = y_0 + h\,f(x_0,y_0),
\]
also das Ergebnis des Eulerverfahrens nimmt, erhält man genau das 
\und{Heunverfahren} 
\Index{Heunverfahren}%
zurück. Dieses wird deshalb auch als {\bf 
\Index[DGL!]{Prädiktor-Korrektor}} Verfahren bezeichnet: 
Euler \textbf{sagt} einen Wert für 
$y_1$ \textbf{voraus} (\textit{prä=vorher}, \textit{dicere=sagen}), der 
anschließend durch einen Iterationsschritt 
\textbf{verbessert} ({\em korrigiert}\/) wird.

%#############################################
\subsubsection{\Index[DGL!]{Mehrschrittverfahren}}%
\label{sssec:DGLnumMehrschritt}%
%#############################################
Das Runge-Kutta-Verfahren hat zwar Konsistenzordnung 4, es werden aber 
bei jedem Schritt drei Werte von $f(x,y)$ an Stellen berechnet, die nicht 
Teil der (angenäherten) Lösungskurve sind und die nicht 
wiederverwendet werden können. Es wäre schön, das zu vermeiden. 
Mehrschrittverfahren tun genau dies. Ihre Verfahrensfunktion $\Phi$ verwendet 
zur Berechnung von $y_1$ nicht nur $y_0$, sondern mehrere vorherige Werte 
$y_{-1},\ y_{-2},\ y_{-3},\  \dots,\ y_{-n}$, die die gleiche Rolle 
spielen wie die Hilfspunkte bei den Einschrittverfahren. Dadurch soll 
die Konsistenzordnung erhöht werden, aber dennoch nur {\bf eine} 
Auswertung von $f$ pro Schritt von $x_i$ zu $x_{i+1}$ nötig sein. 

Eine Möglichkeit dazu sieht so aus, dass man durch die Punkte\\ 
$\bigl(x_0,f(x_0,y_0)\bigr),\ \bigl(x_{-1},f(x_{-1},y_{-1})\bigr),\ 
\bigl(x_{-2},f(x_{-2},y_{-2})\bigr),\ \dots,\ \bigl(x_{-n},f(x_{-n},y_{-n})
\bigr)$\\
\Index{Polynom!Interpolations\~}%
ein Interpolationspolynom $p_n(x)$ vom Grad $n$ legt und approximiert 
\[
	y_1 = y_0 + \int_{x_0}^{x_1} f(x,y(x))\,\d x 
  \approx y_0 + \int_{x_0}^{x_1} p_n(x)\,\d x.
\]
Wie sich aus der Lagrange'schen Formel 
(siehe Abschnitt \ref{sssec:lagrangepoly}) ergibt, erhält man 
$p_n(x) = f(x_0,y_0)L_0(x) + f(x_{-1},y_{-1})L_{-1}(x) + \dots 
+ f(x_{-n},y_{-n})L_{-n}(x)$ mit \\[1mm]
$L_0(x) = \frac{(x-x_{-1})(x-x_{-2})\cdots(x-x_{-n})}{(x_0-x_{-1})(x_0-x_{-2})
\cdots(x_0-x_{-n})}$, 
$L_1(x) =\frac{(x-x_{0})(x-x_{-2})\cdots(x-x_{-n})}{(x_{-1}-x_0)(x_{-1}-x_{-2})
\cdots(x_{-1}-x_{-n})}$, \dots, \\[1mm]
$L_n(x) = \frac{(x-x_{0})(x-x_{-1})
\cdots(x-x_{-n+1})}{(x_{-n}-x_0)(x_{-n}-x_{-1})\cdots(x_{-n}-x_{-n+1})}$. 
\\[1mm]
Durch die Integration nach $x$ zwischen $x_0$ und $x_1$ werden aus 
den $L_0(x),\dots,L_n(x)$ Zahlen $a_0,a_1,\dots,a_n$, und die 
Verfahrensfunktion $\Phi$ lautet schließlich
\begin{equation}\label{formel:DGLMehrschritt}
	y_1 = y_0 + a_0f(x_0,y_0) + a_{-1}f(x_{-1},y_{-1}) + \dots + 
	a_{-n}f(x_{-n},y_{-n}). 
\end{equation}
Dies ist ein explizites Verfahren. Es hat {\bf \?Konsistenzordnung\? 
\boldmath $n$}. Für $n=1$, also eine Gerade als Interpolationspolynom, 
ergibt sich konkret $a_0=\frac{3}{2}h,\ a_{-1}=-\frac{1}{2}h$, mit der 
für alle $i$ konstanten Schrittweite $h = x_{i+1}-x_i$.

Wenn man für das Interpolationspolynom auch noch den Punkt 
$\bigl(x_1,f(x_1,y_1)\bigr)$ einbezieht, erhält man 
ein Polynom $p_{n+1}(x)$ vom 
Grad $n+1$ und ein \textbf{\und{implizites}} 
\Index{DGL!implizite Verfahren}%
Verfahren. Elegant ist die Kombination von beiden in einem 
Prädiktor-Korrektor-Verfahren. 

\begin{figure}[htbp]
\includegraphics{figuresHoema/DGlnumMehrschritt.eps}
%\includegraphics[width=5cm]{figuresHoema/DGlnumMehrschritt1.eps}
%\includegraphics[width=5cm]{figuresHoema/DGlnumMehrschritt2.eps}
%\includegraphics[width=2.5cm]{figuresHoema/DGlnumleapfrog.eps}
\caption[Mehrschrittverfahren]{\textbf{Mehrschrittverfahren 
veranschaulicht.} \textbf{a)} explizites Mehrschrittverfahren,	
der rote Punkt ergibt sich aus Formel~\ref{formel:DGLMehrschritt}, 
\textbf{b)} implizites Mehrschrittverfahren, $p_{n+1}$ wird mit 
unbekanntem $y_1$ aufgestellt,
\textbf{c)} {\em leapfrog}-Verfahren. Bei letzterem ist der Integrationsbereich 
ein anderer, nämlich von $x_{-1}$ bis $x_1$. Das Integral wird durch die 
Mittenregel approximiert, weshalb nur $f(x_0,y_0)$ in die Rechnung eingeht.
}
\label{fig:DGlnumMehrschritt}
\end{figure}
\noindent%
Statt der Integration mithilfe von Interpolationspolynomen kann man auch eine 
andere numerische Integrationsmethode verwenden, die Stützstellen in gleichen 
Abständen benutzt. Für $n=2$ führt die {\bf \?Mittenregel\?} 
\Index{DGL!lea@\textit{leapfrog}-Verfahren}%
auf das 
{\bf \und{leapfrog}}-Verfahren\footnote{\textit{engl}. "`hüpfender Frosch"'}:
\[
	y_1 = y_{-1} + 2h\,f(x_0,y_0).
\]
Dies dürfte die einfachste Möglichkeit sein, Konsistenzordnung 2 zu 
erreichen. Die Abb.~\ref{fig:DGlnumMehrschritt} veranschaulicht die 
Methoden. 

Ein Nachteil der Mehrschrittverfahren ist, dass sie nicht mit der 
Anfangsbedingung $y(x_0) = y_0$ starten können, sondern einen Vorlauf 
brauchen, der genügend viele $y_{k}$ bereitstellt. Diese wiederum können aber 
mit Einschrittverfahren passender Konsistenzordnung gefunden werden.

%#############################################
\subsubsection{Systeme von DGLn}%
\label{sssec:DGLnumSysteme}%
%#############################################
Dies dürfte der kürzeste Abschnitt werden: alles bisher Gesagte 
überträgt sich eins-zu-eins auf Systeme von 
\INDEX[!Systeme von \~n]{DGL}n, die man am kürzesten 
als 
\[
	\vec y\,' = \vec f(x,\vec y)
\]
schreibt. Es gibt also einen Vektor $\vec y(x)$ von gesuchten 
Funktionen. Die rechten Seiten der DGLn für jede Komponente sind im 
Vektor $\vec f$ zusammengefasst. Alle Formeln und Rechnungen der 
vorhergehenden Abschnitte können übernommen werden, man muss nur $y$ 
durch $\vec y$ und $f$ durch $\vec f$ ersetzen und komponentenweise 
rechnen! 

Damit sind auch DGLn von höherer als 1. Ordnung abgedeckt, wenn man 
sie auf die bereits beschriebene Weise umschreibt als System von DGLn 
1. Ordnung (siehe Abschnitt \ref{subsec:systeme-DGLn-allg}).

%#############################################
\subsubsection{Stabilität und steife \INDEX[!Stabilität, Steifheit]{DGL}n}%
\label{sssec:DGLnumStabilitaet}% 
%#############################################
Die Abb.~\ref{fig:DGlnumEulerinstabil} zeigt die Anwendung des 
Eulerverfahrens auf die DGL
\[
	y' = -\lambda y,\quad \text{mit } y(0) = 1,\ \lambda>0.
\]
Die Lösung ist, wie man sofort einsieht, {\boldmath $y(x) = 
\e^{-\lambda x}$}. Die Lösung geht also mit $x\to\infty$ sehr rasch 
gegen null; je größer $\lambda$ ist, umso schneller. Man erwartet, 
dass das \Index[DGL!]{Eulerverfahren} ebenfalls schnell gegen null gehende 
Näherungen liefert. Im Bild sieht man aber, dass bei $\lambda=5$ für 
Schrittweiten $h>0.4$ ganz im Gegenteil die Näherungslösung zu oszillieren 
beginnt mit immer größeren, exponentiell anwachsenden Amplituden! Das 
Eulerverfahren ist also {\bf instabil}. Ist $h$ klein genug, läuft 
hingegen alles nach Erwartung. 

\begin{figure}[htbp]
\includegraphics{figuresHoema/DGlnumEulerinstabil.eps}
%\includegraphics[width=4cm]{figuresHoema/DGlnumEulerinstabil045.eps}
%\includegraphics[width=4cm]{figuresHoema/DGlnumEulerinstabil04.eps}
%\includegraphics[width=4cm]{figuresHoema/DGlnumEulerinstabil035.eps}
\caption[Eulerverfahren instabil]{\textbf{Das Eulerverfahren ist 
instabil.} Die DGL $y' = -\lambda y$
zu den Anfangswerten $y(0) =1$ hat die exakte Lösung $y(x) = \e^{-\lambda x}$. 
Sie wird mit dem Eulerverfahren approximiert. Im Bild ist $\lambda = 5$. 
In\textbf{ a)}, \textbf{b)}, \textbf{c)} sind die Schrittweiten 
$h=0.45,\ 0.4,\ 0.35$. Bei $h>0.4$ wird das Verfahren instabil!
}
\label{fig:DGlnumEulerinstabil}
\end{figure}
\noindent%
Der Grund ist schnell einzusehen. Die ersten Eulerschritte sehen so 
aus:
\begin{align*}
 y_1 &= y_0 + h\,f(x_0,y_0) = y_0 + h(-\lambda y_0) = y_0(1-\lambda h), \\
 y_2 &= y_1 + h(-\lambda y_1) = y_1(1-\lambda h) = y_0(1-\lambda h)^2, \\
 \dots &= \dots \\
 y_k &= y_0(1-\lambda h)^k.
\end{align*}
Offenbar wird $y_k$ unbeschränkt wachsen, wenn $|1-\lambda h|>1$ ist. 
Für $\lambda,\,h>0$ tritt das ein, sobald $h>\frac{2}{\lambda}$ ist. 
Für ein stabiles Verhalten muss also {\boldmath $h<\frac{2}{\lambda}$} 
sein. Kurioserweise ist also die nötige Schrittweite umso kleiner zu 
wählen, je größer $\lambda$ ist, also je schneller die Lösung gegen 
null geht! In der GeoGebra-Datei auf der \cite{Website} können Sie $\lambda$ 
verändern und 
sich diesen Effekt ansehen. \\
Noch fataler ist dieser Effekt für Systeme von DGLn. Beispiel:
\[
  \text{System: } \left\{
  \begin{matrix} y_1' &=& y_1 \cr y_2' &=& -1000y_2\end{matrix},\right.
  \qquad\text{Lösung: } \left\{
  \begin{matrix} y_1(x) &=& \e^x \cr y_2(x) &=& \e^{-1000x}\end{matrix}\;.
  \right.
\]
Wegen der Instabilität bei $y_2$ muss die (gemeinsame) Schrittweite 
$h<0.005$ sein, obwohl $y_1$ mit deutlich größeren Schrittweiten kein 
Problem hat.

Dieses Verhalten kann auch bei anderen numerischen Verfahren 
auftreten. DGLn (oder Systeme davon), die dafür anfällig sind, werden 
{\bf steife DGLn} genannt. Obiges Beispiel für ein System von DGLn lässt sich 
schreiben als 
$\vec y\,' = A\,\vec y \quad \text{mit }\ A = 
  \left(\begin{smallmatrix}
    1 & 0 \cr 0 & -1000
  \end{smallmatrix}\right)$.
Die Matrix $A$ hat die offensichtlichen Eigenwerte $\lambda_1 = 1$ und 
$\lambda_2 = -1000$. Die Steifheit ist im großen negativen Eigenwert 
begründet. Allgemein definiert man 
 
\begin{definition}[\und{Steifheit}]\label{def:steifheit}%
\Index{DGL!Stabilität, Steifheit}%
  Die DGL $\vec y\,' = \vec f(x,\vec y)$ heißt {\bf steif}, wenn die 
	Jacobi-Matrix {\boldmath $J_F$} zur Abbildung $F\colon\vec y \to \vec 
	f(x,\vec y)$ für ein festes $x=x_0$ einen (evtl. 
	komplexen) Eigenwert $\lambda$ hat mit {\boldmath $\lambda\ll 0$} (bzw. 
	$\Re(\lambda)\ll 0$). 
\end{definition}
\noindent%
Der Grund für diese Definition liegt in der linearen Approximation
$\vec y\,' - \vec y\,'_0 \approx J_F\cdot(\vec y\, - \vec y_0)$,
worin $\vec y_0 := \vec y(x_0)$ und $\vec y\,'_0 := \vec y\,'(x_0) = 
\vec f(x_0,y_0)$ gesetzt ist. Sie macht deutlich, dass $J_F$ i.\,A. die Rolle 
der Matrix $A$ in unserem Beispiel übernimmt.

%#############################################
\subsubsection{\Index[DGL!]{Schrittweitensteuerung}}%
\label{sssec:DGLnumSchrittweiten}%
%#############################################
Im vorigen Abschnitt wurde deutlich, dass die Schrittweite unter 
Umständen geschickt gewählt werden muss. Aber auch für nicht steife 
DGLn oder bei Verwendung von Verfahren, die sich auch für steife DGLn gutmütig 
verhalten, kann es sinnvoll sein, die Schrittweite variabel zu halten 
und wechselnden Genauigkeitsansprüchen anzupassen. In 
Abb.~\ref{fig:y2minusxEuler} etwa wäre nahe $x=0$, wo sich entscheidet, ob 
die Lösung zur oberen instabilen oder zur unteren stabilen 
Sonderlösung hinlaufen wird, eine kleine Schrittweite sinnvoll, 
während rechts im ruhigen Fahrwasser der stabilen Sonderlösung größere 
Schrittweiten ausreichen könnten.

Bei Mehrschrittverfahren, die sich auf feste Abstände zwischen den 
Stützstellen zur Interpolation verlassen, ist es nicht so einfach, die 
Schrittweite variabel zu halten, wohl aber bei Einschrittverfahren. 
Für das Runge-Kutta-Verfahren aus Abb.~\ref{fig:Runge-Kutta-solo} 
wollen wir eine solche Möglichkeit aufzeigen. 

Wegen der Konsistenzordnung 4 gilt für den {\bf lokalen} Fehler $y(x_1) - 
y_h(x_1)$ an einer Stelle $x_1$, wobei $y_h(x_1)$ als Näherungswert 
mit Schrittweite $h$ von $x_0$ aus erreicht wurde, 
\[
	y(x_1) - y_h(x_1) \approx C\cdot h^5
\]
mit einer Konstanten $C$, die von der Schrittweite unabhängig ist. 
Rechnet man noch einmal mit halber Schrittweite $\frac{h}{2}$, dann ist
\[
	y(x_1) - y_{h/2}(x_1) \approx 2C\cdot \left(\frac{h}{2}\right)^5 = 
	C\cdot\frac{h^5}{16}. 
\]
Der zusätzliche Faktor 2 kommt deshalb zustande, weil man nun zwei 
Schritte bis $x_1$ braucht und sich zwei lokale Fehler addieren. 
Nun rechnet man (das Argument $x_1$ ist weggelassen):
\begin{align*}
  y_{h/2} - y_h \approx C\cdot h^5\cdot\frac{15}{16}, \quad&\quad
	C\cdot\frac{h^5}{16} \approx \frac{1}{15}\cdot(y_{h/2} - y_h), \\
	\mbox{\boldmath$ y - y_{h/2}\ $} &\mbox{\boldmath$\approx  
	\dfrac{1}{15}\cdot(y_{h/2} - y_h)$}. 
\end{align*}
Damit hat man eine Schätzung für den Fehler. Man kann $h$ solange 
verkleinern, bis dieser Fehler so klein ist wie gewünscht, und im 
weiteren Verlauf immer kontrollieren, ob er klein genug ist oder ob 
$h$ angepasst werden muss --~Vergrößerungen von $h$ sind durchaus auch 
möglich. 

Das vorgestellte Verfahren benötigt 11 Auswertungen von $f$, weil nur eine 
Auswertung aus der Schrittweite $h$ wiederverwendet werden kann, 
das ist fast der dreifache Aufwand. Es gibt aber sparsamere 
Runge-Kutta-Methoden, die mit nur einer extra Auswertung von $f$
auskommen.

In praktischen Implementierungen werden alle genannten Möglichkeiten und noch 
weit raffiniertere Tricks eingesetzt und auf spezielle Anwendungen 
zugeschnitten. Wir wollen uns aber mit den gegebenen Einblicken zufrieden 
geben.