\documentclass[10pt,a4paper,oneside,ngerman,numbers=noenddot]{scrartcl} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[ngerman]{babel} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{paralist} \usepackage{gauss} \usepackage{pgfplots} \usepackage{textcomp} \usepackage[locale=DE,exponent-product=\cdot,detect-all]{siunitx} \usepackage{tikz} \usetikzlibrary{matrix,fadings,calc,positioning,decorations.pathreplacing,arrows,decorations.markings} \usepackage{polynom} \polyset{style=C, div=:,vars=x} \pgfplotsset{compat=1.8} \pagenumbering{arabic} \def\thesection{\arabic{section})} \def\thesubsection{(\alph{subsection})} \def\thesubsubsection{(\roman{subsubsection})} \makeatletter \renewcommand*\env@matrix[1][*\c@MaxMatrixCols c]{% \hskip -\arraycolsep \let\@ifnextchar\new@ifnextchar \array{#1}} \makeatother \begin{document} \author{Tronje Krabbe, Jim Martens (6420323)} \title{Hausaufgaben zum 22. Oktober} \subtitle{Gruppe 8} \maketitle \section{} %1 \subsection{} %a $\frac{1}{n} \prec 1$, da man immer eine Konstante $c$ finden kann, für die ab einem $n$ alle weiteren Funktionswerte von $\frac{1}{n}$ unter $c \cdot \mathcal{O}(1)$ liegen. $1 \prec \log\log n$, da der Logarithmus schneller wächst als eine konstante Funktion und jeder Logarithmus langsamer wächst als eine polynomielle Funktion. Der doppelte Logarithmus wächst noch langsamer als der einfache Logarithmus. $\log\log n \prec \log n$, da der einfache Logarithmus schneller wächst als der doppelte Logarithmus. $\log n \asymp \log(n^{3})$, da sich die beiden nur um einen konstanten Faktor $3$ unterscheiden. $\log(n^{3}) \prec \log(n^{\log n})$, da $\frac{\log n \cdot \log n}{3 \cdot \log n}$ gegen unendlich geht. $\log(n^{\log n}) \prec n^{0.01}$, da jeder Logarithmus langsamer wächst als eine polynomielle Funktion. $n^{0.01} \prec \sqrt{n}$, da $\frac{n^{0.5}}{n^{0.01}}$ nach dem Kürzen gegen unendlich geht. $\sqrt{n} \prec n \cdot \log n$, da $\frac{n \cdot \log n}{n^{0.5}}$ nach dem Kürzen gegen unendlich geht. $n \cdot \log n \prec n^{8}$, da $\frac{n^{8}}{n \cdot \log n}$ nach dem Kürzen gegen unendlich geht, weil jeder Logarithmus langsamer wächst als jede polynomielle Funktion. $n^{8} \prec 2^{n}$, da jede Exponentialfunktion schneller wächst als jede polynomielle Funktion. $2^{n} \prec 8^{n}$, da $8 > 2$, womit $8^{n}$ klar ersichtlich schneller wächst als $2^{n}$. $8^{n} \prec n!$, da $\frac{n \cdot (n-1) \cdot ... \cdot 3 \cdot 2 \cdot 1}{8 \cdot 8 \cdot ... \cdot 8 \cdot 8 \cdot 8}$ ganz offensichtlich gegen unendlich geht. $n! \prec n^{n}$, da $\frac{n \cdot n \cdot n \cdot ... \cdot n \cdot n}{n \cdot (n-1) \cdot (n-2) \cdot ... \cdot 2 \cdot 1}$ ebenfalls gegen unendlich geht. \subsection{} %b \subsubsection{} %i Zu zeigen: für beliebige $b > 1$ gilt: $\log_{b}(n) \in \mathcal{\theta} (\log_{2}n)$\\ Dies ist durch die Logarithmusgesetze einfach zu zeigen. $\log_{b}(n)$ kann demnach auch als $\frac{\log_{2}(n)}{\log_{2}(b)}$ dargestellt werden. Dabei geht dieser Term asymptotisch gegen $\log_{2}(n)$, da $\log_{2}(b)$ eine Konstante ist und daher nicht beachtet werden muss. Damit ist die Aussage gezeigt, dass $\log_{b}(n)$ für $b > 1$ asymptotisch genau so schnell wächst wie $\log_{2}(n)$. \subsubsection{} %ii Behauptung: $f \in \mathcal{O}(g) \Rightarrow g \in \omega (f)$\\ Diese Behauptung gilt nicht. Dies kann mithilfe der Definition der Landau-Symbole erklärt werden. $f \in \mathcal{O}(g)$ besagt, dass $f$ maximal so schnell wie $g$ wächst. Dabei ist auch der Fall enthalten, dass $f$ und $g$ gleich schnell wachsen. Der zweite Teil der Behauptung erfordert jedoch, dass $g$ in jedem Fall schneller als $f$ wächst. Dies steht aber im Widerspruch zu dem ersten Teil der Behauptung. Damit ist die Behauptung widerlegt. \subsubsection{} %iii Behauptung: $f_{c}(n) \in \theta(n) \Leftrightarrow c = 1$.\\ Dies ist einfach zu zeigen:\\ \begin{alignat*}{2} \sum\limits_{i=0}^{n} 1^{i} &=& 1 + 1 + 1 + ... + 1 = n + 1 \end{alignat*} Denn für $c=1$ werden einfach $n+1$ Einsen aufsummiert. Die Summe $n+1$ wächst asymptotisch genau so schnell wie $n$, da die Konstante $1$ vernachlässigt werden kann. \section{} %2 \subsection{} %a \underline{Behauptung:} $F_{n} \geq 2^{0.5n} : \forall n \geq 6$\\ \underline{Induktionsanfang ($n = 6)$:}\\ \begin{alignat*}{2} F_{6} &=& F_{5} + F_{4} = 8\\ F_{5} &=& F_{4} + F_{3} = 5\\ F_{4} &=& F_{3} + F_{2} = 3\\ F_{3} &=& F_{2} + F_{1} = 2\\ F_{2} &=& F_{1} + F_{0} = 1 \end{alignat*} Daraus ergibt sich: $8 \geq 2^{0.5 \cdot 6} \Leftrightarrow 8 \geq 2^{3} \Leftrightarrow 8 \geq 8$. Damit ist die Behauptung für den Induktionsanfang gezeigt.\\ \underline{Induktionsannahme:} $F_{n} \geq 2^{0.5n}$ gilt bis zu einem beliebig fest gewählten $n$.\\ \underline{Zu zeigen:} $F_{n+1} \geq 2^{0.5 \cdot (n+1)}$ gilt.\\ \underline{Induktionsschritt:}\\ \begin{alignat*}{3} F_{n+1} = F_{n} + F_{n-1} &\overset{IA}{\geq} & 2^{0.5n} + 2^{0.5 \cdot (n-1)} &\overset{!}{\geq}& 2^{0.5 \cdot (n+1)} \\ && 2^{0.5n} + 2^{0.5n} \cdot 2^{-0.5} &\geq& 2^{0.5n} \cdot 2^{0.5} \\ && 2^{0.5n} \cdot \left(1 + 2^{-0.5}\right) &\geq & 2^{0.5n} \cdot 2^{0.5} \end{alignat*} Nun muss nur noch $\left(1 + 2^{-0.5}\right)$ mit $2^{0.5}$ verglichen werden. Da beide Terme Konstanten sind, kann man einfach deren Werte ausrechnen und vergleichen. Daher ergibt sich folgendes: \begin{alignat*}{2} \left(1 + 2^{-0.5}\right) &\geq & 2^{0.5} \\ \intertext{gerundet auf $5$ Nachkommastellen} 1.70710 &\geq & 1.41421 \end{alignat*} Damit ist die Behauptung sowohl für den Induktionsanfang als auch für ein beliebiges $n$ gezeigt. \subsection{} %b \section{} %3 \subsection{} %a \underline{Behauptung:} Die Formel \begin{alignat*}{2} \begin{pmatrix} F_{n} \\ F_{n+1} \end{pmatrix} &=& \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix}^{n} \cdot \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} \end{alignat*} gilt für $n \geq 0$.\\ \underline{Induktionsanfang:}\\ \begin{alignat*}{2} \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} &=& \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix}^{0} \cdot \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} \\ &=& \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \cdot \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} \\ &=& \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} \end{alignat*}\\ \underline{Induktionsannahme:} Die Behauptung gilt für ein beliebig fest gewähltes $n$.\\ \underline{Zu zeigen:} \begin{alignat*}{2} \begin{pmatrix} F_{n+1} \\ F_{n+2} \end{pmatrix} &=& \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix}^{n+1} \cdot \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} \end{alignat*} \underline{Induktionsschritt:} \begin{alignat*}{2} \begin{pmatrix} F_{n+1} \\ F_{n+2} \end{pmatrix} &=& \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix} \cdot \begin{pmatrix} F_{n} \\ F_{n+1} \end{pmatrix} \\ \intertext{Anwenden der Induktionsannahme} &=& \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix} \cdot \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix}^{n} \cdot \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} \\ &=& \begin{pmatrix} 0 & 1 \\ 1 & 1 \end{pmatrix}^{n+1} \cdot \begin{pmatrix} F_{0} \\ F_{1} \end{pmatrix} \end{alignat*} Nach dem Induktionsprinzip folgt aus dem Induktionsanfang und dem Induktionsschritt die Behauptung. \subsection{} %b $X^{64}$ kann geschickter berechnet werden, wenn man die Ergebnisse von vorigen Multiplikationen speichert. Damit lässt sich $X^{64}$ auf diese Weise berechnen:\\ \begin{alignat*}{3} & X &\cdot & X &=& X^{2} \\ & X^{2} &\cdot & X^{2} &=& X^{4} \\ & X^{4} &\cdot & X^{4} &=& X^{8} \\ & X^{8} &\cdot & X^{8} &=& X^{16} \\ & X^{16} &\cdot & X^{16} &=& X^{32} \\ & X^{32} &\cdot & X^{32} &=& X^{64} \end{alignat*} Auf eben gezeigte Weise kann man $X^{64}$ mit nur $6$ Multiplikationen ausrechnen. Interessanterweise gilt $2^{6} = 64$. Müsste man nun eine andere 2-Potenz ausrechnen, dann wäre das Ergebnis ebenso schnell klar. Da im allgemeinen Fall $n$ aber irgendeine Zahl sein kann, ist es sinnvoll sich zum Beispiel $74$ anzusehen. Im Fall von $74$ würde es so weiter gehen: \begin{alignat*}{3} & X^{64} &\cdot & X^{8} &=& X^{72} \\ & X^{72} &\cdot & X^{2} &=& X^{74} \end{alignat*} Demnach würden bei $74$ acht Multiplikationen benötigt. Daraus kann die allgemeine Formel für die Anzahl der Multiplikationen $F(n)$ gebildet werden:\\ \begin{alignat*}{2} F(n) &=& \begin{cases} 0, & \text{wenn } n = 1\\ \lceil F(\frac{n}{2}) \rceil + 1, & \text{wenn } n > 1 \end{cases} \end{alignat*} Diese rekursive Formel könnte auch als Schleife dargestellt werden. Durch die Halbierung von n bei jedem Durchgang hat die Funktion eine logarithmische Laufzeit. Die Addition ist dabei irrelevant, wenn man sich das asymptotische Verhalten ansieht. Damit ist die Behauptung, dass $\mathcal{O}(\log n)$ Multiplikationen ausreichen um $X^{n}$ zu berechnen, gezeigt. \subsection{} %c In 3b haben wir gezeigt, dass sich $X^{n}$ in $\mathcal{O}(\log n)$ Multiplikationen ausgerechnen lässt. Daraus lässt sich schließen, dass sich auch die 2x2 Matrix in $\star$ in logarithmischer Zeit errechnen lässt. Eine weitere Multiplikation macht dann auch keinen Unterschied mehr. Daher lässt sich $\star$ in logarithmischer Zeit lösen. Da jeder Logarithmus langsamer wächst und damit schneller ist als eine Potenzfunktion, ist das Matrizen-Verfahren damit echt schneller als das in der Vorlesung vorgestellte Verfahren. \end{document}