]> git.rustad.me Git - nummat1/commitdiff
Finishing up 1
authorBjørn Rustad <rustadbjornen@gmail.com>
Mon, 3 Oct 2011 10:58:23 +0000 (12:58 +0200)
committerBjørn Rustad <rustadbjornen@gmail.com>
Mon, 3 Oct 2011 10:58:23 +0000 (12:58 +0200)
Makefile
backup.eps
bj_newton.py [new file with mode: 0644]
function.py
main.py
old.eps [new file with mode: 0644]
rapport.tex
steepest.eps
steepest.py
steepestnewton.py

index 13d90dda9eb65b82f1b0779816c72a28938cf2b6..80dc5fae4e7f9e9cb4d17588ab7402976d09d8ba 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,4 +2,4 @@ all:
        latex rapport.tex
        latex rapport.tex
        dvips rapport.dvi
-       ps2pdf rapport.ps
+       #ps2pdf rapport.ps
index 62abd42c426ab88c72230f7ea7737081f6bd1cc4..2cc61ff97f95648da5a8b0923ea68a5ff1bc1e10 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: Sun Oct  2 23:02:54 2011
+%%CreationDate: Mon Oct  3 11:59:29 2011
 %%Orientation: portrait
-%%BoundingBox: -74 103 686 688
+%%BoundingBox: -74 97 686 694
 %%EndComments
 %%BeginProlog
 /mpldict 8 dict def
@@ -910,8 +910,8 @@ FontName currentdict end definefont pop
 end
 %%EndProlog
 mpldict begin
--74.25 103.95 translate
-760.5 584.1 0 0 clipbox
+-74.25 97.2 translate
+760.5 597.6 0 0 clipbox
 1.000 setlinewidth
 1 setlinejoin
 2 setlinecap
@@ -920,8 +920,8 @@ mpldict begin
 gsave
 0 0 m
 760.5 0 l
-760.5 584.1 l
-0 584.1 l
+760.5 597.6 l
+0 597.6 l
 0 0 l
 gsave
 fill
@@ -929,80 +929,84 @@ grestore
 stroke
 grestore
 gsave
-95.0625 330.99 m
-684.45 330.99 l
-684.45 525.69 l
-95.0625 525.69 l
-95.0625 330.99 l
+95.0625 338.64 m
+684.45 338.64 l
+684.45 537.84 l
+95.0625 537.84 l
+95.0625 338.64 l
 fill
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 359.459 l
-179.261 358.965 l
-221.36 358.845 l
-263.459 358.806 l
-305.558 358.788 l
-347.657 358.779 l
-389.756 358.774 l
-431.855 358.771 l
-473.954 358.769 l
-516.054 358.767 l
-558.153 358.766 l
-600.252 358.766 l
-642.351 358.765 l
-684.45 358.765 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 372.039 l
+179.261 367.103 l
+221.36 367.097 l
+263.459 367.097 l
+305.558 367.097 l
+347.657 367.097 l
+389.756 367.097 l
+431.855 367.097 l
+473.954 367.097 l
+516.054 367.097 l
+558.153 367.097 l
+600.252 367.097 l
+642.351 367.097 l
+684.45 367.097 l
 stroke
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 366.325 l
-179.261 363.992 l
-221.36 362.491 l
-263.459 361.476 l
-305.558 360.766 l
-347.657 360.258 l
-389.756 359.889 l
-431.855 359.617 l
-473.954 359.414 l
-516.054 359.262 l
-558.153 359.148 l
-600.252 359.062 l
-642.351 358.996 l
-684.45 358.946 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 372.111 l
+179.261 369.876 l
+221.36 368.918 l
+263.459 368.4 l
+305.558 368.083 l
+347.657 367.873 l
+389.756 367.725 l
+431.855 367.617 l
+473.954 367.536 l
+516.054 367.472 l
+558.153 367.422 l
+600.252 367.381 l
+642.351 367.348 l
+684.45 367.321 l
 stroke
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 386.584 l
-179.261 363.764 l
-221.36 359.817 l
-263.459 359.007 l
-305.558 358.83 l
-347.657 358.785 l
-389.756 358.768 l
-431.855 358.764 l
-473.954 358.764 l
-516.054 358.764 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 396.121 l
+179.261 372.87 l
+221.36 368.254 l
+263.459 367.333 l
+305.558 367.146 l
+347.657 367.107 l
+389.756 367.099 l
+431.855 367.097 l
+473.954 367.097 l
+516.054 367.097 l
+558.153 367.097 l
+600.252 367.097 l
+642.351 367.097 l
 stroke
 grestore
 0.000 0.750 0.750 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 359.459 l
-179.261 358.965 l
-221.36 358.8 l
-263.459 358.769 l
-305.558 358.764 l
-347.657 358.764 l
-389.756 358.764 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 372.039 l
+179.261 367.103 l
+221.36 367.097 l
+263.459 367.097 l
+305.558 367.097 l
+347.657 367.097 l
+389.756 367.097 l
+431.855 367.097 l
 stroke
 grestore
 0.500 setlinewidth
@@ -1018,7 +1022,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 330.99 o
+95.0625 338.64 o
 grestore
 gsave
 /o {
@@ -1030,13 +1034,13 @@ translate
 stroke
 grestore
 } bind def
-95.0625 525.69 o
+95.0625 537.84 o
 grestore
 /DejaVuSans findfont
 12.000 scalefont
 setfont
 gsave
-92.039062 317.911875 translate
+92.039062 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -1050,7 +1054,7 @@ translate
 stroke
 grestore
 } bind def
-179.261 330.99 o
+179.261 338.64 o
 grestore
 gsave
 /o {
@@ -1062,10 +1066,10 @@ translate
 stroke
 grestore
 } bind def
-179.261 525.69 o
+179.261 537.84 o
 grestore
 gsave
-176.479464 318.083750 translate
+176.479464 325.733750 translate
 0.000000 rotate
 0.000000 0.000000 m /two glyphshow
 grestore
@@ -1079,7 +1083,7 @@ translate
 stroke
 grestore
 } bind def
-263.459 330.99 o
+263.459 338.64 o
 grestore
 gsave
 /o {
@@ -1091,10 +1095,10 @@ translate
 stroke
 grestore
 } bind def
-263.459 525.69 o
+263.459 537.84 o
 grestore
 gsave
-260.271429 318.240000 translate
+260.271429 325.890000 translate
 0.000000 rotate
 0.000000 0.000000 m /four glyphshow
 grestore
@@ -1108,7 +1112,7 @@ translate
 stroke
 grestore
 } bind def
-347.657 330.99 o
+347.657 338.64 o
 grestore
 gsave
 /o {
@@ -1120,10 +1124,10 @@ translate
 stroke
 grestore
 } bind def
-347.657 525.69 o
+347.657 537.84 o
 grestore
 gsave
-344.641518 317.911875 translate
+344.641518 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /six glyphshow
 grestore
@@ -1137,7 +1141,7 @@ translate
 stroke
 grestore
 } bind def
-431.855 330.99 o
+431.855 338.64 o
 grestore
 gsave
 /o {
@@ -1149,10 +1153,10 @@ translate
 stroke
 grestore
 } bind def
-431.855 525.69 o
+431.855 537.84 o
 grestore
 gsave
-428.855357 317.911875 translate
+428.855357 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /eight glyphshow
 grestore
@@ -1166,7 +1170,7 @@ translate
 stroke
 grestore
 } bind def
-516.054 330.99 o
+516.054 338.64 o
 grestore
 gsave
 /o {
@@ -1178,10 +1182,10 @@ translate
 stroke
 grestore
 } bind def
-516.054 525.69 o
+516.054 537.84 o
 grestore
 gsave
-509.467634 317.911875 translate
+509.467634 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
@@ -1196,7 +1200,7 @@ translate
 stroke
 grestore
 } bind def
-600.252 330.99 o
+600.252 338.64 o
 grestore
 gsave
 /o {
@@ -1208,10 +1212,10 @@ translate
 stroke
 grestore
 } bind def
-600.252 525.69 o
+600.252 537.84 o
 grestore
 gsave
-593.868973 318.083750 translate
+593.868973 325.733750 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /two glyphshow
@@ -1226,7 +1230,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 330.99 o
+684.45 338.64 o
 grestore
 gsave
 /o {
@@ -1238,15 +1242,15 @@ translate
 stroke
 grestore
 } bind def
-684.45 525.69 o
+684.45 537.84 o
 grestore
 gsave
-677.801563 318.240000 translate
+677.801563 325.890000 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /four glyphshow
 grestore
-365.389 303.615 m
+365.389 311.265 m
 0 0.172 rmoveto
 (Iteration) show
 gsave
@@ -1259,7 +1263,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 330.99 o
+95.0625 338.64 o
 grestore
 gsave
 /o {
@@ -1271,14 +1275,18 @@ translate
 stroke
 grestore
 } bind def
-684.45 330.99 o
+684.45 338.64 o
 grestore
 gsave
-67.781250 326.450938 translate
+37.218750 334.100937 translate
 0.000000 rotate
 0.000000 0.171875 m /minus glyphshow
 10.054688 0.171875 m /two glyphshow
 17.689453 0.171875 m /zero glyphshow
