\section*{Problem 9} \subsection*{a)} % Specialize algorithm The special algorithm does not require the values of all $a_{i}$, $b_{i}$, $c_{i}$. We find the values of $\hat{b}_{i}$ from simplifying the general case \begin{align*} \hat{b}_{i} &= b_{i} - \frac{a_{i} \cdot c_{i-1}}{\hat{b}_{i-1}} \\ \hat{b}_{i} &= 2 - \frac{1}{\hat{b}_{i-1}} \end{align*} Calculating the first values to see a pattern \begin{align*} \hat{b}_{1} &= 2 \\ \hat{b}_{2} &= 2 - \frac{1}{2} = \frac{3}{2} \\ \hat{b}_{3} &= 2 - \frac{1}{\frac{3}{2}} = \frac{4}{3} \\ \hat{b}_{4} &= 2 - \frac{1}{\frac{4}{3}} = \frac{5}{4} \\ \vdots & \\ \hat{b}_{i} &= \frac{i+1}{i} && \text{for $i = 1, 2, ..., n$} \end{align*} \begin{algorithm}[H] \caption{Special algorithm}\label{algo:special} \begin{algorithmic} \Procedure{Forward sweep}{$\vec{b}$} \State $n \leftarrow$ length of $\vec{b}$ \State $\vec{\hat{b}}$, $\vec{\hat{g}} \leftarrow$ vectors of length $n$. \State $\hat{b}_{1} \leftarrow 2$ \Comment{Handle first element in main diagonal outside loop} \State $\hat{g}_{1} \leftarrow g_{1}$ \For{$i = 2, 3, ..., n$} \State $\hat{b}_{i} \leftarrow \frac{i+1}{i}$ \State $\hat{g}_{i} \leftarrow g_{i} + \frac{\hat{g}_{i-1}}{\hat{b}_{i-1}}$ \EndFor \Return $\vec{\hat{b}}$, $\vec{\hat{g}}$ \EndProcedure \Procedure{Backward sweep}{$\vec{\hat{b}}$, $\vec{\hat{g}}$} \State $n \leftarrow$ length of $\vec{\hat{b}}$ \State $\vec{v} \leftarrow$ vector of length $n$. \State $v_{n} \leftarrow \frac{\hat{g}_{n}}{\hat{b}_{n}}$ \For{$i = n-1, n-2, ..., 1$} \State $v_{i} \leftarrow \frac{\hat{g}_{i} + v_{i+1}}{\hat{b}_{i}}$ \EndFor \Return $\vec{v}$ \EndProcedure \end{algorithmic} \end{algorithm} \subsection*{b)} % Find FLOPs For every iteration of i in forward sweep we have 2 division, and 2 additions, resulting in $4(n-1)$ FLOPs. For backward sweep we have 1 division, and for every iteration of i we have 1 addition, and 1 division, resulting in $2(n-1)+1$ FLOPs. Total FLOPs for the special algorithm is $6(n-1)+1$. \subsection*{)} % Code