]> git.rustad.me Git - nummat1/commitdiff
Add timing and write more on the report
authorBjørn Rustad <bjorn@rustad.me>
Fri, 30 Sep 2011 14:57:53 +0000 (16:57 +0200)
committerBjørn Rustad <bjorn@rustad.me>
Fri, 30 Sep 2011 14:57:53 +0000 (16:57 +0200)
main.py
rapport.tex
steepest.eps

diff --git a/main.py b/main.py
index 981ee9e8dc9f26b314aeccc08723740a368fab79..df0e8820b205cc78c5541c24d01d5b7112224138 100644 (file)
--- a/main.py
+++ b/main.py
@@ -1,7 +1,8 @@
 from enthought.mayavi import mlab
-import surf
+import time
 import numpy as np
 import matplotlib.pyplot as plt
+import surf
 from steepest import steepest
 from function import function_g
 from newton import newton
@@ -12,15 +13,31 @@ def main():
     b = np.array([-0.3119187,  0.14508516])
     c = np.array([ 0.47736331, 1.48834978])
 
-    x0 = np.array([-2.1, 3.2])
+    x0 = np.array([-2.1, 5.2])
     
     function_values = []
     
-    alpha = 0.1
-    optimal_points, optimal_residuals = steepest(x0, H, b, c, 0.001, 100, 0)
-    constant_points, constant_residuals = steepest(x0, H, b, c, 0.001, 30, alpha)
-    newton_points, newton_residuals = newton(x0, H, b, c, 0.001, 100)
-    nwst_points, nwst_residuals = newtsteep(x0, H, b, c, 0.1, 0.001)
+    alpha = 0.05
+
+    start = time.clock()
+    optimal_points, optimal_residuals = steepest(x0, H, b, c, 0.000000001, 100000, 0)
+    stop = time.clock()
+    print "optimal steepest brukte %.4f" % (stop - start)
+
+    start = time.clock()
+    constant_points, constant_residuals = steepest(x0, H, b, c, 0.000000001, 100000, alpha)
+    stop = time.clock()
+    print "constant steepest brukte %.4f" % (stop - start)
+
+    start = time.clock()
+    newton_points, newton_residuals = newton(x0, H, b, c, 0.000000001, 100000)
+    stop = time.clock()
+    print "newton brukte %.4f" % (stop - start)
+
+    start = time.clock()
+    nwst_points, nwst_residuals = newtsteep(x0, H, b, c, 0.01, 0.000000001)
+    stop = time.clock()
+    print "newton + steepest brukte %.4f" % (stop - start)
 
     f_optimal = []
     f_constant = []
@@ -29,21 +46,22 @@ def main():
 
     mlab.figure(figure="Surface", bgcolor=(1,1,1), fgcolor=(0,0,0))
 
-    for point in optimal_points:
+    plen = 15
+    for point in optimal_points[:plen]:
         z = function_g(point, H, b, c)
         f_optimal.append(z)
         p = mlab.points3d([point[0]], [point[1]], [z], scale_factor=0.03, color=(0.7,0.2,0.2))
 
-    for point in constant_points:
+    for point in constant_points[:plen]:
         z = function_g(point, H, b, c)
         f_constant.append(z)
         p = mlab.points3d([point[0]], [point[1]], [z], scale_factor=0.02, color=(1,1,1))
 
-    for point in newton_points:
+    for point in newton_points[:plen]:
         z = function_g(point, H, b, c)
         f_newton.append(z)
 
-    for point in nwst_points:
+    for point in nwst_points[:plen]:
         z = function_g(point, H, b, c)
         f_nwst.append(z)
 
@@ -62,21 +80,21 @@ def main():
     plt.title("Relative residual")
     plt.xlabel("Iteration")
     plt.ylabel("Relative residual")
-    plt.plot(optimal_residuals)
-    plt.plot(constant_residuals)
-    plt.plot(newton_residuals)
-    plt.plot(nwst_residuals)
-    plt.legend([r'Optimal $\alpha$', r'$\alpha$ = %.1f' % alpha, r'Newtons method', r'Steepest first, then Newton'])
+    plt.plot(optimal_residuals[:plen])
+    plt.plot(constant_residuals[:plen])
+    plt.plot(newton_residuals[:plen])
+    plt.plot(nwst_residuals[:plen])
+    plt.legend([r'Optimal $\alpha$', r'$\alpha$ = %.2f' % alpha, r'Newtons method', r'Steepest first, then Newton'])
     ax.set_yscale('log')
     
     ax = plt.subplot(212)
     plt.title("Function value")
     plt.xlabel("Iteration")
     plt.ylabel("g(x)")
-    plt.plot(f_optimal)
-    plt.plot(f_constant)
-    plt.plot(f_newton)
-    plt.plot(f_nwst)
+    plt.plot(f_optimal[:plen])
+    plt.plot(f_constant[:plen])
+    plt.plot(f_newton[:plen])
+    plt.plot(f_nwst[:plen])
     
     plt.show()
     fig.savefig("steepest.eps", format="eps")
index c7e1fd47fc2308e92753e13f498de14e6e788bd0..f7816dd5ad43c1c81530675c73952d7324f4a2f7 100644 (file)
@@ -55,96 +55,113 @@ ABSTRACTABSTBSSTRACTABSTRACTABSTRACT
 %                                %\r
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
 \section{Resultater}\r
-We used the following data:\r
-\r
+This project explores how one can approximate the local minima of a function.\r
+The function considered takes in a symmetric positive definite matrix, and two\r
+vectors. For this purpose we used the following randomly generated data:\r
 \begin{equation}\r
-H = \r
-\begin{bmatrix}\r
-1.8580682 & -1.01197101 \\\r
--1.01197101 & 0.63456543 \r
-\end{bmatrix}\r
-,  \mathbf{b} =\r
-\begin{bmatrix}\r
--0.3119187 \\\r
-0.14508516\r
-\end{bmatrix}\r
-,  \mathbf{c} =\r
-\begin{bmatrix}\r
-0.47736331 \\\r
-1.48834978\r
-\end{bmatrix}.\r
-\nonumber\r
+  H = \r
+  \begin{bmatrix}\r
+    1.8580682 & -1.01197101 \\\r
+    -1.01197101 & 0.63456543 \r
+  \end{bmatrix}\r
+  ,  \mathbf{b} =\r
+  \begin{bmatrix}\r
+    -0.3119187 \\\r
+    0.14508516\r
+  \end{bmatrix}\r
+  ,  \mathbf{c} =\r
+  \begin{bmatrix}\r
+    0.47736331 \\\r
+    1.48834978\r
+  \end{bmatrix}.\r
+  \nonumber\r
 \end{equation}\r
+The elements of $\mathbf{b}$ are randomly generated numbers from a uniform\r
+distribution over $[-1, 1]$, and the elements of $\mathbf{c}$ are randomly\r
+generated positive numbers from a uniform distribution over $(0, 3]$\r
 \r
