22 January 2019 05:49:38 PM BRENT_TEST C version Test the BRENT library. 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.000000 1.895494 2.000000 3.414710e-01 0.000000e+00 -9.070257e-02 f_02(x) = 2 * x - exp ( - x ) A Z B F(A) F(Z) F(B) 0.000000 0.351734 1.000000 -1.000000e+00 0.000000e+00 1.632121e+00 f_03(x) = x * exp ( - x ) A Z B F(A) F(Z) F(B) -1.000000 0.000000 0.500000 -2.718282e+00 2.675179e-24 3.032653e-01 f_04(x) = exp ( x ) - 1 / ( 100 * x * x ) A Z B F(A) F(Z) F(B) 0.000100 0.095345 20.000000 -9.999990e+05 -2.220446e-16 4.851652e+08 f_05(x) = (x+3) * (x-1) * (x-1) A Z B F(A) F(Z) F(B) -5.000000 -3.000000 2.000000 -7.200000e+01 0.000000e+00 5.000000e+00 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.000000e+00 3.414710e-01 2 2.000000e+00 -9.070257e-02 3 1.790125e+00 8.098148e-02 4 1.889121e+00 5.200955e-03 5 1.895546e+00 -4.266255e-05 6 1.895494e+00 1.580128e-07 7 1.895494e+00 4.761858e-12 8 1.895494e+00 0.000000e+00 0 1.895494e+00 0.000000e+00 f_02(x) = 2 * x - exp ( - x ) STATUS X F(X) 1 0.000000e+00 -1.000000e+00 2 1.000000e+00 1.632121e+00 3 3.799218e-01 7.592873e-02 4 3.531106e-01 3.721626e-03 5 3.517338e-01 2.826651e-07 6 3.517337e-01 1.026179e-12 7 3.517337e-01 0.000000e+00 0 3.517337e-01 0.000000e+00 f_03(x) = x * exp ( - x ) STATUS X F(X) 1 -1.000000e+00 -2.718282e+00 2 5.000000e-01 3.032653e-01 3 3.494487e-01 2.463881e-01 4 -2.485279e-01 -3.186468e-01 5 8.869604e-02 8.116785e-02 6 -1.339796e-02 -1.357868e-02 7 1.233723e-03 1.232202e-03 8 1.642917e-05 1.642890e-05 9 -4.035216e-10 -4.035216e-10 10 6.629578e-15 6.629578e-15 11 2.675179e-24 2.675179e-24 12 -2.220446e-16 -2.220446e-16 0 2.675179e-24 2.675179e-24 f_04(x) = exp ( x ) - 1 / ( 100 * x * x ) STATUS X F(X) 1 1.000000e-04 -9.999990e+05 2 2.000000e+01 4.851652e+08 3 4.123803e-02 -4.838262e+00 4 4.123823e-02 -4.838206e+00 5 5.814137e-02 -1.898349e+00 6 1.002907e+01 2.267619e+04 7 5.897602e-02 -1.814325e+00 8 7.699714e-02 -6.067114e-01 9 5.053034e+00 1.564961e+02 10 9.621397e-02 2.074586e-02 11 9.557859e-02 5.636565e-03 12 9.534375e-02 -2.106421e-05 13 9.534462e-02 7.391270e-08 14 9.534462e-02 9.654499e-13 15 9.534462e-02 -2.220446e-16 16 9.534462e-02 6.439294e-15 0 9.534462e-02 -2.220446e-16 f_05(x) = (x+3) * (x-1) * (x-1) STATUS X F(X) 1 -5.000000e+00 -7.200000e+01 2 2.000000e+00 5.000000e+00 3 1.545455e+00 1.352367e+00 4 1.380038e+00 6.326040e-01 5 1.236308e+00 2.365622e-01 6 -1.881846e+00 9.286310e+00 7 -3.440923e+00 -8.695792e+00 8 -2.686984e+00 4.255095e+00 9 -2.934695e+00 1.011037e+00 10 -3.003855e+00 -6.180599e-02 11 -2.999871e+00 2.061446e-03 12 -3.000000e+00 3.968598e-06 13 -3.000000e+00 -8.597567e-13 14 -3.000000e+00 0.000000e+00 0 -3.000000e+00 0.000000e+00 TEST_LOCAL_MIN_ALL Test the 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 A Z B F(A) F(Z) F(B) 0.000000 2.000000 3.141593 5.000000e+00 1.000000e+00 2.303234e+00 g_02(x) = x * x + exp ( - x ) A Z B F(A) F(Z) F(B) 0.000000 0.351734 1.000000 1.000000e+00 8.271840e-01 1.367879e+00 g_03(x) = x^4 + 2x^2 + x + 3 A Z B F(A) F(Z) F(B) -2.000000 -0.236733 2.000000 2.500000e+01 2.878493e+00 2.900000e+01 g_04(x) = exp ( x ) + 1 / ( 100 x ) A Z B F(A) F(Z) F(B) 0.000100 0.095345 1.000000 1.010001e+02 1.204921e+00 2.728282e+00 g_05(x) = exp ( x ) - 2x + 1/(100x) - 1/(1000000x^2) A Z B F(A) F(Z) F(B) 0.000200 0.703205 2.000000 2.599980e+01 6.280257e-01 3.394056e+00 TEST_LOCAL_MIN_RC_ALL Test LOCAL_MIN_RC, a reverse communication version of the 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.0000000000000000e+00 5.0000000000000000e+00 0 3.1415926535897931e+00 2.3032337867301855e+00 1 1.1999816148643265e+00 1.6400294165550906e+00 2 1.9416110387254664e+00 1.0034092707987190e+00 3 2.3999632297286531e+00 1.1599705851349753e+00 4 2.0000000000000000e+00 1.0000000000000000e+00 5 2.0000000298023224e+00 1.0000000000000009e+00 6 1.9999999701976776e+00 1.0000000000000009e+00 7 1.9999999701976776e+00 1.0000000000000009e+00 g_02(x) = x * x + exp ( - x ) Step X F(X) 0 0.0000000000000000e+00 1.0000000000000000e+00 0 1.0000000000000000e+00 1.3678794411714423e+00 1 3.8196601125010510e-01 8.2841628450359894e-01 2 6.1803398874989479e-01 9.2096909397414972e-01 3 2.3606797749978969e-01 8.4545507844277124e-01 4 3.5284968114951043e-01 8.2718570939867075e-01 5 3.5189171661040736e-01 8.2718405987403232e-01 6 3.5173204181824946e-01 8.2718402613129161e-01 7 3.5173370369581974e-01 8.2718402612752440e-01 8 3.5173371126154779e-01 8.2718402612752429e-01 9 3.5173371650278862e-01 8.2718402612752440e-01 10 3.5173371650278862e-01 8.2718402612752440e-01 g_03(x) = x^4 + 2x^2 + x + 3 Step X F(X) 0 -2.0000000000000000e+00 2.5000000000000000e+01 0 2.0000000000000000e+00 2.9000000000000000e+01 1 -4.7213595499957961e-01 3.0233786852494204e+00 2 4.7213595499957917e-01 3.9676505952485779e+00 3 -1.0557280900008412e+00 5.4156435160895509e+00 4 -1.4981389398891265e-01 2.8955782539160992e+00 5 -2.2268178171603575e-01 2.8789514581149742e+00 6 -2.3180724138501921e-01 2.8785493598638356e+00 7 -2.3705610192634397e-01 2.8784930339438439e+00 8 -2.3674552450274428e-01 2.8784927902458479e+00 9 -2.3673257047327609e-01 2.8784927898739858e+00 10 -2.3673290466844016e-01 2.8784927898737260e+00 11 -2.3673290114084491e-01 2.8784927898737260e+00 12 -2.3673289761324973e-01 2.8784927898737260e+00 13 -2.3673277265689888e-01 2.8784927898737664e+00 14 -2.3673284988417082e-01 2.8784927898737331e+00 15 -2.3673287938236384e-01 2.8784927898737274e+00 16 -2.3673289064967096e-01 2.8784927898737265e+00 17 -2.3673289064967096e-01 2.8784927898737265e+00 g_04(x) = exp ( x ) + 1 / ( 100 x ) Step X F(X) 0 1.0000000000000000e-04 1.0100010000500016e+02 0 1.0000000000000000e+00 2.7282818284590449e+00 1 3.8202781464898006e-01 1.4914289445643993e+00 2 6.1807218535101982e-01 1.8715271651909913e+00 3 2.3614437070203967e-01 1.3087040978426485e+00 4 1.4598344394694041e-01 1.2256779481342144e+00 5 9.0260926755099280e-02 1.2052497308359791e+00 6 6.9876089320806620e-02 1.2154857644926214e+00 7 1.0206373278725260e-01 1.2054320465850306e+00 8 9.5682026821930818e-02 1.2049219440137300e+00 9 9.5513043328965458e-02 1.2049209148472022e+00 10 9.5357230061606221e-02 1.2049205744553304e+00 11 9.5344301333980211e-02 1.2049205725338459e+00 12 9.5344606870298165e-02 1.2049205725326411e+00 13 9.5344617235426574e-02 1.2049205725326397e+00 14 9.5344618656172164e-02 1.2049205725326397e+00 15 9.5344620076917769e-02 1.2049205725326400e+00 16 9.5344620076917769e-02 1.2049205725326400e+00 g_05(x) = exp ( x ) - 2x + 1/(100x) - 1/(1000000x^2) Step X F(X) 0 2.0000000000000001e-04 2.5999800020001334e+01 0 2.0000000000000000e+00 3.3940558489306505e+00 1 7.6405562929796011e-01 6.3194096598803329e-01 2 1.2361443707020396e+00 9.7811582677204612e-01 3 4.7228874140407934e-01 6.8025188205591303e-01 4 6.8852744660756782e-01 6.2824858787213489e-01 5 7.0164600779463115e-01 6.2802824384538702e-01 6 7.0306627913679964e-01 6.2802574053725335e-01 7 7.0320840670692497e-01 6.2802572060607587e-01 8 7.0320487024672163e-01 6.2802572059286421e-01 9 7.0320484034719222e-01 6.2802572059286299e-01 10 7.0320482986862343e-01 6.2802572059286299e-01 11 7.0320481939005486e-01 6.2802572059286366e-01 12 7.0320481939005486e-01 6.2802572059286366e-01 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 the second derivative of F. h_01(x) = 2 - x A X B F(A) F(X) F(B) 7.000000 9.000000 9.000000 -5.000000e+00 -7.000000e+00 -7.000000e+00 h_01(x) = 2 - x A X B F(A) F(X) F(B) 7.000000 9.000000 9.000000 -5.000000e+00 -7.000000e+00 -7.000000e+00 h_02(x) = x * x A X B F(A) F(X) F(B) -1.000000 0.000000 2.000000 1.000000e+00 0.000000e+00 4.000000e+00 h_02(x) = x * x A X B F(A) F(X) F(B) -1.000000 0.000000 2.000000 1.000000e+00 0.000000e+00 4.000000e+00 h_03(x) = x^3 + x^2 A X B F(A) F(X) F(B) -0.500000 0.000000 2.000000 1.250000e-01 9.315832e-18 1.200000e+01 h_03(x) = x^3 + x^2 A X B F(A) F(X) F(B) -0.500000 0.000000 2.000000 1.250000e-01 3.872097e-17 1.200000e+01 h_04(x) = ( x + sin(x) ) * exp(-x*x) A X B F(A) F(X) F(B) -10.000000 -0.679579 10.000000 -3.517696e-43 -8.242394e-01 3.517696e-43 h_05(x) = ( x - sin(x) ) * exp(-x*x) A X B F(A) F(X) F(B) -10.000000 -1.195137 10.000000 -3.922456e-43 -6.349053e-02 3.922456e-43 BRENT_TEST Normal end of execution. 22 January 2019 05:49:38 PM