14 October 2008 11:01:36.522 PM BRENT_PRB FORTRAN77 version. Tests for the Richard Brent routines. TEST_ZERO_ALL Test the Brent ZERO routine, which seeks a root of a function F(X) in an interval [A,B]. f_01(x) = sin ( x ) - x / 2 A Z B F(A) F(Z) F(B) 1.00000000 1.89549427 2.00000000 0.341471 0.00000 -0.907026E-01 f_02(x) = 2 * x - exp ( - x ) A Z B F(A) F(Z) F(B) 0.00000000 0.35173371 1.00000000 -1.00000 0.222045E-15 1.63212 f_03(x) = x * exp ( - x ) A Z B F(A) F(Z) F(B) -1.00000000 0.00000000 0.50000000 -2.71828 0.109766E-21 0.303265 f_04(x) = exp ( x ) - 1 / ( 100 * x * x ) A Z B F(A) F(Z) F(B) 0.00010000 0.09534462 20.00000000 -999999. 0.444089E-15 0.485165E+09 f_05(x) = (x+3) * (x-1) * (x-1) A Z B F(A) F(Z) F(B) -5.00000000 -3.00000000 2.00000000 -72.0000 0.00000 5.00000 TEST_ZERO_RC_ALL Test the ZERO_RC routine, which seeks a root of a function F(X) in an interval [A,B]. f_01(x) = sin ( x ) - x / 2 STATUS X F(X) 1 1.0000000 0.34147098 2 2.0000000 -.90702573E-01 3 1.7901247 0.80981478E-01 4 1.8891205 0.52009551E-02 5 1.8895332 0.48653665E-02 6 1.8898731 0.45888917E-02 7 1.9449365 -.41646078E-01 8 1.8953382 0.12779615E-03 9 1.8953426 0.12423676E-03 10 1.8953468 0.12080021E-03 11 1.9201417 -.20473828E-01 12 1.8954922 0.16940585E-05 13 1.8954922 0.16703016E-05 14 1.8954923 0.16468822E-05 15 1.9078170 -.10164415E-01 16 1.8954943 0.11642552E-07 17 1.8954943 0.11560246E-07 18 1.8954943 0.11478516E-07 19 1.9016556 -.50642501E-02 20 1.8954943 0.40745629E-10 21 1.8954943 0.40601078E-10 22 1.8954943 0.40449200E-10 23 1.8985749 -.25276324E-02 24 1.8954943 0.72053474E-13 25 1.8954943 0.71165296E-13 26 1.8954943 0.69277917E-13 27 1.8970346 -.12626925E-02 28 1.8954943 0.0000000 0 1.8954943 0.0000000 f_02(x) = 2 * x - exp ( - x ) STATUS X F(X) 1 0.0000000 -1.0000000 2 1.0000000 1.6321206 3 0.37992181 0.75928731E-01 4 0.35311057 0.37216264E-02 5 0.35182621 0.25006905E-03 6 0.35173404 0.88260654E-06 7 0.35173371 0.21003832E-09 8 0.35173371 0.22204460E-15 9 0.35173371 -.88817842E-15 0 0.35173371 0.22204460E-15 f_03(x) = x * exp ( - x ) STATUS X F(X) 1 -1.0000000 -2.7182818 2 0.50000000 0.30326533 3 0.34944865 0.24638811 4 -.33816559 -.47423419 5 0.11434633 0.10199110 6 -.47644078E-01 -.49968981E-01 7 0.56231738E-02 0.55916425E-02 8 0.26233709E-03 0.26226827E-03 9 -.19988556E-03 -.19992552E-03 10 0.52439033E-07 0.52439030E-07 11 0.10480759E-10 0.10480759E-10 12 -.10473168E-10 -.10473168E-10 13 0.10976622E-21 0.10976622E-21 14 -.22204450E-15 -.22204450E-15 0 0.10976622E-21 0.10976622E-21 f_04(x) = exp ( x ) - 1 / ( 100 * x * x ) STATUS X F(X) 1 0.10000000E-03 -999999.00 2 20.000000 0.48516520E+09 3 0.41238033E-01 -4.8382625 4 0.41238232E-01 -4.8382056 5 0.58141367E-01 -1.8983488 6 10.029071 22676.188 7 0.58976018E-01 -1.8143247 8 0.76996992E-01 -.60671802 9 5.0530338 156.49614 10 0.96214028E-01 0.20747337E-01 11 0.95578611E-01 0.56370144E-02 12 0.95349418E-01 0.11605579E-03 13 0.95344645E-01 0.67328032E-06 14 0.95344617E-01 0.12951862E-09 15 0.95344617E-01 0.95479180E-14 16 0.95344617E-01 0.44408921E-15 17 0.95344617E-01 -.62172489E-14 0 0.95344617E-01 0.44408921E-15 f_05(x) = (x+3) * (x-1) * (x-1) STATUS X F(X) 1 -5.0000000 -72.000000 2 2.0000000 5.0000000 3 1.5454545 1.3523666 4 0.82367561 0.11887918 5 0.70828242 0.31557167 6 -2.1458588 8.4529466 7 -3.5729294 -11.980918 8 -2.7362000 3.6824349 9 -3.1545647 -2.6678494 10 -2.9788034 0.33556066 11 -2.9984406 0.24930824E-01 12 -3.0062604 -.10048007 13 -2.9999951 0.77961552E-04 14 -3.0000185 -.29589530E-03 15 -3.0000000 0.72088113E-09 16 -3.0000000 -.27024143E-08 17 -3.0000000 0.0000000 0 -3.0000000 0.0000000 TEST_LOCAL_MIN_ALL Test the LOCAL_MIN routine, which seeks a local minimizer of a function F(X) in an interval [A,B]. g_01(x) = ( x - 2 ) * ( x - 2 ) + 1 A X B F(A) F(X) F(B) 0.00000000 2.00000000 3.14159265 5.00000 1.00000 2.30323 g_02(x) = x * x + exp ( - x ) A X B F(A) F(X) F(B) 0.00000000 0.35173370 1.00000000 1.00000 0.827184 1.36788 g_03(x) = x^4 + 2x^2 + x + 3 A X B F(A) F(X) F(B) -2.00000000 -0.23673290 2.00000000 25.0000 2.87849 29.0000 g_04(x) = exp ( x ) + 1 / ( 100 x ) A X B F(A) F(X) F(B) 0.00010000 0.09534461 1.00000000 101.000 1.20492 2.72828 g_05(x) = exp ( x ) - 2x + 1/(100x) - 1/(1000000x^2) A X B F(A) F(X) F(B) 0.00020000 0.70320487 2.00000000 25.9998 0.628026 3.39406 TEST_LOCAL_MIN_RC_ALL Test the reverse communication version of Brent LOCAL_MIN routine, which seeks a local minimizer of a function F(X) in an interval [A,B]. g_01(x) = ( x - 2 ) * ( x - 2 ) + 1 Step X F(X) 0 0.000000000000000 5.000000000000000 0 3.141592653589793 2.303233786730186 1 1.199981614864327 1.640029416555091 2 1.941611038725466 1.003409270798719 3 2.399963229728653 1.159970585134975 4 2.000000000000000 1.0000000000000000 5 2.000000029802322 1.000000000000001 6 1.999999970197678 1.000000000000001 7 1.999999970197678 1.000000000000001 g_02(x) = x * x + exp ( - x ) Step X F(X) 0 0.000000000000000 1.0000000000000000 0 1.0000000000000000 1.367879441171442 1 0.3819660112501051 0.8284162845035989 2 0.6180339887498948 0.9209690939741497 3 0.2360679774997897 0.8454550784427712 4 0.3528496811495104 0.8271857093986708 5 0.3518917166104074 0.8271840598740323 6 0.3517320418182495 0.8271840261312916 7 0.3517337036958197 0.8271840261275244 8 0.3517337112615478 0.8271840261275243 9 0.3517337165027886 0.8271840261275244 10 0.3517337165027886 0.8271840261275244 g_03(x) = x^4 + 2x^2 + x + 3 Step X F(X) 0 -2.000000000000000 25.00000000000000 0 2.000000000000000 29.00000000000000 1 -0.4721359549995796 3.023378685249420 2 0.4721359549995792 3.967650595248578 3 -1.055728090000841 5.415643516089551 4 -0.1498138939889126 2.895578253916099 5 -0.2226817817160358 2.878951458114974 6 -0.2318072413850192 2.878549359863836 7 -0.2370561019263440 2.878493033943844 8 -0.2367455245027443 2.878492790245848 9 -0.2367325704732761 2.878492789873986 10 -0.2367329046684402 2.878492789873726 11 -0.2367329011408449 2.878492789873726 12 -0.2367328976132497 2.878492789873726 13 -0.2367327726568989 2.878492789873766 14 -0.2367328498841708 2.878492789873733 15 -0.2367328793823638 2.878492789873727 16 -0.2367328906496710 2.878492789873726 17 -0.2367328906496710 2.878492789873726 g_04(x) = exp ( x ) + 1 / ( 100 x ) Step X F(X) 0 0.1000000000000000E-03 101.0001000050002 0 1.0000000000000000 2.728281828459045 1 0.3820278146489801 1.491428944564399 2 0.6180721853510198 1.871527165190991 3 0.2361443707020397 1.308704097842649 4 0.1459834439469404 1.225677948134214 5 0.9026092675509928E-01 1.205249730835979 6 0.6987608932080662E-01 1.215485764492621 7 0.1020637327872526 1.205432046585031 8 0.9568202682193082E-01 1.204921944013730 9 0.9551304332896546E-01 1.204920914847202 10 0.9535723006160622E-01 1.204920574455330 11 0.9534430133398021E-01 1.204920572533846 12 0.9534460687029817E-01 1.204920572532641 13 0.9534461723542657E-01 1.204920572532640 14 0.9534461865617216E-01 1.204920572532640 15 0.9534462007691777E-01 1.204920572532640 16 0.9534462007691777E-01 1.204920572532640 g_05(x) = exp ( x ) - 2x + 1/(100x) - 1/(1000000x^2) Step X F(X) 0 0.2000000000000000E-03 25.99980002000133 0 2.000000000000000 3.394055848930650 1 0.7640556292979601 0.6319409659880333 2 1.236144370702040 0.9781158267720461 3 0.4722887414040793 0.6802518820559130 4 0.6885274466075678 0.6282485878721349 5 0.7016460077946312 0.6280282438453870 6 0.7030662791367996 0.6280257405372534 7 0.7032084067069250 0.6280257206060759 8 0.7032048702467216 0.6280257205928642 9 0.7032048403471922 0.6280257205928630 10 0.7032048298686234 0.6280257205928630 11 0.7032048193900549 0.6280257205928637 12 0.7032048193900549 0.6280257205928637 TEST_GLOMIN_ALL Test the Brent GLOMIN routine, which seeks a global minimizer of a function F(X) in an interval [A,B], given some upper bound M for F". h_01(x) = 2 - x A X B F(A) F(X) F(B) 7.00000000 9.00000000 9.00000000 -5.00000 -7.00000 -7.00000 h_01(x) = 2 - x A X B F(A) F(X) F(B) 7.00000000 9.00000000 9.00000000 -5.00000 -7.00000 -7.00000 h_02(x) = x * x A X B F(A) F(X) F(B) -1.00000000 0.00000000 2.00000000 1.00000 0.00000 4.00000 h_02(x) = x * x A X B F(A) F(X) F(B) -1.00000000 0.00000000 2.00000000 1.00000 0.00000 4.00000 h_03(x) = x^3 + x^2 A X B F(A) F(X) F(B) -0.50000000 0.00000000 2.00000000 0.125000 0.931583E-17 12.0000 h_03(x) = x^3 + x^2 A X B F(A) F(X) F(B) -0.50000000 0.00000001 2.00000000 0.125000 0.387210E-16 12.0000 h_04(x) = ( x + sin(x) ) * exp(-x*x) A X B F(A) F(X) F(B) -10.00000000 -0.67957866 10.00000000 -0.351770E-42 -0.824239 0.351770E-42 h_05(x) = ( x - sin(x) ) * exp(-x*x) A X B F(A) F(X) F(B) -10.00000000 -1.19513664 10.00000000 -0.392246E-42 -0.634905E-01 0.392246E-42 BRENT_PRB Normal end of execution. 14 October 2008 11:01:36.550 PM