-Where the elements of $\mathbf{b}$ are randomly generated numbers from the interval INTERVAL, and the elements of $\mathbf{c}$ are randomly generated positive numbers.\r
-\r
-To generate the nxn matrix, $H$, we first generate a upper triangular nxn matrix $U$.\r
-The elements along the diagonal of $U$ are the square roots of randomly generated positive numbers, and the elements above the diagonal are randomly generated numbers from the interval INTERVAL.\r
-$H = U^{T}U$ is then a symmetric positive definite matrix.\r
+To generate the $n\times n$ matrix $H$, we first generate a upper triangular\r
+$n\times n$ matrix $U$. The elements above the diagonal are randomly generated\r
+in the uniform distribution over $[-3, 3]$, while the numbers on the diagonal\r
+are square roots of positive numbers from the same distribution. $H = U^{T}U$ is\r
+then a symmetric positive definite matrix.\r
 \r
 The function analyzed in this project was\r
-\r
 \begin{equation}\r
-\label{eq:func_g}\r
-g(\mathbf{x}) := -\mathbf{b}^{T}\mathbf{x}+\frac{1}{2}\mathbf{x}^{T}H\mathbf{x}+\frac{1}{12}\mathbf{x}^{T}C(\mathbf{x})\mathbf{x}\r
+  \label{eq:func_g}\r
+  g(\mathbf{x}) := -\mathbf{b}^{T}\mathbf{x} +\r
+  \frac{1}{2}\mathbf{x}^{T}H\mathbf{x} +\r
+  \frac{1}{12}\mathbf{x}^{T}C(\mathbf{x})\mathbf{x}.\r
 \end{equation}\r
 From equation \ref{eq:func_g} we get\r
 \begin{eqnarray}\r
-\label{eq:grad_g}\r
-\nabla g(\mathbf{x}) &=& -\mathbf{b}+H\mathbf{x}+\frac{1}{3}C(\mathbf{x})\mathbf{x} \\\r
-\label{eq:hess_g}\r
-\nabla^{2}g(\mathbf{x}) &=& H+C(\mathbf{x}).\r
+  \label{eq:grad_g}\r
+  \nabla g(\mathbf{x}) &=& -\mathbf{b}+H\mathbf{x}+\frac{1}{3}C(\mathbf{x})\mathbf{x} \\\r
+  \label{eq:hess_g}\r
+  \nabla^{2}g(\mathbf{x}) &=& H+C(\mathbf{x}).\r
 \end{eqnarray}\r
-The three functions, \ref{eq:func_g}, \ref{eq:grad_g} and \ref{eq:hess_g}, are implemented in the Python code below.\r
+The three functions, \ref{eq:func_g}, \ref{eq:grad_g} and \ref{eq:hess_g}, are\r
+implemented in the Python code below.\r
 \r
 \lstinputlisting[language=Python]{bj_function.py}\r
 \r
-Consider the Hessian $\nabla^{2}g(\mathbf{x})$, and any vector $\mathbf{v} \in \mathbb{R}^{n}_{*}$.\r
-Then we have\r
+Consider the Hessian $\nabla^{2}g(\mathbf{x})$, and any vector $\mathbf{v} \in\r
+\mathbb{R}^{n}_{*}$.  Then we have\r
 \r
 \begin{eqnarray}\r
-\mathbf{v}^{T}(\nabla^{2}g(\mathbf{x}))\mathbf{v} &=& \mathbf{v}^{T}(H+C(\mathbf{x}))\mathbf{v} \nonumber \\\r
-&=& \mathbf{v}^{T}H(\mathbf{x}))\mathbf{v}+\mathbf{v}^{T}C(\mathbf{x})\mathbf{v}.\r
+  \mathbf{v}^{T}(\nabla^{2}g(\mathbf{x}))\mathbf{v} &=& \mathbf{v}^{T}(H+C(\mathbf{x}))\mathbf{v} \nonumber \\\r
+  &=& \mathbf{v}^{T}H(\mathbf{x}))\mathbf{v}+\mathbf{v}^{T}C(\mathbf{x})\mathbf{v}.\r
 \end{eqnarray}\r
 We already know H is positive definite, so $\mathbf{v}^{T}H(\mathbf{x}))\mathbf{v} > 0$. \r
 Since $C(\mathbf{x})$ only has positive entries, we easily see that\r
-\r
 \begin{equation}\r
-\mathbf{v}^{T}C(\mathbf{x})\mathbf{v} = \sum\limits_{i=1}^n c_{i}(v_{i}x_{i})^2 \geq 0\r
+  \mathbf{v}^{T}C(\mathbf{x})\mathbf{v} = \sum\limits_{i=1}^n c_{i}(v_{i}x_{i})^2 \geq 0\r
 \end{equation}\r
-Hence $\mathbf{v}^{T}(H+C(\mathbf{x}))\mathbf{v} > 0$, and we see by definition that the Hessian, $\nabla^{2}g(\mathbf{x})$, is positive definite.\r
+Hence $\mathbf{v}^{T}(H+C(\mathbf{x}))\mathbf{v} > 0$, and we see by definition\r
+that the Hessian, $\nabla^{2}g(\mathbf{x})$, is positive definite.\r
 \r
 \begin{figure}[htb]\r
-\centering\r
-\includegraphics[width=0.8\textwidth]{steepest}\r
-\caption{Plot of relative residual and function values for iterations of the steepest descent method with optimal $\alpha$}\r
-\label{fig:fn_resid}\r
+  \centering\r
+  \includegraphics[width=0.9\textwidth]{steepest}\r
+  \caption{Plot of relative residual and function values for iterations of the steepest descent method with optimal $\alpha$}\r
+  \label{fig:fn_resid}\r
 \end{figure}\r
 \r
 \begin{figure}[htb]\r
-\centering\r
-\includegraphics[width=0.9\textwidth]{surface}\r
-\caption{Surface plot of function with points showing iteration of steepest descent method, both with optimal and constant $\alpha$}\r
-\label{fig:surface}\r
+  \centering\r
+  \includegraphics[width=0.9\textwidth]{surface}\r
+  \caption{Surface plot of function with points showing iteration of steepest descent method, both with optimal and constant $\alpha$}\r
+  \label{fig:surface}\r
 \end{figure}\r
 \r
+Consider the equation\r
+\begin{equation}\r
+  \label{eq:forward}\r
+  \mathbf{r}'(t) = -\nabla g\left(\mathbf{r}(t)\right)\text{,  } \mathbf{r}(0) = \mathbf{r}^0.\r
+\end{equation}\r
+One can view the function $\mathbf{r}(t)$ as a parameterisation of the curve\r
+going through the starting point to the minima, always going in the direction of\r
+the steepest descent. By applying the forward Euler method to this differential\r
+vector equation, we get the following iteration:\r
+\begin{equation}\r
+  \label{eq:forward_iter}\r
+  \mathbf{r}^{(k+1)} = \mathbf{r}^{(k)} - \alpha \nabla g\left(\mathbf{r}^{(k)}\right)\r
+\end{equation}\r
+where $t_{n+1} = t_n + \alpha$. Looking at this result, we see that it is equivalent to the steepest descent iteration with constant step size $\alpha$. \r
+\r
 To find the optimal step length, $\alpha^*$, we solve the equation\r
 \begin{eqnarray}\r
