% % 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}