+25.324219 0.171875 m /zero glyphshow
+32.958984 0.171875 m /zero glyphshow
+40.593750 0.171875 m /zero glyphshow
+48.228516 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1290,7 +1298,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 358.804 o
+95.0625 367.097 o
 grestore
 gsave
 /o {
@@ -1302,10 +1310,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 358.804 o
+684.45 367.097 o
 grestore
 gsave
-85.015625 354.265223 translate
+85.015625 362.558080 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -1319,7 +1327,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 386.619 o
+95.0625 395.554 o
 grestore
 gsave
 /o {
@@ -1331,13 +1339,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 386.619 o
+684.45 395.554 o
 grestore
 gsave
-77.453125 382.079509 translate
+46.890625 391.015223 translate
 0.000000 rotate
 0.000000 0.171875 m /two glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1349,7 +1361,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 414.433 o
+95.0625 424.011 o
 grestore
 gsave
 /o {
@@ -1361,13 +1373,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 414.433 o
+684.45 424.011 o
 grestore
 gsave
-77.171875 409.893795 translate
+46.609375 419.472366 translate
 0.000000 rotate
 0.000000 0.171875 m /four glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1379,7 +1395,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 442.247 o
+95.0625 452.469 o
 grestore
 gsave
 /o {
@@ -1391,13 +1407,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 442.247 o
+684.45 452.469 o
 grestore
 gsave
-77.421875 437.708080 translate
+46.859375 447.929509 translate
 0.000000 rotate
 0.000000 0.171875 m /six glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1409,7 +1429,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 470.061 o
+95.0625 480.926 o
 grestore
 gsave
 /o {
@@ -1421,13 +1441,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 470.061 o
+684.45 480.926 o
 grestore
 gsave
-77.390625 465.522366 translate
+46.828125 476.386652 translate
 0.000000 rotate
 0.000000 0.171875 m /eight glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1439,7 +1463,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 497.876 o
+95.0625 509.383 o
 grestore
 gsave
 /o {
@@ -1451,14 +1475,18 @@ translate
 stroke
 grestore
 } bind def
-684.45 497.876 o
+684.45 509.383 o
 grestore
 gsave
-70.250000 493.336652 translate
+39.687500 504.843795 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
 15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
+45.808594 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1470,7 +1498,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 525.69 o
+95.0625 537.84 o
 grestore
 gsave
 /o {
@@ -1482,16 +1510,20 @@ translate
 stroke
 grestore
 } bind def
-684.45 525.69 o
+684.45 537.84 o
 grestore
 gsave
-70.250000 521.150938 translate
+39.687500 533.300938 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /two glyphshow
 15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
+45.808594 0.171875 m /zero glyphshow
 grestore
-62.781 417.129 m
+32.219 427.029 m
 gsave
 90 rotate
 0 2.5 rmoveto
@@ -1500,37 +1532,37 @@ grestore
 1.000 setlinewidth
 2 setlinecap
 gsave
-95.0625 525.69 m
-684.45 525.69 l
+95.0625 537.84 m
+684.45 537.84 l
 stroke
 grestore
 gsave
-684.45 330.99 m
-684.45 525.69 l
+684.45 338.64 m
+684.45 537.84 l
 stroke
 grestore
 gsave
-95.0625 330.99 m
-684.45 330.99 l
+95.0625 338.64 m
+684.45 338.64 l
 stroke
 grestore
 gsave
-95.0625 330.99 m
-95.0625 525.69 l
+95.0625 338.64 m
+95.0625 537.84 l
 stroke
 grestore
 /DejaVuSans findfont
 14.400 scalefont
 setfont
-337.616 530.69 m
+337.616 542.84 m
 0 0.203 rmoveto
 (Function value) show
 gsave
-429.066 430.37 m
-677.25 430.37 l
-677.25 518.49 l
-429.066 518.49 l
-429.066 430.37 l
+429.066 442.52 m
+677.25 442.52 l
+677.25 530.64 l
+429.066 530.64 l
+429.066 442.52 l
 cl
 gsave
 1.000 setgray
@@ -1540,13 +1572,13 @@ stroke
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-439.146 506.77 m
-459.306 506.77 l
+439.146 518.92 m
+459.306 518.92 l
 stroke
 grestore
 0.000 setgray
 gsave
-475.146250 498.730000 translate
+475.146250 510.880000 translate
 0.000000 rotate
 /DejaVuSans findfont
 14.4 scalefont
@@ -1582,13 +1614,13 @@ setfont
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-439.146 485.57 m
-459.306 485.57 l
+439.146 497.72 m
+459.306 497.72 l
 stroke
 grestore
 0.000 setgray
 gsave
-475.146250 479.530000 translate
+475.146250 491.680000 translate
 0.000000 rotate
 /DejaVuSans findfont
 14.4 scalefont
@@ -1615,106 +1647,113 @@ setfont
 /zero glyphshow
 
 53.578339 1.609375 moveto
-/five glyphshow
+/zero glyphshow
+
+62.734085 1.609375 moveto
+/one glyphshow
 
 
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-439.146 464.823 m
-459.306 464.823 l
+439.146 476.973 m
+459.306 476.973 l
 stroke
 grestore
 0.000 setgray
-475.146 459.58 m
+475.146 471.73 m
 0 0.203 rmoveto
 (Newtons method) show
 0.000 0.750 0.750 setrgbcolor
 gsave
-439.146 444.076 m
-459.306 444.076 l
+439.146 456.226 m
+459.306 456.226 l
 stroke
 grestore
 0.000 setgray
-475.146 436.13 m
+475.146 448.28 m
 0 2.906 rmoveto
 (Steepest first, then Newton) show
 gsave
-95.0625 58.41 m
-684.45 58.41 l
-684.45 253.11 l
-95.0625 253.11 l
-95.0625 58.41 l
+95.0625 59.76 m
+684.45 59.76 l
+684.45 258.96 l
+95.0625 258.96 l
+95.0625 59.76 l
 1.000 setgray
 fill
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 203.279 l
-179.261 194.654 l
-221.36 186.904 l
-263.459 181.081 l
-305.558 177.713 l
-347.657 172.65 l
-389.756 171.157 l
-431.855 166.43 l
-473.954 165.939 l
-516.054 161.396 l
-558.153 161.508 l
-600.252 157.077 l
-642.351 157.579 l
-684.45 153.222 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 229.508 l
+179.261 176.541 l
+221.36 134.965 l
+263.459 130.235 l
+305.558 122.458 l
+347.657 120.874 l
+389.756 116.237 l
+431.855 115.547 l
+473.954 112.274 l
+516.054 111.993 l
+558.153 109.477 l
+600.252 109.416 l
+642.351 107.364 l
+684.45 107.431 l
 stroke
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 222.717 l
-179.261 219.974 l
-221.36 217.561 l
-263.459 215.364 l
-305.558 213.317 l
-347.657 211.377 l
-389.756 209.518 l
-431.855 207.718 l
-473.954 205.963 l
-516.054 204.243 l
-558.153 202.551 l
-600.252 200.881 l
-642.351 199.228 l
-684.45 197.59 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 229.821 l
+179.261 224.926 l
+221.36 221.429 l
+263.459 218.668 l
+305.558 216.371 l
+347.657 214.398 l
+389.756 212.664 l
+431.855 211.116 l
+473.954 209.716 l
+516.054 208.437 l
+558.153 207.259 l
+600.252 206.166 l
+642.351 205.148 l
+684.45 204.194 l
 stroke
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 238.17 l
-179.261 222.462 l
-221.36 207.853 l
-263.459 193.505 l
-305.558 179.763 l
-347.657 167.399 l
-389.756 156.604 l
-431.855 146.436 l
-473.954 120.135 l
-516.054 70.3295 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 245.811 l
+179.261 232.668 l
+221.36 219.539 l
+263.459 206.438 l
+305.558 193.392 l
+347.657 180.419 l
+389.756 167.318 l
+431.855 152.265 l
+473.954 137.239 l
+516.054 124.504 l
+558.153 112.855 l
+600.252 103.002 l
+642.351 76.034 l
 stroke
 grestore
 0.000 0.750 0.750 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 203.279 l
-179.261 194.654 l
-221.36 178.69 l
-263.459 162.978 l
-305.558 144.303 l
-347.657 115.514 l
-389.756 61.2154 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 229.508 l
+179.261 176.541 l
+221.36 134.965 l
+263.459 119.553 l
+305.558 109.463 l
+347.657 99.9101 l
+389.756 90.11 l
+431.855 66.4723 l
 stroke
 grestore
 0.500 setlinewidth
@@ -1730,7 +1769,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 58.41 o
+95.0625 59.76 o
 grestore
 gsave
 /o {
@@ -1742,13 +1781,13 @@ translate
 stroke
 grestore
 } bind def
-95.0625 253.11 o
+95.0625 258.96 o
 grestore
 /DejaVuSans findfont
 12.000 scalefont
 setfont
 gsave
-92.039062 45.331875 translate
+92.039062 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -1762,7 +1801,7 @@ translate
 stroke
 grestore
 } bind def
-179.261 58.41 o
+179.261 59.76 o
 grestore
 gsave
 /o {
@@ -1774,10 +1813,10 @@ translate
 stroke
 grestore
 } bind def
-179.261 253.11 o
+179.261 258.96 o
 grestore
 gsave
-176.479464 45.503750 translate
+176.479464 46.853750 translate
 0.000000 rotate
 0.000000 0.000000 m /two glyphshow
 grestore
@@ -1791,7 +1830,7 @@ translate
 stroke
 grestore
 } bind def
-263.459 58.41 o
+263.459 59.76 o
 grestore
 gsave
 /o {
@@ -1803,10 +1842,10 @@ translate
 stroke
 grestore
 } bind def
-263.459 253.11 o
+263.459 258.96 o
 grestore
 gsave
-260.271429 45.660000 translate
+260.271429 47.010000 translate
 0.000000 rotate
 0.000000 0.000000 m /four glyphshow
 grestore
@@ -1820,7 +1859,7 @@ translate
 stroke
 grestore
 } bind def
-347.657 58.41 o
+347.657 59.76 o
 grestore
 gsave
 /o {
@@ -1832,10 +1871,10 @@ translate
 stroke
 grestore
 } bind def
-347.657 253.11 o
+347.657 258.96 o
 grestore
 gsave
-344.641518 45.331875 translate
+344.641518 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /six glyphshow
 grestore
@@ -1849,7 +1888,7 @@ translate
 stroke
 grestore
 } bind def
-431.855 58.41 o
+431.855 59.76 o
 grestore
 gsave
 /o {
@@ -1861,10 +1900,10 @@ translate
 stroke
 grestore
 } bind def
-431.855 253.11 o
+431.855 258.96 o
 grestore
 gsave
-428.855357 45.331875 translate
+428.855357 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /eight glyphshow
 grestore
@@ -1878,7 +1917,7 @@ translate
 stroke
 grestore
 } bind def
-516.054 58.41 o
+516.054 59.76 o
 grestore
 gsave
 /o {
@@ -1890,10 +1929,10 @@ translate
 stroke
 grestore
 } bind def
-516.054 253.11 o
+516.054 258.96 o
 grestore
 gsave
-509.467634 45.331875 translate
+509.467634 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
@@ -1908,7 +1947,7 @@ translate
 stroke
 grestore
 } bind def
-600.252 58.41 o
+600.252 59.76 o
 grestore
 gsave
 /o {
@@ -1920,10 +1959,10 @@ translate
 stroke
 grestore
 } bind def
-600.252 253.11 o
+600.252 258.96 o
 grestore
 gsave
-593.868973 45.503750 translate
+593.868973 46.853750 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /two glyphshow
@@ -1938,7 +1977,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 58.41 o
+684.45 59.76 o
 grestore
 gsave
 /o {
@@ -1950,15 +1989,15 @@ translate
 stroke
 grestore
 } bind def
-684.45 253.11 o
+684.45 258.96 o
 grestore
 gsave
-677.801563 45.660000 translate
+677.801563 47.010000 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /four glyphshow
 grestore
-365.389 31.035 m
+365.389 32.385 m
 0 0.172 rmoveto
 (Iteration) show
 gsave
@@ -1971,7 +2010,54 @@ translate
 stroke
 grestore
 } bind def
