diff --git a/instructions/exercise_4.tex b/instructions/exercise_4.tex index 543fdf452316efe80194d2b1ecc936655d678f43..5929b24619421cc0fb1bd028c0a18a3adfb3e9c5 100644 --- a/instructions/exercise_4.tex +++ b/instructions/exercise_4.tex @@ -229,7 +229,7 @@ in your command line/shell before executing your program. \item Calculate the Hesse matrix once and store its value: $$H_k= \nabla^2f(x_k)$$ \item Calculate the step size: - $$\alpha_k = \frac{\left\langle g_k, d_k\right\rangle}{\left\langle d_k, H_k \cdot d_k\right\rangle}$$ + $$\alpha_k = -\frac{\left\langle g_k, d_k\right\rangle}{\left\langle d_k, H_k \cdot d_k\right\rangle}$$ \item Update the current position: $$x_{k+1} = x_k +\alpha_k \cdot d_k$$ \item Calculate the next gradient: @@ -241,6 +241,7 @@ in your command line/shell before executing your program. \end{enumerate} \end{enumerate} The resulting $x_n$ is the end approximation of the substep and can afterwards be used as the input for subsequent executions of this subroutine. + (Consider appropriate conditions to end a loop preliminarily. These may contain: numbers being too small to divide by them, gradients/directional vectors being too short,\ldots) \begin{enumerate} \item In order to structure your code, implement the method \class{ConjugateGradient::CGstep}, which executes one full iteration of the subroutine as detailed above.\\ To do that you will need a few extra steps