-\frac{\partial}{\partial \mathbf{\alpha}}g\left(\mathbf{x}+\alpha\mathbf{u}\right) &=& 0, \text{where  } \mathbf{u} = -\nabla g(\mathbf{x} )  \nonumber \\\r
-&\Updownarrow& \nonumber\\\r
-%HER ER DET FEIL! \r
-A\alpha^3 + B\alpha^2 + C\alpha + D &=& 0,\r
+  \frac{\partial}{\partial \mathbf{\alpha}}g\left(\mathbf{x}+\alpha\mathbf{u}\right) &=& 0, \text{where  } \mathbf{u} = -\nabla g(\mathbf{x} )  \nonumber \\\r
+  &\Updownarrow& \nonumber\\\r
+  A\alpha^3 + B\alpha^2 + C\alpha + D &=& 0,\r
+  \end{eqnarray}\r
+where $A$, $B$, $C$, and $D$ is given by\r
+  \begin{eqnarray}\r
+  A &=& \frac{1}{3}\mathbf{u}^TC(\mathbf{u})\mathbf{u} \nonumber \\\r
+  B &=& \mathbf{x}^TC(\mathbf{u}) \mathbf{u} \nonumber \\\r
+  C &=& \mathbf{u}^TH\mathbf{u}+\mathbf{u}^TC(\mathbf{x})\mathbf{u} \nonumber \\\r
+  D &=& \frac{1}{3}\mathbf{u}^TC(\mathbf{x})\mathbf{x}+\mathbf{u}^TH\mathbf{x}-\mathbf{b}^T\mathbf{u}\r
 \end{eqnarray}\r
-der $A$, $B$, $C$ og $D$ er gitt ved\r
-\begin{eqnarray}\r
-A &=& \frac{1}{3}\mathbf{u}^TC(\mathbf{u}\mathbf{u} \nonumber \\\r
-B &=& (\mathbf{x})^TC(\mathbf{u}) \mathbf{u} \nonumber \\\r
-C &=& (\mathbf{u})^TH\mathbf{u}+(\mathbf{u})^TC(\mathbf{x})\mathbf{u}) \nonumber \\\r
-D &=& \frac{1}{3}(\mathbf{u})^TC(\mathbf{x})\mathbf{x}+(\mathbf{u})^TH\mathbf{x}-\mathbf{b}^T\mathbf{u}\r
-\end{eqnarray}\r
-\r
-% VI MÅ OGSÅ ha utledning av alt det andre, forklaring \r
-% av figurer, og en slags tabell med sammenlikning av metodene\r
 \r
 \lstinputlisting[language=Python]{bj_optimal.py}\r
 \r
index bae093b7eaff525fca132649fabda0dc6e3eaa43..b44133282aedc8edb0da418855176cdde3864014 100644 (file)
@@ -1,9 +1,9 @@
 %!PS-Adobe-3.0 EPSF-3.0
 %%Title: steepest.eps
 %%Creator: matplotlib version 0.99.3, http://matplotlib.sourceforge.net/
-%%CreationDate: Fri Sep 30 11:50:53 2011
+%%CreationDate: Fri Sep 30 16:50:42 2011
 %%Orientation: portrait
-%%BoundingBox: -307 103 919 688
+%%BoundingBox: 13 175 598 616
 %%EndComments
 %%BeginProlog
 /mpldict 8 dict def
@@ -54,7 +54,7 @@ newpath
 /UnderlinePosition -130 def
 /UnderlineThickness 90 def
 end readonly def
-/CharStrings 41 dict dup begin
+/CharStrings 44 dict dup begin
 /space{318 0 0 0 0 0 _sc
 }_d
 /parenleft{390 0 86 -131 310 759 _sc
@@ -239,6 +239,82 @@ _cl}_d
 162 384 135 375 108 363 _c
 108 729 _l
 _cl}_e}_d
+/six{{636 0 70 -13 573 742 _sc
+330 404 _m
+286 404 251 388 225 358 _c
+199 328 186 286 186 234 _c
+186 181 199 139 225 109 _c
+251 79 286 64 330 64 _c
+374 64 409 79 435 109 _c
+461 139 474 181 474 234 _c
+474 286 461 328 435 358 _c
+409 388 374 404 330 404 _c
+526 713 _m
+526 623 _l
+501 635 476 644 451 650 _c
+425 656 400 659 376 659 _c
+310 659 260 637 226 593 _c
+192 549 172 482 168 394 _c
+187 422 211 444 240 459 _c
+269 474 301 482 336 482 _c
+409 482 467 459 509 415 _c
+551 371 573 310 573 234 _c
+573 159 550 99 506 54 _c
+462 9 403 -13 330 -13 _c
+246 -13 181 19 137 83 _c
+92 147 70 241 70 364 _c
+70 479 97 571 152 639 _c
+206 707 280 742 372 742 _c
+}_e{396 742 421 739 447 735 _c
+472 730 498 723 526 713 _c
+_cl}_e}_d
+/seven{636 0 82 0 551 729 _sc
+82 729 _m
+551 729 _l
+551 687 _l
+286 0 _l
+183 0 _l
+432 646 _l
+82 646 _l
+82 729 _l
+_cl}_d
+/eight{{636 0 68 -13 568 742 _sc
+318 346 _m
+271 346 234 333 207 308 _c
+180 283 167 249 167 205 _c
+167 161 180 126 207 101 _c
+234 76 271 64 318 64 _c
+364 64 401 76 428 102 _c
+455 127 469 161 469 205 _c
+469 249 455 283 429 308 _c
+402 333 365 346 318 346 _c
+219 388 _m
+177 398 144 418 120 447 _c
+96 476 85 511 85 553 _c
+85 611 105 657 147 691 _c
+188 725 245 742 318 742 _c
+390 742 447 725 489 691 _c
+530 657 551 611 551 553 _c
+551 511 539 476 515 447 _c
+491 418 459 398 417 388 _c
+464 377 501 355 528 323 _c
+554 291 568 251 568 205 _c
+568 134 546 80 503 43 _c
+459 5 398 -13 318 -13 _c
+237 -13 175 5 132 43 _c
+89 80 68 134 68 205 _c
+68 251 81 291 108 323 _c
+134 355 171 377 219 388 _c
+}_e{183 544 _m
+183 506 194 476 218 455 _c
+242 434 275 424 318 424 _c
+360 424 393 434 417 455 _c
+441 476 453 506 453 544 _c
+453 582 441 611 417 632 _c
+393 653 360 664 318 664 _c
+275 664 242 653 218 632 _c
+194 611 183 582 183 544 _c
+_cl}_e}_d
 /equal{838 0 106 172 732 454 _sc
 106 454 _m
 732 454 _l
@@ -834,8 +910,8 @@ FontName currentdict end definefont pop
 end
 %%EndProlog
 mpldict begin
--307.8 103.95 translate
-1227.6 584.1 0 0 clipbox
+13.5 175.5 translate
+585 441 0 0 clipbox
 1.000 setlinewidth
 1 setlinejoin
 2 setlinecap
@@ -843,9 +919,9 @@ mpldict begin
 1.000 setgray
 gsave
 0 0 m
-1227.6 0 l
-1227.6 584.1 l
-0 584.1 l
+585 0 l
+585 441 l
+0 441 l
 0 0 l
 gsave
 fill
@@ -853,82 +929,80 @@ grestore
 stroke
 grestore
 gsave
-153.45 330.99 m
-1104.84 330.99 l
-1104.84 525.69 l
-153.45 525.69 l
-153.45 330.99 l
+73.125 249.9 m
+526.5 249.9 l
+526.5 396.9 l
+73.125 396.9 l
+73.125 249.9 l
 fill
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-951.4 194.7 153.5 331 clipbox
-153.45 525.69 m
-185.163 421.137 l
-216.876 418.999 l
-248.589 407.09 l
-280.302 406.852 l
-312.015 396.796 l
-343.728 397.479 l
-375.441 388.417 l
-407.154 389.631 l
-438.867 381.173 l
-470.58 382.725 l
-502.293 374.662 l
+453.4 147 73.12 249.9 clipbox
+73.125 396.9 m
+105.509 359.277 l
+137.893 352.765 l
+170.277 346.914 l
+202.661 342.517 l
+235.045 339.975 l
+267.429 336.152 l
+299.812 335.025 l
+332.196 331.456 l
+364.58 331.085 l
+396.964 327.655 l
+429.348 327.74 l
+461.732 324.394 l
+494.116 324.773 l
+526.5 321.484 l
 stroke
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-951.4 194.7 153.5 331 clipbox
-153.45 525.69 m
-185.163 492.048 l
-216.876 483.467 l
-248.589 476.109 l
-280.302 469.343 l
-312.015 462.898 l
-343.728 456.643 l
-375.441 450.509 l
-407.154 444.465 l
-438.867 438.502 l
-470.58 432.632 l
-502.293 426.888 l
-534.006 421.331 l
-565.719 416.056 l
-597.432 411.192 l
-629.145 406.891 l
-660.858 403.285 l
-692.571 400.438 l
-724.284 398.314 l
-755.997 396.792 l
-787.71 395.721 l
-819.423 394.959 l
-851.136 394.399 l
-882.849 393.965 l
-914.562 393.609 l
-946.275 393.301 l
-977.988 393.022 l
-1009.7 392.762 l
-1041.41 392.515 l
-1073.13 392.276 l
+453.4 147 73.12 249.9 clipbox
+73.125 396.9 m
+105.509 373.953 l
+137.893 371.882 l
+170.277 370.06 l
+202.661 368.401 l
+235.045 366.856 l
+267.429 365.392 l
+299.812 363.988 l
+332.196 362.628 l
+364.58 361.304 l
+396.964 360.005 l
+429.348 358.728 l
+461.732 357.466 l
+494.116 356.219 l
+526.5 354.982 l
 stroke
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-951.4 194.7 153.5 331 clipbox
-153.45 525.69 m
-185.163 498.699 l
-216.876 466.484 l
-248.589 441.148 l
-280.302 417.471 l
-312.015 396.797 l
+453.4 147 73.12 249.9 clipbox
+73.125 396.9 m
+105.509 385.62 l
+137.893 373.761 l
+170.277 362.731 l
+202.661 351.898 l
+235.045 341.522 l
+267.429 332.187 l
+299.812 324.037 l
+332.196 316.36 l
+364.58 296.503 l
+396.964 258.899 l
 stroke
 grestore
 0.000 0.750 0.750 setrgbcolor
 gsave
-951.4 194.7 153.5 331 clipbox
-153.45 525.69 m
-185.163 421.137 l
-216.876 389.087 l
+453.4 147 73.12 249.9 clipbox
+73.125 396.9 m
+105.509 359.277 l
+137.893 352.765 l
+170.277 340.712 l
+202.661 328.85 l
+235.045 314.75 l
+267.429 293.014 l
+299.812 252.018 l
 stroke
 grestore
 0.500 setlinewidth
@@ -944,7 +1018,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 330.99 o
+73.125 249.9 o
 grestore
 gsave
 /o {
@@ -956,13 +1030,13 @@ translate
 stroke
 grestore
 } bind def
-153.45 525.69 o
+73.125 396.9 o
 grestore
 /DejaVuSans findfont
 12.000 scalefont
 setfont
 gsave
-150.426563 317.911875 translate
+70.101562 236.821875 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -976,7 +1050,7 @@ translate
 stroke
 grestore
 } bind def