-95.0625 58.41 o
+95.0625 59.76 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 59.76 o
+grestore
+gsave
+66.062500 52.260000 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
+/eight glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 84.66 o
 grestore
 gsave
 /o {
@@ -1983,10 +2069,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 58.41 o
+684.45 84.66 o
 grestore
 gsave
-66.062500 50.910000 translate
+66.062500 77.160000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2018,7 +2104,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 86.2243 o
+95.0625 109.56 o
 grestore
 gsave
 /o {
@@ -2030,10 +2116,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 86.2243 o
+684.45 109.56 o
 grestore
 gsave
-66.062500 78.724286 translate
+66.062500 102.060000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2065,7 +2151,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 114.039 o
+95.0625 134.46 o
 grestore
 gsave
 /o {
@@ -2077,10 +2163,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 114.039 o
+684.45 134.46 o
 grestore
 gsave
-66.062500 106.538571 translate
+66.062500 126.960000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2112,7 +2198,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 141.853 o
+95.0625 159.36 o
 grestore
 gsave
 /o {
@@ -2124,10 +2210,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 141.853 o
+684.45 159.36 o
 grestore
 gsave
-66.062500 134.352857 translate
+66.062500 151.860000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2159,7 +2245,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 169.667 o
+95.0625 184.26 o
 grestore
 gsave
 /o {
@@ -2171,10 +2257,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 169.667 o
+684.45 184.26 o
 grestore
 gsave
-66.062500 162.167143 translate
+66.062500 176.760000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2206,7 +2292,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 197.481 o
+95.0625 209.16 o
 grestore
 gsave
 /o {
@@ -2218,10 +2304,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 197.481 o
+684.45 209.16 o
 grestore
 gsave
-66.062500 189.981429 translate
+66.062500 201.660000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2253,7 +2339,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 225.296 o
+95.0625 234.06 o
 grestore
 gsave
 /o {
@@ -2265,10 +2351,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 225.296 o
+684.45 234.06 o
 grestore
 gsave
-66.062500 217.795714 translate
+66.062500 226.560000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2300,7 +2386,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 253.11 o
+95.0625 258.96 o
 grestore
 gsave
 /o {
@@ -2312,10 +2398,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 253.11 o
+684.45 258.96 o
 grestore
 gsave
-69.062500 245.610000 translate
+69.062500 251.460000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2344,7 +2430,103 @@ translate
 stroke
 grestore
 } bind def
-95.0625 66.7829 o
+95.0625 67.2556 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 67.2556 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 74.7513 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 74.7513 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 79.136 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 79.136 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 82.2469 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 82.2469 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 92.1556 o
 grestore
 gsave
 /o {
@@ -2356,7 +2538,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 66.7829 o
+684.45 92.1556 o
 grestore
 gsave
 /o {
@@ -2368,7 +2550,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 75.1559 o
+95.0625 99.6513 o
 grestore
 gsave
 /o {
@@ -2380,7 +2562,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 75.1559 o
+684.45 99.6513 o
 grestore
 gsave
 /o {
@@ -2392,7 +2574,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 80.0537 o
+95.0625 104.036 o
 grestore
 gsave
 /o {
@@ -2404,7 +2586,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 80.0537 o
+684.45 104.036 o
 grestore
 gsave
 /o {
@@ -2416,7 +2598,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 83.5288 o
+95.0625 107.147 o
 grestore
 gsave
 /o {
@@ -2428,7 +2610,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 83.5288 o
+684.45 107.147 o
 grestore
 gsave
 /o {
@@ -2440,7 +2622,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 94.5972 o
+95.0625 117.056 o
 grestore
 gsave
 /o {
@@ -2452,7 +2634,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 94.5972 o
+684.45 117.056 o
 grestore
 gsave
 /o {
@@ -2464,7 +2646,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 102.97 o
+95.0625 124.551 o
 grestore
 gsave
 /o {
@@ -2476,7 +2658,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 102.97 o
+684.45 124.551 o
 grestore
 gsave
 /o {
@@ -2488,7 +2670,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 107.868 o
+95.0625 128.936 o
 grestore
 gsave
 /o {
@@ -2500,7 +2682,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 107.868 o
+684.45 128.936 o
 grestore
 gsave
 /o {
@@ -2512,7 +2694,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 111.343 o
+95.0625 132.047 o
 grestore
 gsave
 /o {
@@ -2524,7 +2706,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 111.343 o
+684.45 132.047 o
 grestore
 gsave
 /o {
@@ -2536,7 +2718,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 122.412 o
+95.0625 141.956 o
 grestore
 gsave
 /o {
@@ -2548,7 +2730,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 122.412 o
+684.45 141.956 o
 grestore
 gsave
 /o {
@@ -2560,7 +2742,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 130.784 o
+95.0625 149.451 o
 grestore
 gsave
 /o {
@@ -2572,7 +2754,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 130.784 o
+684.45 149.451 o
 grestore
 gsave
 /o {
@@ -2584,7 +2766,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 135.682 o
+95.0625 153.836 o
 grestore
 gsave
 /o {
@@ -2596,7 +2778,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 135.682 o
+684.45 153.836 o
 grestore
 gsave
 /o {
@@ -2608,7 +2790,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 139.157 o
+95.0625 156.947 o
 grestore
 gsave
 /o {
@@ -2620,7 +2802,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 139.157 o
+684.45 156.947 o
 grestore
 gsave
 /o {
@@ -2632,7 +2814,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 150.226 o
+95.0625 166.856 o
 grestore
 gsave
 /o {
@@ -2644,7 +2826,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 150.226 o
+684.45 166.856 o
 grestore
 gsave
 /o {
@@ -2656,7 +2838,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 158.599 o
+95.0625 174.351 o
 grestore
 gsave
 /o {
@@ -2668,7 +2850,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 158.599 o
+684.45 174.351 o
 grestore
 gsave
 /o {
@@ -2680,7 +2862,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 163.497 o
+95.0625 178.736 o
 grestore
 gsave
 /o {
@@ -2692,7 +2874,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 163.497 o
+684.45 178.736 o
 grestore
 gsave
 /o {
@@ -2704,7 +2886,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 166.972 o
+95.0625 181.847 o
 grestore
 gsave
 /o {
@@ -2716,7 +2898,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 166.972 o
+684.45 181.847 o
 grestore
 gsave
 /o {
@@ -2728,7 +2910,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 178.04 o
+95.0625 191.756 o
 grestore
 gsave
 /o {
@@ -2740,7 +2922,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 178.04 o
+684.45 191.756 o
 grestore
 gsave
 /o {
@@ -2752,7 +2934,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 186.413 o
+95.0625 199.251 o
 grestore
 gsave
 /o {
@@ -2764,7 +2946,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 186.413 o
+684.45 199.251 o
 grestore
 gsave
 /o {
@@ -2776,7 +2958,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 191.311 o
+95.0625 203.636 o
 grestore
 gsave
 /o {
@@ -2788,7 +2970,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 191.311 o
+684.45 203.636 o
 grestore
 gsave
 /o {
@@ -2800,7 +2982,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 194.786 o
+95.0625 206.747 o
 grestore
 gsave
 /o {
@@ -2812,7 +2994,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 194.786 o
+684.45 206.747 o
 grestore
 gsave
 /o {
@@ -2824,7 +3006,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 205.854 o
+95.0625 216.656 o
 grestore
 gsave
 /o {
@@ -2836,7 +3018,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 205.854 o
+684.45 216.656 o
 grestore
 gsave
 /o {
@@ -2848,7 +3030,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 214.227 o
+95.0625 224.151 o
 grestore
 gsave
 /o {
@@ -2860,7 +3042,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 214.227 o
+684.45 224.151 o
 grestore
 gsave
 /o {
@@ -2872,7 +3054,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 219.125 o
+95.0625 228.536 o
 grestore
 gsave
 /o {
@@ -2884,7 +3066,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 219.125 o
+684.45 228.536 o
 grestore
 gsave
 /o {
@@ -2896,7 +3078,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 222.6 o
+95.0625 231.647 o
 grestore
 gsave
 /o {
@@ -2908,7 +3090,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 222.6 o
+684.45 231.647 o
 grestore
 gsave
 /o {
@@ -2920,7 +3102,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 233.669 o
+95.0625 241.556 o
 grestore
 gsave
 /o {
@@ -2932,7 +3114,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 233.669 o
+684.45 241.556 o
 grestore
 gsave
 /o {
@@ -2944,7 +3126,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 242.042 o
+95.0625 249.051 o
 grestore
 gsave
 /o {
@@ -2956,7 +3138,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 242.042 o
+684.45 249.051 o
 grestore
 gsave
 /o {
@@ -2968,7 +3150,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 246.939 o
+95.0625 253.436 o
 grestore
 gsave
 /o {
@@ -2980,7 +3162,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 246.939 o
+684.45 253.436 o
 grestore
 gsave
 /o {
@@ -2992,7 +3174,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 250.415 o
+95.0625 256.547 o
 grestore
 gsave
 /o {
@@ -3004,9 +3186,9 @@ translate
 stroke
 grestore
 } bind def
-684.45 250.415 o
+684.45 256.547 o
 grestore
-61.062 106.401 m
+61.062 110.001 m
 gsave
 90 rotate
 0 0.172 rmoveto
@@ -3015,29 +3197,29 @@ grestore
 1.000 setlinewidth
 2 setlinecap
 gsave
-95.0625 253.11 m
-684.45 253.11 l
+95.0625 258.96 m
+684.45 258.96 l
 stroke
 grestore
 gsave
-684.45 58.41 m
-684.45 253.11 l
+684.45 59.76 m
+684.45 258.96 l
 stroke
 grestore
 gsave
-95.0625 58.41 m
-684.45 58.41 l
+95.0625 59.76 m
+684.45 59.76 l
 stroke
 grestore
 gsave
-95.0625 58.41 m
-95.0625 253.11 l
+95.0625 59.76 m
+95.0625 258.96 l
 stroke
 grestore
 /DejaVuSans findfont
 14.400 scalefont
 setfont
-330.686 258.11 m
+330.686 263.96 m
 0 0.203 rmoveto
 (Relative residual) show
 
diff --git a/bj_newton.py b/bj_newton.py
new file mode 100644 (file)
index 0000000..33bc0e7
--- /dev/null
@@ -0,0 +1,23 @@
+# Calculate the next iteration of the Newton method
+def newton_iter(x, grad_g, hess_g):
+    return x - inv(hess_g).dot(grad_g)
+
+# Run the Newton method from point xk
+def newton(xk, H, b, c, tolerance, maxiter, x0_norm=0):
+    if x0_norm == 0:
+        x0_norm = norm(gradient_g(xk, H, b, c))
+    
+    relative_residual = norm(gradient_g(xk, H, b, c)) / x0_norm
+    relative_residuals = []
+    points = []
+    
+    while relative_residual > tolerance and maxiter > 0:
+        maxiter -= 1
+
+        relative_residuals.append(relative_residual)
+        points.append(xk)
+
+        xk = newton_iter(xk, gradient_g(xk, H, b, c), hessian_g(xk, H, b, c))
+        relative_residual = norm(gradient_g(xk, H, b, c)) / x0_norm
+
+    return (points, relative_residuals)
index 92cf71407e1a68d9e65086ee9fe2933bd9953350..eea8e0b5b14918d435ffa2069dc6da16c4ea2a04 100644 (file)
@@ -13,12 +13,11 @@ def _C(x, c):
 
 # Calculate gradient of g in point x
 def gradient_g(x, H, b, c):
-    print _C(x,c)
     return -b + H.dot(x) + (1.0/3.0) * _C(x,c).dot(x)
 
 # Calculate hessian of g in point x
 def hessian_g(x, H, b, c):
-    return 0.5 * H.T + 0.5 * H + _C(x,c)
+    return H + _C(x,c)
 
 # Small test of the above functions
 def main():
diff --git a/main.py b/main.py
index 633d01f09abd471905ed82e5a7fa90b1d29a6233..78c24a4875dcb80d7a247a389fd7f0ed03de0813 100644 (file)
--- a/main.py
+++ b/main.py
@@ -13,30 +13,31 @@ def main():
     b = np.array([-0.3119187,  0.14508516])
     c = np.array([ 0.47736331, 1.48834978])
 
-    x0 = np.array([-2.1, 5.2])
+    x0 = np.array([-50, 50])
     
     function_values = []
     
-    alpha = 0.05
+    alpha = 0.001
+    tolerance = 0.000000001
 
-    start = time.clock()
-    optimal_points, optimal_residuals = steepest(x0, H, b, c, 0.000000001, 100000, 0)
-    stop = time.clock()
+    start = time.time()
+    optimal_points, optimal_residuals = steepest(x0, H, b, c, tolerance, 100000, 0)
+    stop = time.time()
     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()
+    start = time.time()
+    constant_points, constant_residuals = steepest(x0, H, b, c, tolerance, 100000, alpha)
+    stop = time.time()
     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()
+    start = time.time()
+    newton_points, newton_residuals = newton(x0, H, b, c, tolerance, 100000)
+    stop = time.time()
     print "newton brukte %.4f" % (stop - start)
 
-    start = time.clock()
-    nwst_points, nwst_residuals = steepestnewton(x0, H, b, c, 0.01, 0.000000001)
-    stop = time.clock()
+    start = time.time()
+    nwst_points, nwst_residuals = steepestnewton(x0, H, b, c, 0.00001, 4, tolerance)
+    stop = time.time()
     print "newton + steepest brukte %.4f" % (stop - start)
 
     f_optimal = []
@@ -85,7 +86,7 @@ def main():
     plt.plot(f_constant[:plen])
     plt.plot(f_newton[:plen])
     plt.plot(f_nwst[:plen])
-    plt.legend([r'Optimal $\alpha$', r'$\alpha$ = %.2f' % alpha, r'Newtons method', r'Steepest first, then Newton'])
+    plt.legend([r'Optimal $\alpha$', r'$\alpha$ = %.3f' % alpha, r'Newtons method', r'Steepest first, then Newton'])
 
     ax = plt.subplot(212)
     plt.title("Relative residual")
diff --git a/old.eps b/old.eps
new file mode 100644 (file)
index 0000000..62abd42
--- /dev/null
+++ b/old.eps
@@ -0,0 +1,3045 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Title: steepest.eps
+%%Creator: matplotlib version 0.99.3, http://matplotlib.sourceforge.net/
+%%CreationDate: Sun Oct  2 23:02:54 2011
+%%Orientation: portrait
+%%BoundingBox: -74 103 686 688
+%%EndComments
+%%BeginProlog
+/mpldict 8 dict def
+mpldict begin
+/m { moveto } bind def
+/l { lineto } bind def
+/r { rlineto } bind def
+/c { curveto } bind def
+/cl { closepath } bind def
+/box {
+m
+1 index 0 r
+0 exch r
+neg 0 r
+cl
+} bind def
+/clipbox {
+box
+clip
+newpath
+} bind def
+%!PS-Adobe-3.0 Resource-Font
+%%Title: DejaVu Sans
+%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain 
+%%Creator: Converted from TrueType by PPR
+25 dict begin
+/_d{bind def}bind def
+/_m{moveto}_d
+/_l{lineto}_d
+/_cl{closepath eofill}_d
+/_c{curveto}_d
+/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d
+/_e{exec}_d
+/FontName /DejaVuSans def
+/PaintType 0 def
+/FontMatrix[.001 0 0 .001 0 0]def
+/FontBBox[-1020 -414 1681 1167]def
+/FontType 3 def
+/Encoding StandardEncoding def
+/FontInfo 10 dict dup begin
+/FamilyName (DejaVu Sans) def
+/FullName (DejaVu Sans) def
+/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def
+/Weight (Book) def
+/Version (Version 2.31) def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -130 def
+/UnderlineThickness 90 def
+end readonly def
+/CharStrings 44 dict dup begin
+/space{318 0 0 0 0 0 _sc
+}_d
+/parenleft{390 0 86 -131 310 759 _sc
+310 759 _m
+266 683 234 609 213 536 _c
+191 463 181 389 181 314 _c
+181 238 191 164 213 91 _c
+234 17 266 -56 310 -131 _c
+232 -131 _l
+183 -54 146 20 122 94 _c
+98 168 86 241 86 314 _c
+86 386 98 459 122 533 _c
+146 607 182 682 232 759 _c
+310 759 _l
+_cl}_d
+/parenright{390 0 80 -131 304 759 _sc
+80 759 _m
+158 759 _l
+206 682 243 607 267 533 _c
+291 459 304 386 304 314 _c
+304 241 291 168 267 94 _c
+243 20 206 -54 158 -131 _c
+80 -131 _l
+123 -56 155 17 177 91 _c
+198 164 209 238 209 314 _c
+209 389 198 463 177 536 _c
+155 609 123 683 80 759 _c
+_cl}_d
+/comma{318 0 77 -115 220 124 _sc
+117 124 _m
+220 124 _l
+220 40 _l
+140 -115 _l
+77 -115 _l
+117 40 _l
+117 124 _l
+_cl}_d
+/hyphen{361 0 49 234 312 314 _sc
+49 314 _m
+312 314 _l
+312 234 _l
+49 234 _l
+49 314 _l
+_cl}_d
+/period{318 0 107 0 210 124 _sc
+107 124 _m
+210 124 _l
+210 0 _l
+107 0 _l
+107 124 _l
+_cl}_d
+/zero{636 0 66 -13 570 742 _sc
+318 664 _m
+267 664 229 639 203 589 _c
+177 539 165 464 165 364 _c
+165 264 177 189 203 139 _c
+229 89 267 64 318 64 _c
+369 64 407 89 433 139 _c
+458 189 471 264 471 364 _c
+471 464 458 539 433 589 _c
+407 639 369 664 318 664 _c
+318 742 _m
+399 742 461 709 505 645 _c
+548 580 570 486 570 364 _c
+570 241 548 147 505 83 _c
+461 19 399 -13 318 -13 _c
+236 -13 173 19 130 83 _c
+87 147 66 241 66 364 _c
+66 486 87 580 130 645 _c
+173 709 236 742 318 742 _c
+_cl}_d
+/one{636 0 110 0 544 729 _sc
+124 83 _m
+285 83 _l
+285 639 _l
+110 604 _l
+110 694 _l
+284 729 _l
+383 729 _l
+383 83 _l
+544 83 _l
+544 0 _l
+124 0 _l
+124 83 _l
+_cl}_d
+/two{{636 0 73 0 536 742 _sc
+192 83 _m
+536 83 _l
+536 0 _l
+73 0 _l
+73 83 _l
+110 121 161 173 226 239 _c
+290 304 331 346 348 365 _c
+380 400 402 430 414 455 _c
+426 479 433 504 433 528 _c
+433 566 419 598 392 622 _c
+365 646 330 659 286 659 _c
+255 659 222 653 188 643 _c
+154 632 117 616 78 594 _c
+78 694 _l
+118 710 155 722 189 730 _c
+223 738 255 742 284 742 _c
+359 742 419 723 464 685 _c
+509 647 532 597 532 534 _c
+532 504 526 475 515 449 _c
+504 422 484 390 454 354 _c
+446 344 420 317 376 272 _c
+332 227 271 164 192 83 _c
+_cl}_e}_d
+/three{{636 0 76 -13 556 742 _sc
+406 393 _m
+453 383 490 362 516 330 _c
+542 298 556 258 556 212 _c
+556 140 531 84 482 45 _c
+432 6 362 -13 271 -13 _c
+240 -13 208 -10 176 -4 _c
+144 1 110 10 76 22 _c
+76 117 _l
+103 101 133 89 166 81 _c
+198 73 232 69 268 69 _c
+330 69 377 81 409 105 _c
+441 129 458 165 458 212 _c
+458 254 443 288 413 312 _c
+383 336 341 349 287 349 _c
+202 349 _l
+202 430 _l
+291 430 _l
+339 430 376 439 402 459 _c
+428 478 441 506 441 543 _c
+441 580 427 609 401 629 _c
+374 649 336 659 287 659 _c
+260 659 231 656 200 650 _c
+169 644 135 635 98 623 _c
+98 711 _l
+135 721 170 729 203 734 _c
+235 739 266 742 296 742 _c
+}_e{370 742 429 725 473 691 _c
+517 657 539 611 539 553 _c
+539 513 527 479 504 451 _c
+481 423 448 403 406 393 _c
+_cl}_e}_d
+/four{636 0 49 0 580 729 _sc
+378 643 _m
+129 254 _l
+378 254 _l
+378 643 _l
+352 729 _m
+476 729 _l
+476 254 _l
+580 254 _l
+580 172 _l
+476 172 _l
+476 0 _l
+378 0 _l
+378 172 _l
+49 172 _l
+49 267 _l
+352 729 _l
+_cl}_d
+/five{{636 0 77 -13 549 729 _sc
+108 729 _m
+495 729 _l
+495 646 _l
+198 646 _l
+198 467 _l
+212 472 227 476 241 478 _c
+255 480 270 482 284 482 _c
+365 482 429 459 477 415 _c
+525 370 549 310 549 234 _c
+549 155 524 94 475 51 _c
+426 8 357 -13 269 -13 _c
+238 -13 207 -10 175 -6 _c
+143 -1 111 6 77 17 _c
+77 116 _l
+106 100 136 88 168 80 _c
+199 72 232 69 267 69 _c
+323 69 368 83 401 113 _c
+433 143 450 183 450 234 _c
+450 284 433 324 401 354 _c
+368 384 323 399 267 399 _c
+241 399 214 396 188 390 _c
+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
+732 372 _l
+106 372 _l
+106 454 _l
+106 255 _m
+732 255 _l
+732 172 _l
+106 172 _l
+106 255 _l
+_cl}_d
+/F{575 0 98 0 517 729 _sc
+98 729 _m
+517 729 _l
+517 646 _l
+197 646 _l
+197 431 _l
+486 431 _l
+486 348 _l
+197 348 _l
+197 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/I{295 0 98 0 197 729 _sc
+98 729 _m
+197 729 _l
+197 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/N{748 0 98 0 650 729 _sc
+98 729 _m
+231 729 _l
+554 119 _l
+554 729 _l
+650 729 _l
+650 0 _l
+517 0 _l
+194 610 _l
+194 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/O{787 0 56 -13 731 742 _sc
+394 662 _m
+322 662 265 635 223 582 _c
+181 528 160 456 160 364 _c
+160 272 181 199 223 146 _c
+265 92 322 66 394 66 _c
+465 66 522 92 564 146 _c
+606 199 627 272 627 364 _c
+627 456 606 528 564 582 _c
+522 635 465 662 394 662 _c
+394 742 _m
+496 742 577 707 639 639 _c
+700 571 731 479 731 364 _c
+731 248 700 157 639 89 _c
+577 21 496 -13 394 -13 _c
+291 -13 209 21 148 89 _c
+86 157 56 248 56 364 _c
+56 479 86 571 148 639 _c
+209 707 291 742 394 742 _c
+_cl}_d
+/R{{695 0 98 0 666 729 _sc
+444 342 _m
+465 334 486 319 506 296 _c
+526 272 546 240 566 199 _c
+666 0 _l
+560 0 _l
+467 187 _l
+443 235 419 268 397 284 _c
+374 300 343 308 304 308 _c
+197 308 _l
+197 0 _l
+98 0 _l
+98 729 _l
+321 729 _l
+404 729 466 711 507 677 _c
+548 642 569 589 569 519 _c
+569 473 558 434 537 404 _c
+515 374 484 353 444 342 _c
+197 648 _m
+197 389 _l
+321 389 _l
+368 389 404 400 428 422 _c
+452 444 465 476 465 519 _c
+465 561 452 593 428 615 _c
+404 637 368 648 321 648 _c
+197 648 _l
+_cl}_e}_d
+/S{{635 0 66 -13 579 742 _sc
+535 705 _m
+535 609 _l
+497 627 462 640 429 649 _c
+395 657 363 662 333 662 _c
+279 662 237 651 208 631 _c
+179 610 165 580 165 542 _c
+165 510 174 485 194 469 _c
+213 452 250 439 304 429 _c
+364 417 _l
+437 403 491 378 526 343 _c
+561 307 579 260 579 201 _c
+579 130 555 77 508 41 _c
+460 5 391 -13 300 -13 _c
+265 -13 228 -9 189 -2 _c
+150 5 110 16 69 32 _c
+69 134 _l
+109 111 148 94 186 83 _c
+224 71 262 66 300 66 _c
+356 66 399 77 430 99 _c
+460 121 476 152 476 194 _c
+476 230 465 258 443 278 _c
+421 298 385 313 335 323 _c
+275 335 _l
+201 349 148 372 115 404 _c
+82 435 66 478 66 534 _c
+66 598 88 649 134 686 _c
+179 723 242 742 322 742 _c
+}_e{356 742 390 739 426 733 _c
+461 727 497 717 535 705 _c
+_cl}_e}_d
+/a{{613 0 60 -13 522 560 _sc
+343 275 _m
+270 275 220 266 192 250 _c
+164 233 150 205 150 165 _c
+150 133 160 107 181 89 _c
+202 70 231 61 267 61 _c
+317 61 357 78 387 114 _c
+417 149 432 196 432 255 _c
+432 275 _l
+343 275 _l
+522 312 _m
+522 0 _l
+432 0 _l
+432 83 _l
+411 49 385 25 355 10 _c
+325 -5 287 -13 243 -13 _c
+187 -13 142 2 109 33 _c
+76 64 60 106 60 159 _c
+60 220 80 266 122 298 _c
+163 329 224 345 306 345 _c
+432 345 _l
+432 354 _l
+432 395 418 427 391 450 _c
+364 472 326 484 277 484 _c
+245 484 215 480 185 472 _c
+155 464 127 453 100 439 _c
+100 522 _l
+}_e{132 534 164 544 195 550 _c
+226 556 256 560 286 560 _c
+365 560 424 539 463 498 _c
+502 457 522 395 522 312 _c
+_cl}_e}_d
+/c{{550 0 55 -13 488 560 _sc
+488 526 _m
+488 442 _l
+462 456 437 466 411 473 _c
+385 480 360 484 334 484 _c
+276 484 230 465 198 428 _c
+166 391 150 339 150 273 _c
+150 206 166 154 198 117 _c
+230 80 276 62 334 62 _c
+360 62 385 65 411 72 _c
+437 79 462 90 488 104 _c
+488 21 _l
+462 9 436 0 410 -5 _c
+383 -10 354 -13 324 -13 _c
+242 -13 176 12 128 64 _c
+79 115 55 185 55 273 _c
+55 362 79 432 128 483 _c
+177 534 244 560 330 560 _c
+358 560 385 557 411 551 _c
+437 545 463 537 488 526 _c
+_cl}_e}_d
+/d{{635 0 55 -13 544 760 _sc
+454 464 _m
+454 760 _l
+544 760 _l
+544 0 _l
+454 0 _l
+454 82 _l
+435 49 411 25 382 10 _c
+353 -5 319 -13 279 -13 _c
+213 -13 159 13 117 65 _c
+75 117 55 187 55 273 _c
+55 359 75 428 117 481 _c
+159 533 213 560 279 560 _c
+319 560 353 552 382 536 _c
+411 520 435 496 454 464 _c
+148 273 _m
+148 207 161 155 188 117 _c
+215 79 253 61 301 61 _c
+348 61 385 79 413 117 _c
+440 155 454 207 454 273 _c
+454 339 440 390 413 428 _c
+385 466 348 485 301 485 _c
+253 485 215 466 188 428 _c
+161 390 148 339 148 273 _c
+_cl}_e}_d
+/e{{615 0 55 -13 562 560 _sc
+562 296 _m
+562 252 _l
+149 252 _l
+153 190 171 142 205 110 _c
+238 78 284 62 344 62 _c
+378 62 412 66 444 74 _c
+476 82 509 95 541 113 _c
+541 28 _l
+509 14 476 3 442 -3 _c
+408 -9 373 -13 339 -13 _c
+251 -13 182 12 131 62 _c
+80 112 55 181 55 268 _c
+55 357 79 428 127 481 _c
+175 533 241 560 323 560 _c
+397 560 455 536 498 489 _c
+540 441 562 377 562 296 _c
+472 322 _m
+471 371 457 410 431 440 _c
+404 469 368 484 324 484 _c
+274 484 234 469 204 441 _c
+174 413 156 373 152 322 _c
+472 322 _l
+_cl}_e}_d
+/f{352 0 23 0 371 760 _sc
+371 760 _m
+371 685 _l
+285 685 _l
+253 685 230 678 218 665 _c
+205 652 199 629 199 595 _c
+199 547 _l
+347 547 _l
+347 477 _l
+199 477 _l
+199 0 _l
+109 0 _l
+109 477 _l
+23 477 _l
+23 547 _l
+109 547 _l
+109 585 _l
+109 645 123 690 151 718 _c
+179 746 224 760 286 760 _c
+371 760 _l
+_cl}_d
+/g{{635 0 55 -207 544 560 _sc
+454 280 _m
+454 344 440 395 414 431 _c
+387 467 349 485 301 485 _c
+253 485 215 467 188 431 _c
+161 395 148 344 148 280 _c
+148 215 161 165 188 129 _c
+215 93 253 75 301 75 _c
+349 75 387 93 414 129 _c
+440 165 454 215 454 280 _c
+544 68 _m
+544 -24 523 -93 482 -139 _c
+440 -184 377 -207 292 -207 _c
+260 -207 231 -204 203 -200 _c
+175 -195 147 -188 121 -178 _c
+121 -91 _l
+147 -105 173 -115 199 -122 _c
+225 -129 251 -133 278 -133 _c
+336 -133 380 -117 410 -87 _c
+439 -56 454 -10 454 52 _c
+454 96 _l
+435 64 411 40 382 24 _c
+353 8 319 0 279 0 _c
+211 0 157 25 116 76 _c
+75 127 55 195 55 280 _c
+55 364 75 432 116 483 _c
+157 534 211 560 279 560 _c
+}_e{319 560 353 552 382 536 _c
+411 520 435 496 454 464 _c
+454 547 _l
+544 547 _l
+544 68 _l
+_cl}_e}_d
+/h{634 0 91 0 549 760 _sc
+549 330 _m
+549 0 _l
+459 0 _l
+459 327 _l
+459 379 448 417 428 443 _c
+408 469 378 482 338 482 _c
+289 482 251 466 223 435 _c
+195 404 181 362 181 309 _c
+181 0 _l
+91 0 _l
+91 760 _l
+181 760 _l
+181 462 _l
+202 494 227 519 257 535 _c
+286 551 320 560 358 560 _c
+420 560 468 540 500 501 _c
+532 462 549 405 549 330 _c
+_cl}_d
+/i{278 0 94 0 184 760 _sc
+94 547 _m
+184 547 _l
+184 0 _l
+94 0 _l
+94 547 _l
+94 760 _m
+184 760 _l
+184 646 _l
+94 646 _l
+94 760 _l
+_cl}_d
+/l{278 0 94 0 184 760 _sc
+94 760 _m
+184 760 _l
+184 0 _l
+94 0 _l
+94 760 _l
+_cl}_d
+/m{{974 0 91 0 889 560 _sc
+520 442 _m
+542 482 569 511 600 531 _c
+631 550 668 560 711 560 _c
+767 560 811 540 842 500 _c
+873 460 889 403 889 330 _c
+889 0 _l
+799 0 _l
+799 327 _l
+799 379 789 418 771 444 _c
+752 469 724 482 686 482 _c
+639 482 602 466 575 435 _c
+548 404 535 362 535 309 _c
+535 0 _l
+445 0 _l
+445 327 _l
+445 379 435 418 417 444 _c
+398 469 369 482 331 482 _c
+285 482 248 466 221 435 _c
+194 404 181 362 181 309 _c
+181 0 _l
+91 0 _l
+91 547 _l
+181 547 _l
+181 462 _l
+201 495 226 520 255 536 _c
+283 552 317 560 357 560 _c
+397 560 430 550 458 530 _c
+486 510 506 480 520 442 _c
+}_e{_cl}_e}_d
+/n{634 0 91 0 549 560 _sc
+549 330 _m
+549 0 _l
+459 0 _l
+459 327 _l
+459 379 448 417 428 443 _c
+408 469 378 482 338 482 _c
+289 482 251 466 223 435 _c
+195 404 181 362 181 309 _c
+181 0 _l
+91 0 _l
+91 547 _l
+181 547 _l
+181 462 _l
+202 494 227 519 257 535 _c
+286 551 320 560 358 560 _c
+420 560 468 540 500 501 _c
+532 462 549 405 549 330 _c
+_cl}_d
+/o{612 0 55 -13 557 560 _sc
+306 484 _m
+258 484 220 465 192 427 _c
+164 389 150 338 150 273 _c
+150 207 163 156 191 118 _c
+219 80 257 62 306 62 _c
+354 62 392 80 420 118 _c
+448 156 462 207 462 273 _c
+462 337 448 389 420 427 _c
+392 465 354 484 306 484 _c
+306 560 _m
+384 560 445 534 490 484 _c
+534 433 557 363 557 273 _c
+557 183 534 113 490 63 _c
+445 12 384 -13 306 -13 _c
+227 -13 165 12 121 63 _c
+77 113 55 183 55 273 _c
+55 363 77 433 121 484 _c
+165 534 227 560 306 560 _c
+_cl}_d
+/p{{635 0 91 -207 580 560 _sc
+181 82 _m
+181 -207 _l
+91 -207 _l
+91 547 _l
+181 547 _l
+181 464 _l
+199 496 223 520 252 536 _c
+281 552 316 560 356 560 _c
+422 560 476 533 518 481 _c
+559 428 580 359 580 273 _c
+580 187 559 117 518 65 _c
+476 13 422 -13 356 -13 _c
+316 -13 281 -5 252 10 _c
+223 25 199 49 181 82 _c
+487 273 _m
+487 339 473 390 446 428 _c
+418 466 381 485 334 485 _c
+286 485 249 466 222 428 _c
+194 390 181 339 181 273 _c
+181 207 194 155 222 117 _c
+249 79 286 61 334 61 _c
+381 61 418 79 446 117 _c
+473 155 487 207 487 273 _c
+_cl}_e}_d
+/r{411 0 91 0 411 560 _sc
+411 463 _m
+401 469 390 473 378 476 _c
+366 478 353 480 339 480 _c
+288 480 249 463 222 430 _c
+194 397 181 350 181 288 _c
+181 0 _l
+91 0 _l
+91 547 _l
+181 547 _l
+181 462 _l
+199 495 224 520 254 536 _c
+284 552 321 560 365 560 _c
+371 560 378 559 386 559 _c
+393 558 401 557 411 555 _c
+411 463 _l
+_cl}_d
+/s{{521 0 54 -13 472 560 _sc
+443 531 _m
+443 446 _l
+417 458 391 468 364 475 _c
+336 481 308 485 279 485 _c
+234 485 200 478 178 464 _c
+156 450 145 430 145 403 _c
+145 382 153 366 169 354 _c
+185 342 217 330 265 320 _c
+296 313 _l
+360 299 405 279 432 255 _c
+458 230 472 195 472 151 _c
+472 100 452 60 412 31 _c
+372 1 316 -13 246 -13 _c
+216 -13 186 -10 154 -5 _c
+122 0 89 8 54 20 _c
+54 113 _l
+87 95 120 82 152 74 _c
+184 65 216 61 248 61 _c
+290 61 323 68 346 82 _c
+368 96 380 117 380 144 _c
+380 168 371 187 355 200 _c
+339 213 303 226 247 238 _c
+216 245 _l
+160 257 119 275 95 299 _c
+70 323 58 356 58 399 _c
+58 450 76 490 112 518 _c
+148 546 200 560 268 560 _c
+}_e{301 560 332 557 362 552 _c
+391 547 418 540 443 531 _c
+_cl}_e}_d
+/t{392 0 27 0 368 702 _sc
+183 702 _m
+183 547 _l
+368 547 _l
+368 477 _l
+183 477 _l
+183 180 _l
+183 135 189 106 201 94 _c
+213 81 238 75 276 75 _c
+368 75 _l
+368 0 _l
+276 0 _l
+206 0 158 13 132 39 _c
+106 65 93 112 93 180 _c
+93 477 _l
+27 477 _l
+27 547 _l
+93 547 _l
+93 702 _l
+183 702 _l
+_cl}_d
+/u{634 0 85 -13 543 560 _sc
+85 216 _m
+85 547 _l
+175 547 _l
+175 219 _l
+175 167 185 129 205 103 _c
+225 77 255 64 296 64 _c
+344 64 383 79 411 110 _c
+439 141 453 183 453 237 _c
+453 547 _l
+543 547 _l
+543 0 _l
+453 0 _l
+453 84 _l
+431 50 405 26 377 10 _c
+348 -5 315 -13 277 -13 _c
+214 -13 166 6 134 45 _c
+101 83 85 140 85 216 _c
+_cl}_d
+/v{592 0 30 0 562 547 _sc
+30 547 _m
+125 547 _l
+296 88 _l
+467 547 _l
+562 547 _l
+357 0 _l
+235 0 _l
+30 547 _l
+_cl}_d
+/w{818 0 42 0 776 547 _sc
+42 547 _m
+132 547 _l
+244 120 _l
+356 547 _l
+462 547 _l
+574 120 _l
+686 547 _l
+776 547 _l
+633 0 _l
+527 0 _l
+409 448 _l
+291 0 _l
+185 0 _l
+42 547 _l
+_cl}_d
+/x{592 0 29 0 559 547 _sc
+549 547 _m
+351 281 _l
+559 0 _l
+453 0 _l
+294 215 _l
+135 0 _l
+29 0 _l
+241 286 _l
+47 547 _l
+153 547 _l
+298 352 _l
+443 547 _l
+549 547 _l
+_cl}_d
+/alpha{{659 0 55 -11 611 559 _sc
+413 254 _m
+392 367 _l
+377 444 341 483 283 483 _c
+239 483 207 465 188 429 _c
+162 384 150 332 150 273 _c
+150 201 162 148 187 114 _c
+211 79 243 62 283 62 _c
+326 62 359 96 383 166 _c
+413 254 _l
+463 404 _m
+512 547 _l
+592 547 _l
+492 250 _l
+511 144 _l
+514 128 521 113 533 100 _c
+546 84 558 76 568 76 _c
+611 76 _l
+611 0 _l
+558 0 _l
+}_e{527 0 498 13 471 41 _c
+457 55 448 76 442 104 _c
+427 68 404 36 374 8 _c
+360 -4 329 -11 283 -11 _c
+206 -11 149 13 112 62 _c
+74 113 55 183 55 273 _c
+55 369 75 439 117 484 _c
+163 534 218 559 283 559 _c
+384 559 444 507 463 404 _c
+_cl}_e}_d
+/minus{838 0 106 272 732 355 _sc
+106 355 _m
+732 355 _l
+732 272 _l
+106 272 _l
+106 355 _l
+_cl}_d
+end readonly def
+
+/BuildGlyph
+ {exch begin
+ CharStrings exch
+ 2 copy known not{pop /.notdef}if
+ true 3 1 roll get exec
+ end}_d
+
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+}_d
+
+FontName currentdict end definefont pop
+end
+%%EndProlog
+mpldict begin
+-74.25 103.95 translate
+760.5 584.1 0 0 clipbox
+1.000 setlinewidth
+1 setlinejoin
+2 setlinecap
+[] 0 setdash
+1.000 setgray
+gsave
+0 0 m
+760.5 0 l
+760.5 584.1 l
+0 584.1 l
+0 0 l
+gsave
+fill
+grestore
+stroke
+grestore
+gsave
+95.0625 330.99 m
+684.45 330.99 l
+684.45 525.69 l
+95.0625 525.69 l
+95.0625 330.99 l
+fill
+grestore
+0.000 0.000 1.000 setrgbcolor
+gsave
+589.4 194.7 95.06 331 clipbox
+95.0625 517.035 m
+137.162 359.459 l
+179.261 358.965 l
+221.36 358.845 l
+263.459 358.806 l
+305.558 358.788 l
+347.657 358.779 l
+389.756 358.774 l
+431.855 358.771 l
+473.954 358.769 l
+516.054 358.767 l
+558.153 358.766 l
+600.252 358.766 l
+642.351 358.765 l
+684.45 358.765 l
+stroke
+grestore
+0.000 0.500 0.000 setrgbcolor
+gsave
+589.4 194.7 95.06 331 clipbox
+95.0625 517.035 m
+137.162 366.325 l
+179.261 363.992 l
+221.36 362.491 l
+263.459 361.476 l
+305.558 360.766 l
+347.657 360.258 l
+389.756 359.889 l
+431.855 359.617 l
+473.954 359.414 l
+516.054 359.262 l
+558.153 359.148 l
+600.252 359.062 l
+642.351 358.996 l
+684.45 358.946 l
+stroke
+grestore
+1.000 0.000 0.000 setrgbcolor
+gsave
+589.4 194.7 95.06 331 clipbox
+95.0625 517.035 m
+137.162 386.584 l
+179.261 363.764 l
+221.36 359.817 l
+263.459 359.007 l
+305.558 358.83 l
+347.657 358.785 l
+389.756 358.768 l
+431.855 358.764 l
+473.954 358.764 l
+516.054 358.764 l
+stroke
+grestore
+0.000 0.750 0.750 setrgbcolor
+gsave
+589.4 194.7 95.06 331 clipbox
+95.0625 517.035 m
+137.162 359.459 l
+179.261 358.965 l
+221.36 358.8 l
+263.459 358.769 l
+305.558 358.764 l
+347.657 358.764 l
+389.756 358.764 l
+stroke
+grestore
+0.500 setlinewidth
+0 setlinecap
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+95.0625 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+95.0625 525.69 o
+grestore
+/DejaVuSans findfont
+12.000 scalefont
+setfont
+gsave
+92.039062 317.911875 translate
+0.000000 rotate
+0.000000 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+179.261 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+179.261 525.69 o
+grestore
+gsave
+176.479464 318.083750 translate
+0.000000 rotate
+0.000000 0.000000 m /two glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+263.459 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+263.459 525.69 o
+grestore
+gsave
+260.271429 318.240000 translate
+0.000000 rotate
+0.000000 0.000000 m /four glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+347.657 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+347.657 525.69 o
+grestore
+gsave
+344.641518 317.911875 translate
+0.000000 rotate
+0.000000 0.171875 m /six glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+431.855 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+431.855 525.69 o
+grestore
+gsave
+428.855357 317.911875 translate
+0.000000 rotate
+0.000000 0.171875 m /eight glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+516.054 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+516.054 525.69 o
+grestore
+gsave
+509.467634 317.911875 translate
+0.000000 rotate
+0.000000 0.171875 m /one glyphshow
+7.634766 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+600.252 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+600.252 525.69 o
+grestore
+gsave
+593.868973 318.083750 translate
+0.000000 rotate
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /two glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+684.45 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+684.45 525.69 o
+grestore
+gsave
+677.801563 318.240000 translate
+0.000000 rotate
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /four glyphshow
+grestore
+365.389 303.615 m
+0 0.172 rmoveto
+(Iteration) show
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 330.99 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 330.99 o
+grestore
+gsave
+67.781250 326.450938 translate
+0.000000 rotate
+0.000000 0.171875 m /minus glyphshow
+10.054688 0.171875 m /two glyphshow
+17.689453 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 358.804 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 358.804 o
+grestore
+gsave
+85.015625 354.265223 translate
+0.000000 rotate
+0.000000 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 386.619 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 386.619 o
+grestore
+gsave
+77.453125 382.079509 translate
+0.000000 rotate
+0.000000 0.171875 m /two glyphshow
+7.634766 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 414.433 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 414.433 o
+grestore
+gsave
+77.171875 409.893795 translate
+0.000000 rotate
+0.000000 0.171875 m /four glyphshow
+7.634766 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 442.247 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 442.247 o
+grestore
+gsave
+77.421875 437.708080 translate
+0.000000 rotate
+0.000000 0.171875 m /six glyphshow
+7.634766 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 470.061 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 470.061 o
+grestore
+gsave
+77.390625 465.522366 translate
+0.000000 rotate
+0.000000 0.171875 m /eight glyphshow
+7.634766 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 497.876 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 497.876 o
+grestore
+gsave
+70.250000 493.336652 translate
+0.000000 rotate
+0.000000 0.171875 m /one glyphshow
+7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 525.69 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 525.69 o
+grestore
+gsave
+70.250000 521.150938 translate
+0.000000 rotate
+0.000000 0.171875 m /one glyphshow
+7.634766 0.171875 m /two glyphshow
+15.269531 0.171875 m /zero glyphshow
+grestore
+62.781 417.129 m
+gsave
+90 rotate
+0 2.5 rmoveto
+(g\(x\)) show
+grestore
+1.000 setlinewidth
+2 setlinecap
+gsave
+95.0625 525.69 m
+684.45 525.69 l
+stroke
+grestore
+gsave
+684.45 330.99 m
+684.45 525.69 l
+stroke
+grestore
+gsave
+95.0625 330.99 m
+684.45 330.99 l
+stroke
+grestore
+gsave
+95.0625 330.99 m
+95.0625 525.69 l
+stroke
+grestore
+/DejaVuSans findfont
+14.400 scalefont
+setfont
+337.616 530.69 m
+0 0.203 rmoveto
+(Function value) show
+gsave
+429.066 430.37 m
+677.25 430.37 l
+677.25 518.49 l
+429.066 518.49 l
+429.066 430.37 l
+cl
+gsave
+1.000 setgray
+fill
+grestore
+stroke
+grestore
+0.000 0.000 1.000 setrgbcolor
+gsave
+439.146 506.77 m
+459.306 506.77 l
+stroke
+grestore
+0.000 setgray
+gsave
+475.146250 498.730000 translate
+0.000000 rotate
+/DejaVuSans findfont
+14.4 scalefont
+setfont
+0.000000 3.359375 moveto
+/O glyphshow
+
+11.326996 3.359375 moveto
+/p glyphshow
+
+20.461670 3.359375 moveto
+/t glyphshow
+
+26.104080 3.359375 moveto
+/i glyphshow
+
+30.102249 3.359375 moveto
+/m glyphshow
+
+44.120453 3.359375 moveto
+/a glyphshow
+
+52.938919 3.359375 moveto
+/l glyphshow
+
+56.937088 3.359375 moveto
+/space glyphshow
+
+61.511444 3.359375 moveto
+/alpha glyphshow
+
+
+grestore
+0.000 0.500 0.000 setrgbcolor
+gsave
+439.146 485.57 m
+459.306 485.57 l
+stroke
+grestore
+0.000 setgray
+gsave
+475.146250 479.530000 translate
+0.000000 rotate
+/DejaVuSans findfont
+14.4 scalefont
+setfont
+0.000000 1.609375 moveto
+/alpha glyphshow
+
+9.486008 1.609375 moveto
+/space glyphshow
+
+14.060364 1.609375 moveto
+/equal glyphshow
+
+26.118134 1.609375 moveto
+/space glyphshow
+
+30.692490 1.609375 moveto
+/zero glyphshow
+
+39.848236 1.609375 moveto
+/period glyphshow
+
+44.422592 1.609375 moveto
+/zero glyphshow
+
+53.578339 1.609375 moveto
+/five glyphshow
+
+
+grestore
+1.000 0.000 0.000 setrgbcolor
+gsave
+439.146 464.823 m
+459.306 464.823 l
+stroke
+grestore
+0.000 setgray
+475.146 459.58 m
+0 0.203 rmoveto
+(Newtons method) show
+0.000 0.750 0.750 setrgbcolor
+gsave
+439.146 444.076 m
+459.306 444.076 l
+stroke
+grestore
+0.000 setgray
+475.146 436.13 m
+0 2.906 rmoveto
+(Steepest first, then Newton) show
+gsave
+95.0625 58.41 m
+684.45 58.41 l
+684.45 253.11 l
+95.0625 253.11 l
+95.0625 58.41 l
+1.000 setgray
+fill
+grestore
+0.000 0.000 1.000 setrgbcolor
+gsave
+589.4 194.7 95.06 58.41 clipbox
+95.0625 253.11 m
+137.162 203.279 l
+179.261 194.654 l
+221.36 186.904 l
+263.459 181.081 l
+305.558 177.713 l
+347.657 172.65 l
+389.756 171.157 l
+431.855 166.43 l
+473.954 165.939 l
+516.054 161.396 l
+558.153 161.508 l
+600.252 157.077 l
+642.351 157.579 l
+684.45 153.222 l
+stroke
+grestore
+0.000 0.500 0.000 setrgbcolor
+gsave
+589.4 194.7 95.06 58.41 clipbox
+95.0625 253.11 m
+137.162 222.717 l
+179.261 219.974 l
+221.36 217.561 l
+263.459 215.364 l
+305.558 213.317 l
+347.657 211.377 l
+389.756 209.518 l
+431.855 207.718 l
+473.954 205.963 l
+516.054 204.243 l
+558.153 202.551 l
+600.252 200.881 l
+642.351 199.228 l
+684.45 197.59 l
+stroke
+grestore
+1.000 0.000 0.000 setrgbcolor
+gsave
+589.4 194.7 95.06 58.41 clipbox
+95.0625 253.11 m
+137.162 238.17 l
+179.261 222.462 l
+221.36 207.853 l
+263.459 193.505 l
+305.558 179.763 l
+347.657 167.399 l
+389.756 156.604 l
+431.855 146.436 l
+473.954 120.135 l
+516.054 70.3295 l
+stroke
+grestore
+0.000 0.750 0.750 setrgbcolor
+gsave
+589.4 194.7 95.06 58.41 clipbox
+95.0625 253.11 m
+137.162 203.279 l
+179.261 194.654 l
+221.36 178.69 l
+263.459 162.978 l
+305.558 144.303 l
+347.657 115.514 l
+389.756 61.2154 l
+stroke
+grestore
+0.500 setlinewidth
+0 setlinecap
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+95.0625 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+95.0625 253.11 o
+grestore
+/DejaVuSans findfont
+12.000 scalefont
+setfont
+gsave
+92.039062 45.331875 translate
+0.000000 rotate
+0.000000 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+179.261 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+179.261 253.11 o
+grestore
+gsave
+176.479464 45.503750 translate
+0.000000 rotate
+0.000000 0.000000 m /two glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+263.459 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+263.459 253.11 o
+grestore
+gsave
+260.271429 45.660000 translate
+0.000000 rotate
+0.000000 0.000000 m /four glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+347.657 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+347.657 253.11 o
+grestore
+gsave
+344.641518 45.331875 translate
+0.000000 rotate
+0.000000 0.171875 m /six glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+431.855 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+431.855 253.11 o
+grestore
+gsave
+428.855357 45.331875 translate
+0.000000 rotate
+0.000000 0.171875 m /eight glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+516.054 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+516.054 253.11 o
+grestore
+gsave
+509.467634 45.331875 translate
+0.000000 rotate
+0.000000 0.171875 m /one glyphshow
+7.634766 0.171875 m /zero glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+600.252 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+600.252 253.11 o
+grestore
+gsave
+593.868973 45.503750 translate
+0.000000 rotate
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /two glyphshow
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 4 l
+stroke
+grestore
+} bind def
+684.45 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+0 -4 l
+stroke
+grestore
+} bind def
+684.45 253.11 o
+grestore
+gsave
+677.801563 45.660000 translate
+0.000000 rotate
+0.000000 0.000000 m /one glyphshow
+7.634766 0.000000 m /four glyphshow
+grestore
+365.389 31.035 m
+0 0.172 rmoveto
+(Iteration) show
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 58.41 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 58.41 o
+grestore
+gsave
+66.062500 50.910000 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
+/seven glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 86.2243 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 86.2243 o
+grestore
+gsave
+66.062500 78.724286 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
+/six glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 114.039 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 114.039 o
+grestore
+gsave
+66.062500 106.538571 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
+/five glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 141.853 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 141.853 o
+grestore
+gsave
+66.062500 134.352857 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
+/four glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 169.667 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 169.667 o
+grestore
+gsave
+66.062500 162.167143 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
+/three glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 197.481 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 197.481 o
+grestore
+gsave
+66.062500 189.981429 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 {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 225.296 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 225.296 o
+grestore
+gsave
+66.062500 217.795714 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 {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 253.11 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 253.11 o
+grestore
+gsave
+69.062500 245.610000 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 {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 66.7829 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 66.7829 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 75.1559 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 75.1559 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 80.0537 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 80.0537 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 83.5288 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 83.5288 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 94.5972 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 94.5972 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 102.97 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 102.97 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 107.868 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 107.868 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 111.343 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 111.343 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 122.412 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 122.412 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 130.784 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 130.784 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 135.682 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 135.682 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 139.157 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 139.157 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 150.226 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 150.226 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 158.599 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 158.599 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 163.497 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 163.497 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 166.972 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 166.972 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 178.04 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 178.04 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 186.413 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 186.413 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 191.311 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 191.311 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 194.786 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 194.786 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 205.854 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 205.854 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 214.227 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 214.227 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 219.125 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 219.125 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 222.6 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 222.6 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 233.669 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 233.669 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 242.042 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 242.042 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 246.939 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 246.939 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 250.415 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 250.415 o
+grestore
+61.062 106.401 m
+gsave
+90 rotate
+0 0.172 rmoveto
+(Relative residual) show
+grestore
+1.000 setlinewidth
+2 setlinecap
+gsave
+95.0625 253.11 m
+684.45 253.11 l
+stroke
+grestore
+gsave
+684.45 58.41 m
+684.45 253.11 l
+stroke
+grestore
+gsave
+95.0625 58.41 m
+684.45 58.41 l
+stroke
+grestore
+gsave
+95.0625 58.41 m
+95.0625 253.11 l
+stroke
+grestore
+/DejaVuSans findfont
+14.400 scalefont
+setfont
+330.686 258.11 m
+0 0.203 rmoveto
+(Relative residual) show
+
+end
+showpage
index 6bd3f4a800eb213abb03fe98dc5d72025a64c54d..b7ab5af4404147a4d31db026aeb3cd05b7550df5 100644 (file)
@@ -36,9 +36,7 @@
 \r
 \title{Semester Project 1 in TMA4215}\r
 \author{\r
-       10012 \\\r
-       10023 \\\r
-       10056\r
+       Candidate numbers: 10012, 10023, 10056\r
 }\r
 \r
 \maketitle\r
@@ -56,9 +54,10 @@ ABSTRACTABSTBSSTRACTABSTRACTABSTRACT
 %                                %\r
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
 \section{Resultater}\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
+This project explores how one can approximate the solution to a certain type of\r
+minimization problems. The function considered takes in a symmetric positive\r
+definite matrix, and two vectors. For this purpose we used the following\r
+randomly generated data:\r
 \begin{equation}\r
   H = \r
   \begin{bmatrix}\r
@@ -84,8 +83,8 @@ generated positive numbers from a uniform distribution over $(0, 3]$
 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
+are square roots of positive numbers from the same distribution. The matrix $H\r
+= U^{T}U$ is then symmetric positive definite.\r
 \r
 The function analyzed in this project was\r
 \begin{equation}\r
@@ -111,12 +110,12 @@ Consider the Hessian $\nabla^{2}g(\mathbf{x})$, and any vector $\mathbf{v} \in
 \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}H\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
+We already know H is positive definite, so $\mathbf{v}^{T}H\mathbf{v} > 0$. \r
 Since $C(\mathbf{x})$ only has positive entries, we easily see that\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\r
 that the Hessian, $\nabla^{2}g(\mathbf{x})$, is positive definite.\r
@@ -124,21 +123,24 @@ that the Hessian, $\nabla^{2}g(\mathbf{x})$, is positive definite.
 \begin{figure}[htb]\r
   \centering\r
   \includegraphics[width=0.9\textwidth]{backup}\r
-  \caption{Plot of relative residual and function values for iterations of the\r
-  steepest descent method with optimal $\alpha$} \label{fig:fn_resid}\r
+  \caption{\sf Plot of relative residual and function values for iterations of the\r
+  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\r
-  descent method, both with optimal and constant $\alpha$} \label{fig:surface}\r
+  \caption{\sf Surface plot of function with points showing iteration of steepest\r
+  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
+  \mathbf{r}'(t) = -\nabla g\left(\mathbf{r}(t)\right)\text{,  } \mathbf{r}(0) =\r
+  \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
@@ -157,17 +159,17 @@ To find the optimal step length, $\alpha^*$, we solve the equation
   \frac{\partial}{\partial\r
     \mathbf{\alpha}}g\left(\mathbf{x}+\alpha\mathbf{u}\right) &=& 0, \text{where  }\r
     \mathbf{u} = -\nabla g(\mathbf{x} )  \nonumber \\\r
-  &\Updownarrow& \nonumber \\\r
+  &\Downarrow& \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
+for $\alpha$. Where $A$, $B$, $C$, and $D$ are 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
-Deriving the polynomial results in:\r
+Differentiating the polynomial results in:\r
 \begin{eqnarray}\r
   \frac{\partial^2}{\partial \alpha^2}\left(g\left(\mathbf{x} +\r
     \alpha\mathbf{u}\right)\right) &=& \mathbf{u}^T H \mathbf{u} + \mathbf{u}^T\r
@@ -175,13 +177,38 @@ Deriving the polynomial results in:
     C\left(\mathbf{x}\right)\right]\mathbf{u} + 2\mathbf{x}^T\r
     C\left(\mathbf{u}\right) \mathbf{u}\alpha \nonumber \\\r
   &=& \mathbf{u}^T H \mathbf{u} + \mathbf{u}^T C\left(\mathbf{x} +\r
-    \alpha\mathbf{u}\right) \nonumber \\\r
+    \alpha\mathbf{u}\right)\mathbf{u} \nonumber \\\r
   &=& \mathbf{u}^T\nabla^2 g\left(\mathbf{x} + \alpha\mathbf{u}\right)\mathbf{u}.\r
 \end{eqnarray}\r
 From this we see that the polynomial \eqref{eq:poly} is monotonically increasing\r
 and therefore only has one real zero. This is the zero we want to use as our\r
-optimal step length.\r
-\r
+optimal step length. This is implemented in the Python code below.\r
 \lstinputlisting[language=Python]{bj_optimal.py}\r
 \r
+The Newton method was also implemented to solve $\nabla g\left(\mathbf{x}^*\right)\r
+= 0$. The Python code used for this method is as follows.\r
+\lstinputlisting[language=Python]{bj_newton.py}\r
+\r
+\begin{table}[h]\r
+  \caption{\sf Comparison of the execution time of the four different methods.}\r
+  \begin{center}\r
+    \begin{tabular}{l c}\r
+      \hline\r
+      Method & Time ($s$) \\\r
+      \hline\r
+      Steepest descent, constant $\alpha$ & 7.2021 \\\r
+      Steepest descent, optimal $\alpha$ & 0.0514 \\\r
+      Newtons method & 0.0037 \\\r
+      Steepest first, then Newton & 0.0040 \\\r
+      \hline\r
+    \end{tabular}\r
+  \end{center}\r
+  \label{tab:time}\r
+\end{table}\r
+We see from table \ref{tab:time} that newtons method uses the least time to\r
+solve the problem, even though figure \ref{fig:fn_resid} shows that the\r
+combination method results in fewer iterations. This comes from the fact that\r
+computing the optimal step size requires solving a qubic equation and is\r
+computationally expensive.\r
+\r
 \end{document}\r
index 62abd42c426ab88c72230f7ea7737081f6bd1cc4..2cc61ff97f95648da5a8b0923ea68a5ff1bc1e10 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: Sun Oct  2 23:02:54 2011
+%%CreationDate: Mon Oct  3 11:59:29 2011
 %%Orientation: portrait
-%%BoundingBox: -74 103 686 688
+%%BoundingBox: -74 97 686 694
 %%EndComments
 %%BeginProlog
 /mpldict 8 dict def
@@ -910,8 +910,8 @@ FontName currentdict end definefont pop
 end
 %%EndProlog
 mpldict begin
--74.25 103.95 translate
-760.5 584.1 0 0 clipbox
+-74.25 97.2 translate
+760.5 597.6 0 0 clipbox
 1.000 setlinewidth
 1 setlinejoin
 2 setlinecap
@@ -920,8 +920,8 @@ mpldict begin
 gsave
 0 0 m
 760.5 0 l
-760.5 584.1 l
-0 584.1 l
+760.5 597.6 l
+0 597.6 l
 0 0 l
 gsave
 fill
@@ -929,80 +929,84 @@ grestore
 stroke
 grestore
 gsave
-95.0625 330.99 m
-684.45 330.99 l
-684.45 525.69 l
-95.0625 525.69 l
-95.0625 330.99 l
+95.0625 338.64 m
+684.45 338.64 l
+684.45 537.84 l
+95.0625 537.84 l
+95.0625 338.64 l
 fill
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 359.459 l
-179.261 358.965 l
-221.36 358.845 l
-263.459 358.806 l
-305.558 358.788 l
-347.657 358.779 l
-389.756 358.774 l
-431.855 358.771 l
-473.954 358.769 l
-516.054 358.767 l
-558.153 358.766 l
-600.252 358.766 l
-642.351 358.765 l
-684.45 358.765 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 372.039 l
+179.261 367.103 l
+221.36 367.097 l
+263.459 367.097 l
+305.558 367.097 l
+347.657 367.097 l
+389.756 367.097 l
+431.855 367.097 l
+473.954 367.097 l
+516.054 367.097 l
+558.153 367.097 l
+600.252 367.097 l
+642.351 367.097 l
+684.45 367.097 l
 stroke
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 366.325 l
-179.261 363.992 l
-221.36 362.491 l
-263.459 361.476 l
-305.558 360.766 l
-347.657 360.258 l
-389.756 359.889 l
-431.855 359.617 l
-473.954 359.414 l
-516.054 359.262 l
-558.153 359.148 l
-600.252 359.062 l
-642.351 358.996 l
-684.45 358.946 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 372.111 l
+179.261 369.876 l
+221.36 368.918 l
+263.459 368.4 l
+305.558 368.083 l
+347.657 367.873 l
+389.756 367.725 l
+431.855 367.617 l
+473.954 367.536 l
+516.054 367.472 l
+558.153 367.422 l
+600.252 367.381 l
+642.351 367.348 l
+684.45 367.321 l
 stroke
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 386.584 l
-179.261 363.764 l
-221.36 359.817 l
-263.459 359.007 l
-305.558 358.83 l
-347.657 358.785 l
-389.756 358.768 l
-431.855 358.764 l
-473.954 358.764 l
-516.054 358.764 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 396.121 l
+179.261 372.87 l
+221.36 368.254 l
+263.459 367.333 l
+305.558 367.146 l
+347.657 367.107 l
+389.756 367.099 l
+431.855 367.097 l
+473.954 367.097 l
+516.054 367.097 l
+558.153 367.097 l
+600.252 367.097 l
+642.351 367.097 l
 stroke
 grestore
 0.000 0.750 0.750 setrgbcolor
 gsave
-589.4 194.7 95.06 331 clipbox
-95.0625 517.035 m
-137.162 359.459 l
-179.261 358.965 l
-221.36 358.8 l
-263.459 358.769 l
-305.558 358.764 l
-347.657 358.764 l
-389.756 358.764 l
+589.4 199.2 95.06 338.6 clipbox
+95.0625 513.571 m
+137.162 372.039 l
+179.261 367.103 l
+221.36 367.097 l
+263.459 367.097 l
+305.558 367.097 l
+347.657 367.097 l
+389.756 367.097 l
+431.855 367.097 l
 stroke
 grestore
 0.500 setlinewidth
@@ -1018,7 +1022,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 330.99 o
+95.0625 338.64 o
 grestore
 gsave
 /o {
@@ -1030,13 +1034,13 @@ translate
 stroke
 grestore
 } bind def
-95.0625 525.69 o
+95.0625 537.84 o
 grestore
 /DejaVuSans findfont
 12.000 scalefont
 setfont
 gsave
-92.039062 317.911875 translate
+92.039062 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -1050,7 +1054,7 @@ translate
 stroke
 grestore
 } bind def
-179.261 330.99 o
+179.261 338.64 o
 grestore
 gsave
 /o {
@@ -1062,10 +1066,10 @@ translate
 stroke
 grestore
 } bind def
-179.261 525.69 o
+179.261 537.84 o
 grestore
 gsave
-176.479464 318.083750 translate
+176.479464 325.733750 translate
 0.000000 rotate
 0.000000 0.000000 m /two glyphshow
 grestore
@@ -1079,7 +1083,7 @@ translate
 stroke
 grestore
 } bind def
-263.459 330.99 o
+263.459 338.64 o
 grestore
 gsave
 /o {
@@ -1091,10 +1095,10 @@ translate
 stroke
 grestore
 } bind def
-263.459 525.69 o
+263.459 537.84 o
 grestore
 gsave
-260.271429 318.240000 translate
+260.271429 325.890000 translate
 0.000000 rotate
 0.000000 0.000000 m /four glyphshow
 grestore
@@ -1108,7 +1112,7 @@ translate
 stroke
 grestore
 } bind def
-347.657 330.99 o
+347.657 338.64 o
 grestore
 gsave
 /o {
@@ -1120,10 +1124,10 @@ translate
 stroke
 grestore
 } bind def
-347.657 525.69 o
+347.657 537.84 o
 grestore
 gsave
-344.641518 317.911875 translate
+344.641518 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /six glyphshow
 grestore
@@ -1137,7 +1141,7 @@ translate
 stroke
 grestore
 } bind def
-431.855 330.99 o
+431.855 338.64 o
 grestore
 gsave
 /o {
@@ -1149,10 +1153,10 @@ translate
 stroke
 grestore
 } bind def
-431.855 525.69 o
+431.855 537.84 o
 grestore
 gsave
-428.855357 317.911875 translate
+428.855357 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /eight glyphshow
 grestore
@@ -1166,7 +1170,7 @@ translate
 stroke
 grestore
 } bind def
-516.054 330.99 o
+516.054 338.64 o
 grestore
 gsave
 /o {
@@ -1178,10 +1182,10 @@ translate
 stroke
 grestore
 } bind def
-516.054 525.69 o
+516.054 537.84 o
 grestore
 gsave
-509.467634 317.911875 translate
+509.467634 325.561875 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
@@ -1196,7 +1200,7 @@ translate
 stroke
 grestore
 } bind def
-600.252 330.99 o
+600.252 338.64 o
 grestore
 gsave
 /o {
@@ -1208,10 +1212,10 @@ translate
 stroke
 grestore
 } bind def
-600.252 525.69 o
+600.252 537.84 o
 grestore
 gsave
-593.868973 318.083750 translate
+593.868973 325.733750 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /two glyphshow
@@ -1226,7 +1230,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 330.99 o
+684.45 338.64 o
 grestore
 gsave
 /o {
@@ -1238,15 +1242,15 @@ translate
 stroke
 grestore
 } bind def
-684.45 525.69 o
+684.45 537.84 o
 grestore
 gsave
-677.801563 318.240000 translate
+677.801563 325.890000 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /four glyphshow
 grestore
-365.389 303.615 m
+365.389 311.265 m
 0 0.172 rmoveto
 (Iteration) show
 gsave
@@ -1259,7 +1263,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 330.99 o
+95.0625 338.64 o
 grestore
 gsave
 /o {
@@ -1271,14 +1275,18 @@ translate
 stroke
 grestore
 } bind def
-684.45 330.99 o
+684.45 338.64 o
 grestore
 gsave
-67.781250 326.450938 translate
+37.218750 334.100937 translate
 0.000000 rotate
 0.000000 0.171875 m /minus glyphshow
 10.054688 0.171875 m /two glyphshow
 17.689453 0.171875 m /zero glyphshow
+25.324219 0.171875 m /zero glyphshow
+32.958984 0.171875 m /zero glyphshow
+40.593750 0.171875 m /zero glyphshow
+48.228516 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1290,7 +1298,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 358.804 o
+95.0625 367.097 o
 grestore
 gsave
 /o {
@@ -1302,10 +1310,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 358.804 o
+684.45 367.097 o
 grestore
 gsave
-85.015625 354.265223 translate
+85.015625 362.558080 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -1319,7 +1327,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 386.619 o
+95.0625 395.554 o
 grestore
 gsave
 /o {
@@ -1331,13 +1339,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 386.619 o
+684.45 395.554 o
 grestore
 gsave
-77.453125 382.079509 translate
+46.890625 391.015223 translate
 0.000000 rotate
 0.000000 0.171875 m /two glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1349,7 +1361,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 414.433 o
+95.0625 424.011 o
 grestore
 gsave
 /o {
@@ -1361,13 +1373,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 414.433 o
+684.45 424.011 o
 grestore
 gsave
-77.171875 409.893795 translate
+46.609375 419.472366 translate
 0.000000 rotate
 0.000000 0.171875 m /four glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1379,7 +1395,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 442.247 o
+95.0625 452.469 o
 grestore
 gsave
 /o {
@@ -1391,13 +1407,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 442.247 o
+684.45 452.469 o
 grestore
 gsave
-77.421875 437.708080 translate
+46.859375 447.929509 translate
 0.000000 rotate
 0.000000 0.171875 m /six glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1409,7 +1429,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 470.061 o
+95.0625 480.926 o
 grestore
 gsave
 /o {
@@ -1421,13 +1441,17 @@ translate
 stroke
 grestore
 } bind def
-684.45 470.061 o
+684.45 480.926 o
 grestore
 gsave
-77.390625 465.522366 translate
+46.828125 476.386652 translate
 0.000000 rotate
 0.000000 0.171875 m /eight glyphshow
 7.634766 0.171875 m /zero glyphshow
+15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1439,7 +1463,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 497.876 o
+95.0625 509.383 o
 grestore
 gsave
 /o {
@@ -1451,14 +1475,18 @@ translate
 stroke
 grestore
 } bind def
-684.45 497.876 o
+684.45 509.383 o
 grestore
 gsave
-70.250000 493.336652 translate
+39.687500 504.843795 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
 15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
+45.808594 0.171875 m /zero glyphshow
 grestore
 gsave
 /o {
@@ -1470,7 +1498,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 525.69 o
+95.0625 537.84 o
 grestore
 gsave
 /o {
@@ -1482,16 +1510,20 @@ translate
 stroke
 grestore
 } bind def
-684.45 525.69 o
+684.45 537.84 o
 grestore
 gsave
-70.250000 521.150938 translate
+39.687500 533.300938 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /two glyphshow
 15.269531 0.171875 m /zero glyphshow
+22.904297 0.171875 m /zero glyphshow
+30.539062 0.171875 m /zero glyphshow
+38.173828 0.171875 m /zero glyphshow
+45.808594 0.171875 m /zero glyphshow
 grestore
-62.781 417.129 m
+32.219 427.029 m
 gsave
 90 rotate
 0 2.5 rmoveto
@@ -1500,37 +1532,37 @@ grestore
 1.000 setlinewidth
 2 setlinecap
 gsave
-95.0625 525.69 m
-684.45 525.69 l
+95.0625 537.84 m
+684.45 537.84 l
 stroke
 grestore
 gsave
-684.45 330.99 m
-684.45 525.69 l
+684.45 338.64 m
+684.45 537.84 l
 stroke
 grestore
 gsave
-95.0625 330.99 m
-684.45 330.99 l
+95.0625 338.64 m
+684.45 338.64 l
 stroke
 grestore
 gsave
-95.0625 330.99 m
-95.0625 525.69 l
+95.0625 338.64 m
+95.0625 537.84 l
 stroke
 grestore
 /DejaVuSans findfont
 14.400 scalefont
 setfont
-337.616 530.69 m
+337.616 542.84 m
 0 0.203 rmoveto
 (Function value) show
 gsave
-429.066 430.37 m
-677.25 430.37 l
-677.25 518.49 l
-429.066 518.49 l
-429.066 430.37 l
+429.066 442.52 m
+677.25 442.52 l
+677.25 530.64 l
+429.066 530.64 l
+429.066 442.52 l
 cl
 gsave
 1.000 setgray
@@ -1540,13 +1572,13 @@ stroke
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-439.146 506.77 m
-459.306 506.77 l
+439.146 518.92 m
+459.306 518.92 l
 stroke
 grestore
 0.000 setgray
 gsave
-475.146250 498.730000 translate
+475.146250 510.880000 translate
 0.000000 rotate
 /DejaVuSans findfont
 14.4 scalefont
@@ -1582,13 +1614,13 @@ setfont
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-439.146 485.57 m
-459.306 485.57 l
+439.146 497.72 m
+459.306 497.72 l
 stroke
 grestore
 0.000 setgray
 gsave
-475.146250 479.530000 translate
+475.146250 491.680000 translate
 0.000000 rotate
 /DejaVuSans findfont
 14.4 scalefont
@@ -1615,106 +1647,113 @@ setfont
 /zero glyphshow
 
 53.578339 1.609375 moveto
-/five glyphshow
+/zero glyphshow
+
+62.734085 1.609375 moveto
+/one glyphshow
 
 
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-439.146 464.823 m
-459.306 464.823 l
+439.146 476.973 m
+459.306 476.973 l
 stroke
 grestore
 0.000 setgray
-475.146 459.58 m
+475.146 471.73 m
 0 0.203 rmoveto
 (Newtons method) show
 0.000 0.750 0.750 setrgbcolor
 gsave
-439.146 444.076 m
-459.306 444.076 l
+439.146 456.226 m
+459.306 456.226 l
 stroke
 grestore
 0.000 setgray
-475.146 436.13 m
+475.146 448.28 m
 0 2.906 rmoveto
 (Steepest first, then Newton) show
 gsave
-95.0625 58.41 m
-684.45 58.41 l
-684.45 253.11 l
-95.0625 253.11 l
-95.0625 58.41 l
+95.0625 59.76 m
+684.45 59.76 l
+684.45 258.96 l
+95.0625 258.96 l
+95.0625 59.76 l
 1.000 setgray
 fill
 grestore
 0.000 0.000 1.000 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 203.279 l
-179.261 194.654 l
-221.36 186.904 l
-263.459 181.081 l
-305.558 177.713 l
-347.657 172.65 l
-389.756 171.157 l
-431.855 166.43 l
-473.954 165.939 l
-516.054 161.396 l
-558.153 161.508 l
-600.252 157.077 l
-642.351 157.579 l
-684.45 153.222 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 229.508 l
+179.261 176.541 l
+221.36 134.965 l
+263.459 130.235 l
+305.558 122.458 l
+347.657 120.874 l
+389.756 116.237 l
+431.855 115.547 l
+473.954 112.274 l
+516.054 111.993 l
+558.153 109.477 l
+600.252 109.416 l
+642.351 107.364 l
+684.45 107.431 l
 stroke
 grestore
 0.000 0.500 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 222.717 l
-179.261 219.974 l
-221.36 217.561 l
-263.459 215.364 l
-305.558 213.317 l
-347.657 211.377 l
-389.756 209.518 l
-431.855 207.718 l
-473.954 205.963 l
-516.054 204.243 l
-558.153 202.551 l
-600.252 200.881 l
-642.351 199.228 l
-684.45 197.59 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 229.821 l
+179.261 224.926 l
+221.36 221.429 l
+263.459 218.668 l
+305.558 216.371 l
+347.657 214.398 l
+389.756 212.664 l
+431.855 211.116 l
+473.954 209.716 l
+516.054 208.437 l
+558.153 207.259 l
+600.252 206.166 l
+642.351 205.148 l
+684.45 204.194 l
 stroke
 grestore
 1.000 0.000 0.000 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 238.17 l
-179.261 222.462 l
-221.36 207.853 l
-263.459 193.505 l
-305.558 179.763 l
-347.657 167.399 l
-389.756 156.604 l
-431.855 146.436 l
-473.954 120.135 l
-516.054 70.3295 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 245.811 l
+179.261 232.668 l
+221.36 219.539 l
+263.459 206.438 l
+305.558 193.392 l
+347.657 180.419 l
+389.756 167.318 l
+431.855 152.265 l
+473.954 137.239 l
+516.054 124.504 l
+558.153 112.855 l
+600.252 103.002 l
+642.351 76.034 l
 stroke
 grestore
 0.000 0.750 0.750 setrgbcolor
 gsave
-589.4 194.7 95.06 58.41 clipbox
-95.0625 253.11 m
-137.162 203.279 l
-179.261 194.654 l
-221.36 178.69 l
-263.459 162.978 l
-305.558 144.303 l
-347.657 115.514 l
-389.756 61.2154 l
+589.4 199.2 95.06 59.76 clipbox
+95.0625 258.96 m
+137.162 229.508 l
+179.261 176.541 l
+221.36 134.965 l
+263.459 119.553 l
+305.558 109.463 l
+347.657 99.9101 l
+389.756 90.11 l
+431.855 66.4723 l
 stroke
 grestore
 0.500 setlinewidth
@@ -1730,7 +1769,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 58.41 o
+95.0625 59.76 o
 grestore
 gsave
 /o {
@@ -1742,13 +1781,13 @@ translate
 stroke
 grestore
 } bind def
-95.0625 253.11 o
+95.0625 258.96 o
 grestore
 /DejaVuSans findfont
 12.000 scalefont
 setfont
 gsave
-92.039062 45.331875 translate
+92.039062 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /zero glyphshow
 grestore
@@ -1762,7 +1801,7 @@ translate
 stroke
 grestore
 } bind def
-179.261 58.41 o
+179.261 59.76 o
 grestore
 gsave
 /o {
@@ -1774,10 +1813,10 @@ translate
 stroke
 grestore
 } bind def
-179.261 253.11 o
+179.261 258.96 o
 grestore
 gsave
-176.479464 45.503750 translate
+176.479464 46.853750 translate
 0.000000 rotate
 0.000000 0.000000 m /two glyphshow
 grestore
@@ -1791,7 +1830,7 @@ translate
 stroke
 grestore
 } bind def
-263.459 58.41 o
+263.459 59.76 o
 grestore
 gsave
 /o {
@@ -1803,10 +1842,10 @@ translate
 stroke
 grestore
 } bind def
-263.459 253.11 o
+263.459 258.96 o
 grestore
 gsave
-260.271429 45.660000 translate
+260.271429 47.010000 translate
 0.000000 rotate
 0.000000 0.000000 m /four glyphshow
 grestore
@@ -1820,7 +1859,7 @@ translate
 stroke
 grestore
 } bind def
-347.657 58.41 o
+347.657 59.76 o
 grestore
 gsave
 /o {
@@ -1832,10 +1871,10 @@ translate
 stroke
 grestore
 } bind def
-347.657 253.11 o
+347.657 258.96 o
 grestore
 gsave
-344.641518 45.331875 translate
+344.641518 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /six glyphshow
 grestore
@@ -1849,7 +1888,7 @@ translate
 stroke
 grestore
 } bind def
-431.855 58.41 o
+431.855 59.76 o
 grestore
 gsave
 /o {
@@ -1861,10 +1900,10 @@ translate
 stroke
 grestore
 } bind def
-431.855 253.11 o
+431.855 258.96 o
 grestore
 gsave
-428.855357 45.331875 translate
+428.855357 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /eight glyphshow
 grestore
@@ -1878,7 +1917,7 @@ translate
 stroke
 grestore
 } bind def
-516.054 58.41 o
+516.054 59.76 o
 grestore
 gsave
 /o {
@@ -1890,10 +1929,10 @@ translate
 stroke
 grestore
 } bind def
-516.054 253.11 o
+516.054 258.96 o
 grestore
 gsave
-509.467634 45.331875 translate
+509.467634 46.681875 translate
 0.000000 rotate
 0.000000 0.171875 m /one glyphshow
 7.634766 0.171875 m /zero glyphshow
@@ -1908,7 +1947,7 @@ translate
 stroke
 grestore
 } bind def
-600.252 58.41 o
+600.252 59.76 o
 grestore
 gsave
 /o {
@@ -1920,10 +1959,10 @@ translate
 stroke
 grestore
 } bind def
-600.252 253.11 o
+600.252 258.96 o
 grestore
 gsave
-593.868973 45.503750 translate
+593.868973 46.853750 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /two glyphshow
@@ -1938,7 +1977,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 58.41 o
+684.45 59.76 o
 grestore
 gsave
 /o {
@@ -1950,15 +1989,15 @@ translate
 stroke
 grestore
 } bind def
-684.45 253.11 o
+684.45 258.96 o
 grestore
 gsave
-677.801563 45.660000 translate
+677.801563 47.010000 translate
 0.000000 rotate
 0.000000 0.000000 m /one glyphshow
 7.634766 0.000000 m /four glyphshow
 grestore
-365.389 31.035 m
+365.389 32.385 m
 0 0.172 rmoveto
 (Iteration) show
 gsave
@@ -1971,7 +2010,54 @@ translate
 stroke
 grestore
 } bind def
-95.0625 58.41 o
+95.0625 59.76 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-4 0 l
+stroke
+grestore
+} bind def
+684.45 59.76 o
+grestore
+gsave
+66.062500 52.260000 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
+/eight glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+4 0 l
+stroke
+grestore
+} bind def
+95.0625 84.66 o
 grestore
 gsave
 /o {
@@ -1983,10 +2069,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 58.41 o
+684.45 84.66 o
 grestore
 gsave
-66.062500 50.910000 translate
+66.062500 77.160000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2018,7 +2104,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 86.2243 o
+95.0625 109.56 o
 grestore
 gsave
 /o {
@@ -2030,10 +2116,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 86.2243 o
+684.45 109.56 o
 grestore
 gsave
-66.062500 78.724286 translate
+66.062500 102.060000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2065,7 +2151,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 114.039 o
+95.0625 134.46 o
 grestore
 gsave
 /o {
@@ -2077,10 +2163,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 114.039 o
+684.45 134.46 o
 grestore
 gsave
-66.062500 106.538571 translate
+66.062500 126.960000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2112,7 +2198,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 141.853 o
+95.0625 159.36 o
 grestore
 gsave
 /o {
@@ -2124,10 +2210,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 141.853 o
+684.45 159.36 o
 grestore
 gsave
-66.062500 134.352857 translate
+66.062500 151.860000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2159,7 +2245,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 169.667 o
+95.0625 184.26 o
 grestore
 gsave
 /o {
@@ -2171,10 +2257,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 169.667 o
+684.45 184.26 o
 grestore
 gsave
-66.062500 162.167143 translate
+66.062500 176.760000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2206,7 +2292,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 197.481 o
+95.0625 209.16 o
 grestore
 gsave
 /o {
@@ -2218,10 +2304,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 197.481 o
+684.45 209.16 o
 grestore
 gsave
-66.062500 189.981429 translate
+66.062500 201.660000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2253,7 +2339,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 225.296 o
+95.0625 234.06 o
 grestore
 gsave
 /o {
@@ -2265,10 +2351,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 225.296 o
+684.45 234.06 o
 grestore
 gsave
-66.062500 217.795714 translate
+66.062500 226.560000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2300,7 +2386,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 253.11 o
+95.0625 258.96 o
 grestore
 gsave
 /o {
@@ -2312,10 +2398,10 @@ translate
 stroke
 grestore
 } bind def
-684.45 253.11 o
+684.45 258.96 o
 grestore
 gsave
-69.062500 245.610000 translate
+69.062500 251.460000 translate
 0.000000 rotate
 /DejaVuSans findfont
 12.0 scalefont
@@ -2344,7 +2430,103 @@ translate
 stroke
 grestore
 } bind def
-95.0625 66.7829 o
+95.0625 67.2556 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 67.2556 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 74.7513 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 74.7513 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 79.136 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 79.136 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 82.2469 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+-2 0 l
+stroke
+grestore
+} bind def
+684.45 82.2469 o
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0 0 m
+2 0 l
+stroke
+grestore
+} bind def
+95.0625 92.1556 o
 grestore
 gsave
 /o {
@@ -2356,7 +2538,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 66.7829 o
+684.45 92.1556 o
 grestore
 gsave
 /o {
@@ -2368,7 +2550,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 75.1559 o
+95.0625 99.6513 o
 grestore
 gsave
 /o {
@@ -2380,7 +2562,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 75.1559 o
+684.45 99.6513 o
 grestore
 gsave
 /o {
@@ -2392,7 +2574,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 80.0537 o
+95.0625 104.036 o
 grestore
 gsave
 /o {
@@ -2404,7 +2586,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 80.0537 o
+684.45 104.036 o
 grestore
 gsave
 /o {
@@ -2416,7 +2598,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 83.5288 o
+95.0625 107.147 o
 grestore
 gsave
 /o {
@@ -2428,7 +2610,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 83.5288 o
+684.45 107.147 o
 grestore
 gsave
 /o {
@@ -2440,7 +2622,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 94.5972 o
+95.0625 117.056 o
 grestore
 gsave
 /o {
@@ -2452,7 +2634,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 94.5972 o
+684.45 117.056 o
 grestore
 gsave
 /o {
@@ -2464,7 +2646,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 102.97 o
+95.0625 124.551 o
 grestore
 gsave
 /o {
@@ -2476,7 +2658,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 102.97 o
+684.45 124.551 o
 grestore
 gsave
 /o {
@@ -2488,7 +2670,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 107.868 o
+95.0625 128.936 o
 grestore
 gsave
 /o {
@@ -2500,7 +2682,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 107.868 o
+684.45 128.936 o
 grestore
 gsave
 /o {
@@ -2512,7 +2694,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 111.343 o
+95.0625 132.047 o
 grestore
 gsave
 /o {
@@ -2524,7 +2706,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 111.343 o
+684.45 132.047 o
 grestore
 gsave
 /o {
@@ -2536,7 +2718,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 122.412 o
+95.0625 141.956 o
 grestore
 gsave
 /o {
@@ -2548,7 +2730,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 122.412 o
+684.45 141.956 o
 grestore
 gsave
 /o {
@@ -2560,7 +2742,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 130.784 o
+95.0625 149.451 o
 grestore
 gsave
 /o {
@@ -2572,7 +2754,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 130.784 o
+684.45 149.451 o
 grestore
 gsave
 /o {
@@ -2584,7 +2766,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 135.682 o
+95.0625 153.836 o
 grestore
 gsave
 /o {
@@ -2596,7 +2778,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 135.682 o
+684.45 153.836 o
 grestore
 gsave
 /o {
@@ -2608,7 +2790,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 139.157 o
+95.0625 156.947 o
 grestore
 gsave
 /o {
@@ -2620,7 +2802,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 139.157 o
+684.45 156.947 o
 grestore
 gsave
 /o {
@@ -2632,7 +2814,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 150.226 o
+95.0625 166.856 o
 grestore
 gsave
 /o {
@@ -2644,7 +2826,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 150.226 o
+684.45 166.856 o
 grestore
 gsave
 /o {
@@ -2656,7 +2838,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 158.599 o
+95.0625 174.351 o
 grestore
 gsave
 /o {
@@ -2668,7 +2850,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 158.599 o
+684.45 174.351 o
 grestore
 gsave
 /o {
@@ -2680,7 +2862,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 163.497 o
+95.0625 178.736 o
 grestore
 gsave
 /o {
@@ -2692,7 +2874,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 163.497 o
+684.45 178.736 o
 grestore
 gsave
 /o {
@@ -2704,7 +2886,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 166.972 o
+95.0625 181.847 o
 grestore
 gsave
 /o {
@@ -2716,7 +2898,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 166.972 o
+684.45 181.847 o
 grestore
 gsave
 /o {
@@ -2728,7 +2910,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 178.04 o
+95.0625 191.756 o
 grestore
 gsave
 /o {
@@ -2740,7 +2922,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 178.04 o
+684.45 191.756 o
 grestore
 gsave
 /o {
@@ -2752,7 +2934,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 186.413 o
+95.0625 199.251 o
 grestore
 gsave
 /o {
@@ -2764,7 +2946,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 186.413 o
+684.45 199.251 o
 grestore
 gsave
 /o {
@@ -2776,7 +2958,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 191.311 o
+95.0625 203.636 o
 grestore
 gsave
 /o {
@@ -2788,7 +2970,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 191.311 o
+684.45 203.636 o
 grestore
 gsave
 /o {
@@ -2800,7 +2982,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 194.786 o
+95.0625 206.747 o
 grestore
 gsave
 /o {
@@ -2812,7 +2994,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 194.786 o
+684.45 206.747 o
 grestore
 gsave
 /o {
@@ -2824,7 +3006,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 205.854 o
+95.0625 216.656 o
 grestore
 gsave
 /o {
@@ -2836,7 +3018,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 205.854 o
+684.45 216.656 o
 grestore
 gsave
 /o {
@@ -2848,7 +3030,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 214.227 o
+95.0625 224.151 o
 grestore
 gsave
 /o {
@@ -2860,7 +3042,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 214.227 o
+684.45 224.151 o
 grestore
 gsave
 /o {
@@ -2872,7 +3054,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 219.125 o
+95.0625 228.536 o
 grestore
 gsave
 /o {
@@ -2884,7 +3066,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 219.125 o
+684.45 228.536 o
 grestore
 gsave
 /o {
@@ -2896,7 +3078,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 222.6 o
+95.0625 231.647 o
 grestore
 gsave
 /o {
@@ -2908,7 +3090,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 222.6 o
+684.45 231.647 o
 grestore
 gsave
 /o {
@@ -2920,7 +3102,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 233.669 o
+95.0625 241.556 o
 grestore
 gsave
 /o {
@@ -2932,7 +3114,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 233.669 o
+684.45 241.556 o
 grestore
 gsave
 /o {
@@ -2944,7 +3126,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 242.042 o
+95.0625 249.051 o
 grestore
 gsave
 /o {
@@ -2956,7 +3138,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 242.042 o
+684.45 249.051 o
 grestore
 gsave
 /o {
@@ -2968,7 +3150,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 246.939 o
+95.0625 253.436 o
 grestore
 gsave
 /o {
@@ -2980,7 +3162,7 @@ translate
 stroke
 grestore
 } bind def
-684.45 246.939 o
+684.45 253.436 o
 grestore
 gsave
 /o {
@@ -2992,7 +3174,7 @@ translate
 stroke
 grestore
 } bind def
-95.0625 250.415 o
+95.0625 256.547 o
 grestore
 gsave
 /o {
@@ -3004,9 +3186,9 @@ translate
 stroke
 grestore
 } bind def
-684.45 250.415 o
+684.45 256.547 o
 grestore
-61.062 106.401 m
+61.062 110.001 m
 gsave
 90 rotate
 0 0.172 rmoveto
@@ -3015,29 +3197,29 @@ grestore
 1.000 setlinewidth
 2 setlinecap
 gsave
-95.0625 253.11 m
-684.45 253.11 l
+95.0625 258.96 m
+684.45 258.96 l
 stroke
 grestore
 gsave
-684.45 58.41 m
-684.45 253.11 l
+684.45 59.76 m
+684.45 258.96 l
 stroke
 grestore
 gsave
-95.0625 58.41 m
-684.45 58.41 l
+95.0625 59.76 m
+684.45 59.76 l
 stroke
 grestore
 gsave
-95.0625 58.41 m
-95.0625 253.11 l
+95.0625 59.76 m
+95.0625 258.96 l
 stroke
 grestore
 /DejaVuSans findfont
 14.400 scalefont
 setfont
-330.686 258.11 m
+330.686 263.96 m
 0 0.203 rmoveto
 (Relative residual) show
 
index 581627c8d226c25679462ded8539b98df7f96eb1..6d9eba8209f197a86ceabe2216914d952c4743bd 100644 (file)
@@ -76,7 +76,7 @@ def main():
     function_values = []
 
     for point in points:
-        print point
+        #print point
         z = function_g(point, H, b, c)
         function_values.append(z)
         p = mlab.points3d([point[0]], [point[1]], [z], scale_factor=0.05)
index ee9cfd725b5295654c54612ef06789d507c97054..7405364be51f7a931c9e43f805df5b72693da990 100644 (file)
@@ -5,13 +5,13 @@ from numpy.linalg import norm
 
 # Run steepest method until tolerance steep_tol, then continue with Newtons
 # method until tolerance newt_tol
-def steepestnewton(x0, H, b, c, steep_tol, newt_tol):
+def steepestnewton(x0, H, b, c, steep_tol, steep_max, newt_tol):
     x = []
     r = []
 
     # Use the starting norm to calculate relative residuals in both algorithms
     x0_norm = norm(gradient_g(x0, H, b, c))
-    points, residuals = steepest(x0, H, b, c, steep_tol, 100, 0, x0_norm)
+    points, residuals = steepest(x0, H, b, c, steep_tol, steep_max, 0, x0_norm)
     x.extend(points)
     r.extend(residuals)