%
% teil2.tex -- Umsetzung in C Programmen
%
% (c) 2022 Fabian Dünki, Hochschule Rapperswil
%
\section{Umsetzung
\label{0f1:section:teil2}}
\rhead{Umsetzung}
Zur Umsetzung wurden drei Ansätze gewählt und 
Die Unterprogramme wurde jeweils, wie die GNU Scientific Library, in C geschrieben.

\subsection{Potenzreihe
\label{0f1:subsection:potenzreihe}}
Die naheliegendste Lösung ist die Programmierung der Potenzreihe.

\begin{equation}
    \label{0f1:rekursion:hypergeometrisch:eq}
    \mathstrut_0F_1(;b;z)
    =
    \sum_{k=0}^\infty
    \frac{z^k}{(b)_k \cdot k!}
\end{equation}

\lstinputlisting[style=C,float,caption={Rekursivformel für Kettenbruch.},label={0f1:listing:potenzreihe}]{papers/0f1/listings/potenzreihe.c}

\subsection{Kettenbruch
\label{0f1:subsection:kettenbruch}}
Ein endlicher Kettenbruch ist ein Bruch der Form
\begin{equation}
a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{\cdots}{\cdots+\cfrac{b_{n-1}}{a_{n-1} + \cfrac{b_n}{a_n}}}}}
\end{equation}
in welchem $a_0, a_1,\dots,a_n$ und $b_1,b_2,\dots,b_n$ ganze Zahlen
darstellen.

{\color{red}TODO: Bessere Beschreibung mit Verknüpfung zur Potenzreihe}

%Gauss hat durch 

\lstinputlisting[style=C,float,caption={Rekursivformel für Kettenbruch.},label={0f1:listing:kettenbruchIterativ}]{papers/0f1/listings/kettenbruchIterativ.c}
\subsection{Rekursionsformel
\label{0f1:subsection:rekursionsformel}}
Wesentlich effizienter zur Berechnung eines Kettenbruches ist die Rekursionsformel.

\begin{align*}
\frac{A_n}{B_n}
=
a_0 + \cfrac{b_1}{a_1+\cfrac{b_2}{a_2+\cfrac{\cdots}{\cdots+\cfrac{b_{n-1}}{a_{n-1} + \cfrac{b_n}{a_n}}}}}
\end{align*}

Die Berechnung von $A_n, B_n$ kann man auch ohne die Matrizenschreibweise
aufschreiben:
\begin{itemize}
\item Start:
\begin{align*}
A_{-1} &= 0		&		A_0 &= a_0 \\
B_{-1} &= 1		&		B_0 &= 1 
\end{align*}
$\rightarrow$ 0-te Näherung: $\displaystyle\frac{A_0}{B_0} = a_0$
\item Schritt $k\to k+1$:
\[
\begin{aligned}
k &\rightarrow k + 1:
&
A_{k+1} &= A_{k-1} \cdot b_k + A_k \cdot a_k \\
&&
B_{k+1} &= B_{k-1} \cdot b_k + B_k \cdot a_k
\end{aligned}
\]
\item
Näherungsbruch $n$: \qquad$\displaystyle\frac{A_n}{B_n}$
\end{itemize}
{\color{red}TODO: Verweis Numerik}


\lstinputlisting[style=C,float,caption={Rekursivformel für Kettenbruch.},label={0f1:listing:kettenbruchRekursion}]{papers/0f1/listings/kettenbruchRekursion.c}