-312.015 330.99 o
+137.893 249.9 o
 grestore
 gsave
 /o {
@@ -988,12 +1062,12 @@ translate
 stroke
 grestore
 } bind def
-312.015 525.69 o
+137.893 396.9 o
 grestore
 gsave
-309.179063 318.068125 translate
+135.111607 236.993750 translate
 0.000000 rotate
-0.000000 0.171875 m /five glyphshow
+0.000000 0.000000 m /two glyphshow
 grestore
 gsave
 /o {
@@ -1005,7 +1079,7 @@ translate
 stroke
 grestore
 } bind def
-470.58 330.99 o
+202.661 249.9 o
 grestore
 gsave
 /o {
@@ -1017,13 +1091,12 @@ translate
 stroke
 grestore
 } bind def
-470.58 525.69 o
+202.661 396.9 o
 grestore
 gsave
-463.994063 317.911875 translate
+199.473214 237.150000 translate
 0.000000 rotate
-0.000000 0.171875 m /one glyphshow
-7.634766 0.171875 m /zero glyphshow
+0.000000 0.000000 m /four glyphshow
 grestore
 gsave
 /o {
@@ -1035,7 +1108,7 @@ translate
 stroke
 grestore
 } bind def
-629.145 330.99 o
+267.429 249.9 o
 grestore
 gsave
 /o {
@@ -1047,13 +1120,12 @@ translate
 stroke
 grestore
 } bind def
-629.145 525.69 o
+267.429 396.9 o
 grestore
 gsave
-622.684063 318.068125 translate
+264.412946 236.821875 translate
 0.000000 rotate
-0.000000 0.171875 m /one glyphshow
-7.634766 0.171875 m /five glyphshow
+0.000000 0.171875 m /six glyphshow
 grestore
 gsave
 /o {
@@ -1065,7 +1137,7 @@ translate
 stroke
 grestore
 } bind def
-787.71 330.99 o
+332.196 249.9 o
 grestore
 gsave
 /o {
@@ -1077,12 +1149,41 @@ translate
 stroke
 grestore
 } bind def
-787.71 525.69 o
+332.196 396.9 o
 grestore
 gsave
-780.905313 317.911875 translate
+329.196429 236.821875 translate
 0.000000 rotate
-0.000000 0.171875 m /two glyphshow
+0.000000 0.171875 m /eight glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+396.964 249.9 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+396.964 396.9 o
+grestore
+gsave
+390.378348 236.821875 translate
+0.000000 rotate
+0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
 grestore
 gsave
@@ -1095,7 +1196,7 @@ translate
 stroke
 grestore
 } bind def
-946.275 330.99 o
+461.732 249.9 o
 grestore
 gsave
 /o {
@@ -1107,13 +1208,13 @@ translate
 stroke
 grestore
 } bind def
-946.275 525.69 o
+461.732 396.9 o
 grestore
 gsave
-939.595313 317.911875 translate
+455.349330 236.993750 translate
 0.000000 rotate
