From: Bjørn Rustad Date: Mon, 3 Oct 2011 10:58:23 +0000 (+0200) Subject: Finishing up 1 X-Git-Url: http://git.rustad.me/?a=commitdiff_plain;h=2ea30dc006ab135101f1a9e36920aec3e54ef2ea;p=nummat1 Finishing up 1 --- diff --git a/Makefile b/Makefile index 13d90dd..80dc5fa 100644 --- a/Makefile +++ b/Makefile @@ -2,4 +2,4 @@ all: latex rapport.tex latex rapport.tex dvips rapport.dvi - ps2pdf rapport.ps + #ps2pdf rapport.ps diff --git a/backup.eps b/backup.eps index 62abd42..2cc61ff 100644 --- a/backup.eps +++ b/backup.eps @@ -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 index 0000000..33bc0e7 --- /dev/null +++ b/bj_newton.py @@ -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) diff --git a/function.py b/function.py index 92cf714..eea8e0b 100644 --- a/function.py +++ b/function.py @@ -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 633d01f..78c24a4 100644 --- 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 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 diff --git a/rapport.tex b/rapport.tex index 6bd3f4a..b7ab5af 100644 --- a/rapport.tex +++ b/rapport.tex @@ -36,9 +36,7 @@ \title{Semester Project 1 in TMA4215} \author{ - 10012 \\ - 10023 \\ - 10056 + Candidate numbers: 10012, 10023, 10056 } \maketitle @@ -56,9 +54,10 @@ ABSTRACTABSTBSSTRACTABSTRACTABSTRACT % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Resultater} -This project explores how one can approximate the local minima of a function. -The function considered takes in a symmetric positive definite matrix, and two -vectors. For this purpose we used the following randomly generated data: +This project explores how one can approximate the solution to a certain type of +minimization problems. The function considered takes in a symmetric positive +definite matrix, and two vectors. For this purpose we used the following +randomly generated data: \begin{equation} H = \begin{bmatrix} @@ -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 $n\times n$ matrix $U$. The elements above the diagonal are randomly generated in the uniform distribution over $[-3, 3]$, while the numbers on the diagonal -are square roots of positive numbers from the same distribution. $H = U^{T}U$ is -then a symmetric positive definite matrix. +are square roots of positive numbers from the same distribution. The matrix $H += U^{T}U$ is then symmetric positive definite. The function analyzed in this project was \begin{equation} @@ -111,12 +110,12 @@ Consider the Hessian $\nabla^{2}g(\mathbf{x})$, and any vector $\mathbf{v} \in \begin{eqnarray} \mathbf{v}^{T}(\nabla^{2}g(\mathbf{x}))\mathbf{v} &=& \mathbf{v}^{T}(H+C(\mathbf{x}))\mathbf{v} \nonumber \\ - &=& \mathbf{v}^{T}H(\mathbf{x}))\mathbf{v}+\mathbf{v}^{T}C(\mathbf{x})\mathbf{v}. + &=& \mathbf{v}^{T}H\mathbf{v}+\mathbf{v}^{T}C(\mathbf{x})\mathbf{v}. \end{eqnarray} -We already know H is positive definite, so $\mathbf{v}^{T}H(\mathbf{x}))\mathbf{v} > 0$. +We already know H is positive definite, so $\mathbf{v}^{T}H\mathbf{v} > 0$. Since $C(\mathbf{x})$ only has positive entries, we easily see that \begin{equation} - \mathbf{v}^{T}C(\mathbf{x})\mathbf{v} = \sum\limits_{i=1}^n c_{i}(v_{i}x_{i})^2 \geq 0 + \mathbf{v}^{T}C(\mathbf{x})\mathbf{v} = \sum\limits_{i=1}^n c_{i}(v_{i}x_{i})^2 \geq 0. \end{equation} Hence $\mathbf{v}^{T}(H+C(\mathbf{x}))\mathbf{v} > 0$, and we see by definition that the Hessian, $\nabla^{2}g(\mathbf{x})$, is positive definite. @@ -124,21 +123,24 @@ that the Hessian, $\nabla^{2}g(\mathbf{x})$, is positive definite. \begin{figure}[htb] \centering \includegraphics[width=0.9\textwidth]{backup} - \caption{Plot of relative residual and function values for iterations of the - steepest descent method with optimal $\alpha$} \label{fig:fn_resid} + \caption{\sf Plot of relative residual and function values for iterations of the + steepest descent method with optimal $\alpha$} + \label{fig:fn_resid} \end{figure} \begin{figure}[htb] \centering \includegraphics[width=0.9\textwidth]{surface} - \caption{Surface plot of function with points showing iteration of steepest - descent method, both with optimal and constant $\alpha$} \label{fig:surface} + \caption{\sf Surface plot of function with points showing iteration of steepest + descent method, both with optimal and constant $\alpha$} + \label{fig:surface} \end{figure} Consider the equation \begin{equation} \label{eq:forward} - \mathbf{r}'(t) = -\nabla g\left(\mathbf{r}(t)\right)\text{, } \mathbf{r}(0) = \mathbf{r}^0. + \mathbf{r}'(t) = -\nabla g\left(\mathbf{r}(t)\right)\text{, } \mathbf{r}(0) = + \mathbf{r}^{(0)}. \end{equation} One can view the function $\mathbf{r}(t)$ as a parameterisation of the curve going through the starting point to the minima, always going in the direction of @@ -157,17 +159,17 @@ To find the optimal step length, $\alpha^*$, we solve the equation \frac{\partial}{\partial \mathbf{\alpha}}g\left(\mathbf{x}+\alpha\mathbf{u}\right) &=& 0, \text{where } \mathbf{u} = -\nabla g(\mathbf{x} ) \nonumber \\ - &\Updownarrow& \nonumber \\ + &\Downarrow& \nonumber \\ A\alpha^3 + B\alpha^2 + C\alpha + D &=& 0, \end{eqnarray} -where $A$, $B$, $C$, and $D$ is given by +for $\alpha$. Where $A$, $B$, $C$, and $D$ are given by \begin{eqnarray} A &=& \frac{1}{3}\mathbf{u}^TC(\mathbf{u})\mathbf{u} \nonumber \\ B &=& \mathbf{x}^TC(\mathbf{u}) \mathbf{u} \nonumber \\ C &=& \mathbf{u}^TH\mathbf{u}+\mathbf{u}^TC(\mathbf{x})\mathbf{u} \nonumber \\ D &=& \frac{1}{3}\mathbf{u}^TC(\mathbf{x})\mathbf{x}+\mathbf{u}^TH\mathbf{x}-\mathbf{b}^T\mathbf{u} \end{eqnarray} -Deriving the polynomial results in: +Differentiating the polynomial results in: \begin{eqnarray} \frac{\partial^2}{\partial \alpha^2}\left(g\left(\mathbf{x} + \alpha\mathbf{u}\right)\right) &=& \mathbf{u}^T H \mathbf{u} + \mathbf{u}^T @@ -175,13 +177,38 @@ Deriving the polynomial results in: C\left(\mathbf{x}\right)\right]\mathbf{u} + 2\mathbf{x}^T C\left(\mathbf{u}\right) \mathbf{u}\alpha \nonumber \\ &=& \mathbf{u}^T H \mathbf{u} + \mathbf{u}^T C\left(\mathbf{x} + - \alpha\mathbf{u}\right) \nonumber \\ + \alpha\mathbf{u}\right)\mathbf{u} \nonumber \\ &=& \mathbf{u}^T\nabla^2 g\left(\mathbf{x} + \alpha\mathbf{u}\right)\mathbf{u}. \end{eqnarray} From this we see that the polynomial \eqref{eq:poly} is monotonically increasing and therefore only has one real zero. This is the zero we want to use as our -optimal step length. - +optimal step length. This is implemented in the Python code below. \lstinputlisting[language=Python]{bj_optimal.py} +The Newton method was also implemented to solve $\nabla g\left(\mathbf{x}^*\right) += 0$. The Python code used for this method is as follows. +\lstinputlisting[language=Python]{bj_newton.py} + +\begin{table}[h] + \caption{\sf Comparison of the execution time of the four different methods.} + \begin{center} + \begin{tabular}{l c} + \hline + Method & Time ($s$) \\ + \hline + Steepest descent, constant $\alpha$ & 7.2021 \\ + Steepest descent, optimal $\alpha$ & 0.0514 \\ + Newtons method & 0.0037 \\ + Steepest first, then Newton & 0.0040 \\ + \hline + \end{tabular} + \end{center} + \label{tab:time} +\end{table} +We see from table \ref{tab:time} that newtons method uses the least time to +solve the problem, even though figure \ref{fig:fn_resid} shows that the +combination method results in fewer iterations. This comes from the fact that +computing the optimal step size requires solving a qubic equation and is +computationally expensive. + \end{document} diff --git a/steepest.eps b/steepest.eps index 62abd42..2cc61ff 100644 --- a/steepest.eps +++ b/steepest.eps @@ -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/steepest.py b/steepest.py index 581627c..6d9eba8 100644 --- a/steepest.py +++ b/steepest.py @@ -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) diff --git a/steepestnewton.py b/steepestnewton.py index ee9cfd7..7405364 100644 --- a/steepestnewton.py +++ b/steepestnewton.py @@ -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)