-0.000000 0.171875 m /two glyphshow
-7.634766 0.171875 m /five glyphshow
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /two glyphshow
 grestore
 gsave
 /o {
@@ -1125,7 +1226,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 330.99 o
+526.5 249.9 o
 grestore
 gsave
 /o {
@@ -1137,15 +1238,15 @@ translate
 stroke
 grestore
 } bind def
-1104.84 525.69 o
+526.5 396.9 o
 grestore
 gsave
-1098.058750 317.911875 translate
+519.851562 237.150000 translate
 0.000000 rotate
-0.000000 0.171875 m /three glyphshow
-7.634766 0.171875 m /zero glyphshow
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /four glyphshow
 grestore
-604.778 303.615 m
+275.445 222.525 m
 0 0.172 rmoveto
 (Iteration) show
 gsave
@@ -1158,7 +1259,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 330.99 o
+73.125 249.9 o
 grestore
 gsave
 /o {
@@ -1170,10 +1271,10 @@ translate
 stroke
 grestore
 } bind def
-1104.84 330.99 o
+526.5 249.9 o
 grestore
 gsave
-124.450000 323.490000 translate
+44.125000 242.400000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -1191,7 +1292,7 @@ setfont
 /hyphen glyphshow
 
 18.300586 8.875000 moveto
-/four glyphshow
+/seven glyphshow
 
 
 grestore
@@ -1205,7 +1306,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 379.665 o
+73.125 270.9 o
 grestore
 gsave
 /o {
@@ -1217,10 +1318,10 @@ translate
 stroke
 grestore
 } bind def
-1104.84 379.665 o
+526.5 270.9 o
 grestore
 gsave
-124.450000 372.165000 translate
+44.125000 263.400000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -1238,7 +1339,7 @@ setfont
 /hyphen glyphshow
 
 18.300586 8.765625 moveto
-/three glyphshow
+/six glyphshow
 
 
 grestore
@@ -1252,7 +1353,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 428.34 o
+73.125 291.9 o
 grestore
 gsave
 /o {
@@ -1264,28 +1365,28 @@ translate
 stroke
 grestore
 } bind def
-1104.84 428.34 o
+526.5 291.9 o
 grestore
 gsave
-124.450000 420.840000 translate
+44.125000 284.400000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
 setfont
-0.000000 1.828125 moveto
+0.000000 1.937500 moveto
 /one glyphshow
 
-7.634766 1.828125 moveto
+7.634766 1.937500 moveto
 /zero glyphshow
 
 /DejaVuSans findfont
 8.4 scalefont
 setfont
-15.269531 8.765625 moveto
+15.269531 8.875000 moveto
 /hyphen glyphshow
 
-18.300586 8.765625 moveto
-/two glyphshow
+18.300586 8.875000 moveto
+/five glyphshow
 
 
 grestore
@@ -1299,7 +1400,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 477.015 o
+73.125 312.9 o
 grestore
 gsave
 /o {
@@ -1311,10 +1412,10 @@ translate
 stroke
 grestore
 } bind def
-1104.84 477.015 o
+526.5 312.9 o
 grestore
 gsave
-124.450000 469.515000 translate
+44.125000 305.400000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -1332,7 +1433,7 @@ setfont
 /hyphen glyphshow
 
 18.300586 8.875000 moveto
-/one glyphshow
+/four glyphshow
 
 
 grestore
@@ -1346,7 +1447,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 525.69 o
+73.125 333.9 o
 grestore
 gsave
 /o {
@@ -1358,10 +1459,10 @@ translate
 stroke
 grestore
 } bind def
-1104.84 525.69 o
+526.5 333.9 o
 grestore
 gsave
-127.450000 518.190000 translate
+44.125000 326.400000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -1376,7 +1477,10 @@ setfont
 8.4 scalefont
 setfont
 15.269531 8.765625 moveto
-/zero glyphshow
+/hyphen glyphshow
+
+18.300586 8.765625 moveto
+/three glyphshow
 
 
 grestore
@@ -1386,11 +1490,11 @@ gsave
 newpath
 translate
 0 0 m
-2 0 l
+4 0 l
 stroke
 grestore
 } bind def
-153.45 345.643 o
+73.125 354.9 o
 grestore
 gsave
 /o {
@@ -1398,23 +1502,34 @@ gsave
 newpath
 translate
 0 0 m
--2 0 l
+-4 0 l
 stroke
 grestore
 } bind def
-1104.84 345.643 o
+526.5 354.9 o
 grestore
 gsave
-/o {
-gsave
-newpath
-translate
-0 0 m
-2 0 l
-stroke
-grestore
-} bind def
-153.45 354.214 o
+44.125000 347.400000 translate
+0.000000 rotate
+/DejaVuSans findfont
+12.0 scalefont
+setfont
+0.000000 1.828125 moveto
+/one glyphshow
+
+7.634766 1.828125 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+8.4 scalefont
+setfont
+15.269531 8.765625 moveto
+/hyphen glyphshow
+
+18.300586 8.765625 moveto
+/two glyphshow
+
+
 grestore
 gsave
 /o {
@@ -1422,11 +1537,11 @@ gsave
 newpath
 translate
 0 0 m
--2 0 l
+4 0 l
 stroke
 grestore
 } bind def
-1104.84 354.214 o
+73.125 375.9 o
 grestore
 gsave
 /o {
@@ -1434,23 +1549,34 @@ gsave
 newpath
 translate
 0 0 m
-2 0 l
+-4 0 l
 stroke
 grestore
 } bind def
-153.45 360.295 o
+526.5 375.9 o
 grestore
 gsave
-/o {
-gsave
-newpath
-translate
-0 0 m
--2 0 l
-stroke
-grestore
-} bind def
-1104.84 360.295 o
+44.125000 368.400000 translate
+0.000000 rotate
+/DejaVuSans findfont
+12.0 scalefont
+setfont
+0.000000 1.937500 moveto
+/one glyphshow
+
+7.634766 1.937500 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+8.4 scalefont
+setfont
+15.269531 8.875000 moveto
+/hyphen glyphshow
+
+18.300586 8.875000 moveto
+/one glyphshow
+
+
 grestore
 gsave
 /o {
@@ -1458,11 +1584,11 @@ gsave
 newpath
 translate
 0 0 m
-2 0 l
+4 0 l
 stroke
 grestore
 } bind def
-153.45 365.012 o
+73.125 396.9 o
 grestore
 gsave
 /o {
@@ -1470,11 +1596,31 @@ gsave
 newpath
 translate
 0 0 m
--2 0 l
+-4 0 l
 stroke
 grestore
 } bind def
-1104.84 365.012 o
+526.5 396.9 o
+grestore
+gsave
+47.125000 389.400000 translate
+0.000000 rotate
+/DejaVuSans findfont
+12.0 scalefont
+setfont
+0.000000 1.828125 moveto
+/one glyphshow
+
+7.634766 1.828125 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+8.4 scalefont
+setfont
+15.269531 8.765625 moveto
+/zero glyphshow
+
+
 grestore
 gsave
 /o {
@@ -1486,7 +1632,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 368.867 o
+73.125 256.222 o
 grestore
 gsave
 /o {
@@ -1498,7 +1644,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 368.867 o
+526.5 256.222 o
 grestore
 gsave
 /o {
@@ -1510,7 +1656,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 372.125 o
+73.125 262.543 o
 grestore
 gsave
 /o {
@@ -1522,7 +1668,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 372.125 o
+526.5 262.543 o
 grestore
 gsave
 /o {
@@ -1534,7 +1680,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 374.948 o
+73.125 266.241 o
 grestore
 gsave
 /o {
@@ -1546,7 +1692,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 374.948 o
+526.5 266.241 o
 grestore
 gsave
 /o {
@@ -1558,7 +1704,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 377.438 o
+73.125 268.865 o
 grestore
 gsave
 /o {
@@ -1570,7 +1716,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 377.438 o
+526.5 268.865 o
 grestore
 gsave
 /o {
@@ -1582,7 +1728,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 394.318 o
+73.125 277.222 o
 grestore
 gsave
 /o {
@@ -1594,7 +1740,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 394.318 o
+526.5 277.222 o
 grestore
 gsave
 /o {
@@ -1606,7 +1752,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 402.889 o
+73.125 283.543 o
 grestore
 gsave
 /o {
@@ -1618,7 +1764,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 402.889 o
+526.5 283.543 o
 grestore
 gsave
 /o {
@@ -1630,7 +1776,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 408.97 o
+73.125 287.241 o
 grestore
 gsave
 /o {
@@ -1642,7 +1788,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 408.97 o
+526.5 287.241 o
 grestore
 gsave
 /o {
@@ -1654,7 +1800,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 413.687 o
+73.125 289.865 o
 grestore
 gsave
 /o {
@@ -1666,7 +1812,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 413.687 o
+526.5 289.865 o
 grestore
 gsave
 /o {
@@ -1678,7 +1824,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 417.542 o
+73.125 298.222 o
 grestore
 gsave
 /o {
@@ -1690,7 +1836,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 417.542 o
+526.5 298.222 o
 grestore
 gsave
 /o {
@@ -1702,7 +1848,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 420.8 o
+73.125 304.543 o
 grestore
 gsave
 /o {
@@ -1714,7 +1860,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 420.8 o
+526.5 304.543 o
 grestore
 gsave
 /o {
@@ -1726,7 +1872,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 423.623 o
+73.125 308.241 o
 grestore
 gsave
 /o {
@@ -1738,7 +1884,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 423.623 o
+526.5 308.241 o
 grestore
 gsave
 /o {
@@ -1750,7 +1896,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 426.113 o
+73.125 310.865 o
 grestore
 gsave
 /o {
@@ -1762,7 +1908,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 426.113 o
+526.5 310.865 o
 grestore
 gsave
 /o {
@@ -1774,7 +1920,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 442.993 o
+73.125 319.222 o
 grestore
 gsave
 /o {
@@ -1786,7 +1932,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 442.993 o
+526.5 319.222 o
 grestore
 gsave
 /o {
@@ -1798,7 +1944,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 451.564 o
+73.125 325.543 o
 grestore
 gsave
 /o {
@@ -1810,7 +1956,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 451.564 o
+526.5 325.543 o
 grestore
 gsave
 /o {
@@ -1822,7 +1968,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 457.645 o
+73.125 329.241 o
 grestore
 gsave
 /o {
@@ -1834,7 +1980,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 457.645 o
+526.5 329.241 o
 grestore
 gsave
 /o {
@@ -1846,7 +1992,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 462.362 o
+73.125 331.865 o
 grestore
 gsave
 /o {
@@ -1858,7 +2004,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 462.362 o
+526.5 331.865 o
 grestore
 gsave
 /o {
@@ -1870,7 +2016,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 466.217 o
+73.125 340.222 o
 grestore
 gsave
 /o {
@@ -1882,7 +2028,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 466.217 o
+526.5 340.222 o
 grestore
 gsave
 /o {
@@ -1894,7 +2040,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 469.475 o
+73.125 346.543 o
 grestore
 gsave
 /o {
@@ -1906,7 +2052,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 469.475 o
+526.5 346.543 o
 grestore
 gsave
 /o {
@@ -1918,7 +2064,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 472.298 o
+73.125 350.241 o
 grestore
 gsave
 /o {
@@ -1930,7 +2076,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 472.298 o
+526.5 350.241 o
 grestore
 gsave
 /o {
@@ -1942,7 +2088,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 474.788 o
+73.125 352.865 o
 grestore
 gsave
 /o {
@@ -1954,7 +2100,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 474.788 o
+526.5 352.865 o
 grestore
 gsave
 /o {
@@ -1966,7 +2112,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 491.668 o
+73.125 361.222 o
 grestore
 gsave
 /o {
@@ -1978,7 +2124,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 491.668 o
+526.5 361.222 o
 grestore
 gsave
 /o {
@@ -1990,7 +2136,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 500.239 o
+73.125 367.543 o
 grestore
 gsave
 /o {
@@ -2002,7 +2148,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 500.239 o
+526.5 367.543 o
 grestore
 gsave
 /o {
@@ -2014,7 +2160,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 506.32 o
+73.125 371.241 o
 grestore
 gsave
 /o {
@@ -2026,7 +2172,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 506.32 o
+526.5 371.241 o
 grestore
 gsave
 /o {
@@ -2038,7 +2184,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 511.037 o
+73.125 373.865 o
 grestore
 gsave
 /o {
@@ -2050,7 +2196,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 511.037 o
+526.5 373.865 o
 grestore
 gsave
 /o {
@@ -2062,7 +2208,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 514.892 o
+73.125 382.222 o
 grestore
 gsave
 /o {
@@ -2074,7 +2220,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 514.892 o
+526.5 382.222 o
 grestore
 gsave
 /o {
@@ -2086,7 +2232,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 518.15 o
+73.125 388.543 o
 grestore
 gsave
 /o {
@@ -2098,7 +2244,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 518.15 o
+526.5 388.543 o
 grestore
 gsave
 /o {
@@ -2110,7 +2256,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 520.973 o
+73.125 392.241 o
 grestore
 gsave
 /o {
@@ -2122,7 +2268,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 520.973 o
+526.5 392.241 o
 grestore
 gsave
 /o {
@@ -2134,7 +2280,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 523.463 o
+73.125 394.865 o
 grestore
 gsave
 /o {
@@ -2146,9 +2292,9 @@ translate
 stroke
 grestore
 } bind def
-1104.84 523.463 o
+526.5 394.865 o
 grestore
-119.45 378.981 m
+39.125 274.041 m
 gsave
 90 rotate
 0 0.172 rmoveto
@@ -2157,37 +2303,37 @@ grestore
 1.000 setlinewidth
 2 setlinecap
 gsave
-153.45 525.69 m
-1104.84 525.69 l
+73.125 396.9 m
+526.5 396.9 l
 stroke
 grestore
 gsave
-1104.84 330.99 m
-1104.84 525.69 l
+526.5 249.9 m
+526.5 396.9 l
 stroke
 grestore
 gsave
-153.45 330.99 m
-1104.84 330.99 l
+73.125 249.9 m
+526.5 249.9 l
 stroke
 grestore
 gsave
-153.45 330.99 m
-153.45 525.69 l
+73.125 249.9 m
+73.125 396.9 l
 stroke
 grestore
 /DejaVuSans findfont
 14.400 scalefont
 setfont
-570.075 530.69 m
+240.742 401.9 m
 0 0.203 rmoveto
 (Relative residual) show
 gsave
-849.456 430.37 m
-1097.64 430.37 l
-1097.64 518.49 l
-849.456 518.49 l
-849.456 430.37 l
+271.116 301.58 m
+519.3 301.58 l
+519.3 389.7 l
+271.116 389.7 l
+271.116 301.58 l
 cl
 gsave
 1.000 setgray
@@ -2197,13 +2343,13 @@ stroke
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-859.536 506.77 m
-879.696 506.77 l
+281.196 377.98 m
+301.356 377.98 l
 stroke
 grestore
 0.000 setgray
 gsave
-895.536250 498.730000 translate
+317.196250 369.940000 translate
 0.000000 rotate
 /DejaVuSans findfont
 14.4 scalefont
@@ -2239,13 +2385,13 @@ setfont
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-859.536 485.57 m
-879.696 485.57 l
+281.196 356.78 m
+301.356 356.78 l
 stroke
 grestore
 0.000 setgray
 gsave
-895.536250 479.530000 translate
+317.196250 350.740000 translate
 0.000000 rotate
 /DejaVuSans findfont
 14.4 scalefont
@@ -2269,108 +2415,109 @@ setfont
 /period glyphshow
 
 44.422592 1.609375 moveto
-/one glyphshow
+/zero glyphshow
+
+53.578339 1.609375 moveto
+/five glyphshow
 
 
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-859.536 464.823 m
-879.696 464.823 l
+281.196 336.033 m
+301.356 336.033 l
 stroke
 grestore
 0.000 setgray
-895.536 459.58 m
+317.196 330.79 m
 0 0.203 rmoveto
 (Newtons method) show
 0.000 0.750 0.750 setrgbcolor
 gsave
-859.536 444.076 m
-879.696 444.076 l
+281.196 315.286 m
+301.356 315.286 l
 stroke
 grestore
 0.000 setgray
-895.536 436.13 m
+317.196 307.34 m
 0 2.906 rmoveto
 (Steepest first, then Newton) show
 gsave
-153.45 58.41 m
-1104.84 58.41 l
-1104.84 253.11 l
-153.45 253.11 l
-153.45 58.41 l
+73.125 44.1 m
+526.5 44.1 l
+526.5 191.1 l
+73.125 191.1 l
+73.125 44.1 l
 1.000 setgray
 fill
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-951.4 194.7 153.5 58.41 clipbox
-153.45 235.343 m
-185.163 86.1989 l
-216.876 86.1401 l
-248.589 86.1105 l
-280.302 86.0941 l
-312.015 86.0842 l
-343.728 86.0778 l
-375.441 86.0736 l
-407.154 86.0707 l
-438.867 86.0686 l
-470.58 86.0672 l
-502.293 86.0661 l
+453.4 147 73.12 44.1 clipbox
+73.125 184.565 m
+105.509 65.5942 l
+137.893 65.2214 l
+170.277 65.1308 l
+202.661 65.101 l
+235.045 65.0875 l
+267.429 65.0808 l
+299.812 65.0769 l
+332.196 65.0745 l
+364.58 65.073 l
+396.964 65.072 l
+429.348 65.0714 l
+461.732 65.0709 l
+494.116 65.0705 l
+526.5 65.0703 l
 stroke
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-951.4 194.7 153.5 58.41 clipbox
-153.45 235.343 m
-185.163 104.106 l
-216.876 94.9383 l
-248.589 90.7582 l
-280.302 88.6472 l
-312.015 87.5265 l
-343.728 86.9149 l
-375.441 86.5756 l
-407.154 86.3853 l
-438.867 86.2777 l
-470.58 86.2164 l
-502.293 86.1811 l
-534.006 86.1606 l
-565.719 86.1484 l
-597.432 86.1409 l
-629.145 86.1362 l
-660.858 86.1329 l
-692.571 86.1306 l
-724.284 86.1288 l
-755.997 86.1273 l
-787.71 86.126 l
-819.423 86.1248 l
-851.136 86.1237 l
-882.849 86.1226 l
-914.562 86.1216 l
-946.275 86.1206 l
-977.988 86.1196 l
-1009.7 86.1187 l
-1041.41 86.1178 l
-1073.13 86.1169 l
+453.4 147 73.12 44.1 clipbox
+73.125 184.565 m
+105.509 70.7783 l
+137.893 69.017 l
+170.277 67.8839 l
+202.661 67.1174 l
+235.045 66.5815 l
+267.429 66.1979 l
+299.812 65.9189 l
+332.196 65.7132 l
+364.58 65.5603 l
+396.964 65.4458 l
+429.348 65.3596 l
+461.732 65.2944 l
+494.116 65.2449 l
+526.5 65.2072 l
 stroke
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-951.4 194.7 153.5 58.41 clipbox
-153.45 235.343 m
-185.163 107.225 l
-216.876 88.8794 l
-248.589 86.7359 l
-280.302 86.2559 l
-312.015 86.1239 l
+453.4 147 73.12 44.1 clipbox
+73.125 184.565 m
+105.509 86.0742 l
+137.893 68.8444 l
+170.277 65.8645 l
+202.661 65.2528 l
+235.045 65.1195 l
+267.429 65.0854 l
+299.812 65.0728 l
+332.196 65.0699 l
+364.58 65.0695 l
+396.964 65.0695 l
 stroke
 grestore
 0.000 0.750 0.750 setrgbcolor
 gsave
-951.4 194.7 153.5 58.41 clipbox
-153.45 235.343 m
-185.163 86.1989 l
-216.876 86.0776 l
+453.4 147 73.12 44.1 clipbox
+73.125 184.565 m
+105.509 65.5942 l
+137.893 65.2214 l
+170.277 65.0967 l
+202.661 65.0733 l
+235.045 65.0697 l
+267.429 65.0695 l
+299.812 65.0695 l
 stroke
 grestore
 0.500 setlinewidth
@@ -2386,7 +2533,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 58.41 o
+73.125 44.1 o
 grestore
 gsave
 /o {
@@ -2398,13 +2545,13 @@ translate
 stroke
 grestore
 } bind def
-153.45 253.11 o
+73.125 191.1 o
 grestore
 /DejaVuSans findfont
 12.000 scalefont
 setfont
 gsave
-150.426563 45.331875 translate
+70.101562 31.021875 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -2418,7 +2565,7 @@ translate
 stroke
 grestore
 } bind def
-312.015 58.41 o
+137.893 44.1 o
 grestore
 gsave
 /o {
@@ -2430,12 +2577,12 @@ translate
 stroke
 grestore
 } bind def
-312.015 253.11 o
+137.893 191.1 o
 grestore
 gsave
-309.179063 45.488125 translate
+135.111607 31.193750 translate
 0.000000 rotate
-0.000000 0.171875 m /five glyphshow
+0.000000 0.000000 m /two glyphshow
 grestore
 gsave
 /o {
@@ -2447,7 +2594,7 @@ translate
 stroke
 grestore
 } bind def
-470.58 58.41 o
+202.661 44.1 o
 grestore
 gsave
 /o {
@@ -2459,13 +2606,12 @@ translate
 stroke
 grestore
 } bind def
-470.58 253.11 o
+202.661 191.1 o
 grestore
 gsave
-463.994063 45.331875 translate
+199.473214 31.350000 translate
 0.000000 rotate
-0.000000 0.171875 m /one glyphshow
-7.634766 0.171875 m /zero glyphshow
+0.000000 0.000000 m /four glyphshow
 grestore
 gsave
 /o {
@@ -2477,7 +2623,7 @@ translate
 stroke
 grestore
 } bind def
-629.145 58.41 o
+267.429 44.1 o
 grestore
 gsave
 /o {
@@ -2489,13 +2635,12 @@ translate
 stroke
 grestore
 } bind def
-629.145 253.11 o
+267.429 191.1 o
 grestore
 gsave
-622.684063 45.488125 translate
+264.412946 31.021875 translate
 0.000000 rotate
-0.000000 0.171875 m /one glyphshow
-7.634766 0.171875 m /five glyphshow
+0.000000 0.171875 m /six glyphshow
 grestore
 gsave
 /o {
@@ -2507,7 +2652,7 @@ translate
 stroke
 grestore
 } bind def
-787.71 58.41 o
+332.196 44.1 o
 grestore
 gsave
 /o {
@@ -2519,12 +2664,41 @@ translate
 stroke
 grestore
 } bind def
-787.71 253.11 o
+332.196 191.1 o
 grestore
 gsave
-780.905313 45.331875 translate
+329.196429 31.021875 translate
 0.000000 rotate
-0.000000 0.171875 m /two glyphshow
+0.000000 0.171875 m /eight glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+396.964 44.1 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+396.964 191.1 o
+grestore
+gsave
+390.378348 31.021875 translate
+0.000000 rotate
+0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
 grestore
 gsave
@@ -2537,7 +2711,7 @@ translate
 stroke
 grestore
 } bind def
-946.275 58.41 o
+461.732 44.1 o
 grestore
 gsave
 /o {
@@ -2549,13 +2723,13 @@ translate
 stroke
 grestore
 } bind def
-946.275 253.11 o
+461.732 191.1 o
 grestore
 gsave
-939.595313 45.331875 translate
+455.349330 31.193750 translate
 0.000000 rotate
-0.000000 0.171875 m /two glyphshow
-7.634766 0.171875 m /five glyphshow
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /two glyphshow
 grestore
 gsave
 /o {
@@ -2567,7 +2741,7 @@ translate
 stroke
 grestore
 } bind def
-1104.84 58.41 o
+526.5 44.1 o
 grestore
 gsave
 /o {
@@ -2579,15 +2753,15 @@ translate
 stroke
 grestore
 } bind def
-1104.84 253.11 o
+526.5 191.1 o
 grestore
 gsave
-1098.058750 45.331875 translate
+519.851562 31.350000 translate
 0.000000 rotate
-0.000000 0.171875 m /three glyphshow
-7.634766 0.171875 m /zero glyphshow
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /four glyphshow
 grestore
-604.778 31.035 m
+275.445 16.725 m
 0 0.172 rmoveto
 (Iteration) show
 gsave
@@ -2600,7 +2774,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 58.41 o
+73.125 44.1 o
 grestore
 gsave
 /o {
@@ -2612,13 +2786,14 @@ translate
 stroke
 grestore
 } bind def
-1104.84 58.41 o
+526.5 44.1 o
 grestore
 gsave
-134.059375 53.949062 translate
+45.843750 39.560937 translate
 0.000000 rotate
 0.000000 0.171875 m /minus glyphshow
-10.054688 0.171875 m /five glyphshow
+10.054688 0.171875 m /two glyphshow
+17.689453 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -2630,7 +2805,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 86.2243 o
+73.125 65.1 o
 grestore
 gsave
 /o {
@@ -2642,10 +2817,10 @@ translate
 stroke
 grestore
 } bind def
-1104.84 86.2243 o
+526.5 65.1 o
 grestore
 gsave
-143.403125 81.685223 translate
+63.078125 60.560937 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -2659,7 +2834,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 114.039 o
+73.125 86.1 o
 grestore
 gsave
 /o {
@@ -2671,12 +2846,13 @@ translate
 stroke
 grestore
 } bind def
-1104.84 114.039 o
+526.5 86.1 o
 grestore
 gsave
-143.778125 109.577634 translate
+55.515625 81.560937 translate
 0.000000 rotate
-0.000000 0.171875 m /five glyphshow
+0.000000 0.171875 m /two glyphshow
+7.634766 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -2688,7 +2864,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 141.853 o
+73.125 107.1 o
 grestore
 gsave
 /o {
@@ -2700,12 +2876,12 @@ translate
 stroke
 grestore
 } bind def
-1104.84 141.853 o
+526.5 107.1 o
 grestore
 gsave
-136.278125 137.313795 translate
+55.234375 102.560937 translate
 0.000000 rotate
-0.000000 0.171875 m /one glyphshow
+0.000000 0.171875 m /four glyphshow
 7.634766 0.171875 m /zero glyphshow
 grestore
 gsave
@@ -2718,7 +2894,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 169.667 o
+73.125 128.1 o
 grestore
 gsave
 /o {
@@ -2730,13 +2906,13 @@ translate
 stroke
 grestore
 } bind def
-1104.84 169.667 o
+526.5 128.1 o
 grestore
 gsave
-136.528125 165.206205 translate
+55.484375 123.560937 translate
 0.000000 rotate
-0.000000 0.171875 m /one glyphshow
-7.634766 0.171875 m /five glyphshow
+0.000000 0.171875 m /six glyphshow
+7.634766 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -2748,7 +2924,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 197.481 o
+73.125 149.1 o
 grestore
 gsave
 /o {
@@ -2760,12 +2936,12 @@ translate
 stroke
 grestore
 } bind def
-1104.84 197.481 o
+526.5 149.1 o
 grestore
 gsave
-135.840625 192.942366 translate
+55.453125 144.560937 translate
 0.000000 rotate
-0.000000 0.171875 m /two glyphshow
+0.000000 0.171875 m /eight glyphshow
 7.634766 0.171875 m /zero glyphshow
 grestore
 gsave
@@ -2778,7 +2954,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 225.296 o
+73.125 170.1 o
 grestore
 gsave
 /o {
@@ -2790,13 +2966,14 @@ translate
 stroke
 grestore
 } bind def
-1104.84 225.296 o
+526.5 170.1 o
 grestore
 gsave
-136.090625 220.756652 translate
+48.312500 165.560937 translate
 0.000000 rotate
-0.000000 0.171875 m /two glyphshow
-7.634766 0.171875 m /five glyphshow
+0.000000 0.171875 m /one glyphshow
+7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -2808,7 +2985,7 @@ translate
 stroke
 grestore
 } bind def
-153.45 253.11 o
+73.125 191.1 o
 grestore
 gsave
 /o {
@@ -2820,15 +2997,16 @@ translate
 stroke
 grestore
 } bind def
-1104.84 253.11 o
+526.5 191.1 o
 grestore
 gsave
-135.887500 248.570938 translate
+48.312500 186.560937 translate
 0.000000 rotate
-0.000000 0.171875 m /three glyphshow
-7.634766 0.171875 m /zero glyphshow
+0.000000 0.171875 m /one glyphshow
+7.634766 0.171875 m /two glyphshow
+15.269531 0.171875 m /zero glyphshow
 grestore
-129.059 144.549 m
+40.844 106.389 m
 gsave
 90 rotate
 0 2.5 rmoveto
@@ -2837,29 +3015,29 @@ grestore
 1.000 setlinewidth
 2 setlinecap
 gsave
-153.45 253.11 m
-1104.84 253.11 l
+73.125 191.1 m
+526.5 191.1 l
 stroke
 grestore
 gsave
-1104.84 58.41 m
-1104.84 253.11 l
+526.5 44.1 m
+526.5 191.1 l
 stroke
 grestore
 gsave
-153.45 58.41 m
-1104.84 58.41 l
+73.125 44.1 m
+526.5 44.1 l
 stroke
 grestore
 gsave
-153.45 58.41 m
-153.45 253.11 l
+73.125 44.1 m
+73.125 191.1 l
 stroke
 grestore
 /DejaVuSans findfont
 14.400 scalefont
 setfont
-577.004 258.11 m
+247.672 196.1 m
 0 0.203 rmoveto
 (Function value) show