Consider $f \in C^1$. The steepest descent consists to iteratively compute $$ x_{k+1} = x_k - \alpha^* \nabla f(x^k) $$ where $\alpha^* \in \arg\min_{\alpha \geq 0} f(x_k - \alpha \nabla f(x_k))$.
using Optim
using Plots
plotly()
#pyplot()
Plots.PlotlyBackend()
We need the LinearAlgebra library to access some methods as det, that computes a matrix determinant.
using LinearAlgebra
Consider the bivariate function $$ f(x, y) = 4x^2 - 4xy + 2y^2 $$
f1(x) = 4x[1]*(x[1]-x[2])+2*x[2]*x[2]
default(size=(600,600), fc=:heat)
x, y = -2.5:0.1:2.5, 0.5:0.1:2.5
z = Surface((x,y)->f1([x,y]), x, y)
surface(x,y,z)
Its gradient is $$ \nabla f(x, y) = \begin{pmatrix} 8x - 4y \\ 4y - 4x \end{pmatrix} $$ The Hessian is $$ \nabla f^2(x,y) = \begin{pmatrix} 8 & -4 \\ -4 & 4 \end{pmatrix} $$
A = [8 -4; -4 4 ]
2×2 Array{Int64,2}: 8 -4 -4 4
The principal minors determinants are
8
det( A )
16.0
Therefore, the matrix is positive definite. We can confirm this by computing the eigenvalues:
eigvals(A)
2-element Array{Float64,1}: 1.5278640450004206 10.47213595499958
We compute the gradient as
function f1grad(x)
return [8*x[1]-4*x[2], 4*x[2]-4*x[1]]
end
f1grad (generic function with 1 method)
Consider $x_0 = (2, 3)$. Therefore $\nabla f(x_0) = (4, 4)$.
We have to minimize the univariate function $$ m(\alpha) = f((2, 3) - \alpha(4, 4)) = f(2 - 4\alpha, 3 - 4\alpha) $$ The derivative of $m(\alpha)$ is \begin{align*} m'(\alpha) &= \nabla_{(x,y)} f(2 - 4\alpha, 3 - 4\alpha)^T \nabla_{\alpha} \begin{pmatrix} 2 - 4\alpha \\ 3 - 4\alpha \end{pmatrix} \\ &= \begin{pmatrix} 8(2-4\alpha) - 4(3-4\alpha) & 4(3-4\alpha) - 4(2-4\alpha)\end{pmatrix}\begin{pmatrix} -4 \\ -4 \end{pmatrix} \\ &= -\begin{pmatrix} 4 - 16\alpha & 4\end{pmatrix}\begin{pmatrix} 4 \\ 4 \end{pmatrix} \\ &= -16+64\alpha-16\\ &= 64\alpha-32 \end{align*}
The second derivate of $m(\alpha)$ is $$ m''(\alpha) = 64 $$ Therefore the unidimensionel model is strictly convex. The minimizer can be found by setting $m'(\alpha^*) = 0$, leading to $\alpha^* = \frac{1}{2}$. Therefore $$ x_1 = x_0 - \frac{1}{2}\nabla f(x_0) = (2, 3) - \frac{1}{2}(4, 4) = (0, 1), $$ and $$ \nabla f(x_1) = \begin{pmatrix} -4 \\ 4 \end{pmatrix} $$ The univariate function to minimize is now $$ m(\alpha) = f((0, 1) - \alpha(-4, 4)) = f(4\alpha, 1 - 4\alpha) $$ and its derivative is \begin{align*} m'(\alpha) &= \nabla_{(x,y)} f(4\alpha, 1 - 4\alpha)^T \nabla_{\alpha} \begin{pmatrix} 4\alpha \\ 1 - 4\alpha \end{pmatrix} \\ &= ( 8 \times 4\alpha - 4(1-4\alpha), 4(1-4\alpha) - 4\times(4\alpha))\begin{pmatrix} 4 \\ -4 \end{pmatrix} \\ &= ( -4 + 48\alpha, 4 - 32 \alpha)\begin{pmatrix} 4 \\ -4 \end{pmatrix} \\ &= -32+320\alpha \end{align*} The root of $m'(\alpha)$ is $\alpha^* = \frac{1}{10}$, and $m''(\alpha) = 320$, thus $\alpha^*$ is a global minimizer. We obtain $$ x_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix} - \frac{1}{10}\begin{pmatrix} -4 \\ 4 \end{pmatrix} = \begin{pmatrix} \frac{4}{10} \\ \frac{6}{10} \end{pmatrix} = \begin{pmatrix} \frac{2}{5} \\ \frac{3}{5} \end{pmatrix} $$ We could continue, but such a hand computation is tedious. We will automatize the procedure by constructing a Julia function.
function steepestdescent(f::Function, fprime::Function, x0, h::Float64, verbose::Bool = true,
record::Bool = false, tol::Float64 = 1e-7, maxiter::Int64 = 1000)
function fsearch(α::Float64)
return(f(x-α*grad))
end
x = x0
k = 0
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx")
end
if (record)
iterates = [ fx x' ]
end
while ((k < maxiter) && (norm(grad) > tol))
α = Optim.minimizer(optimize(fsearch, 0, h, GoldenSection()))
x = x-α*grad
k += 1
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx")
end
if (record)
iterates = [ iterates; fx x' ]
end
end
if (k == maxiter)
println("WARNING: maximum number of iterations reached")
end
if (record)
return x, iterates
else
return x
end
end
steepestdescent (generic function with 5 methods)
The following variant proposes to enlarge the interval where the unidimensional search is done when the upper bound is reached.
This is only valid for convex functions!
But the idea will be adapted and generalized when discussing about trust regions.
function steepestdescent_convex(f::Function, fprime::Function, x0, h::Float64, verbose::Bool = true,
record::Bool = false, tol::Float64 = 1e-7, maxiter::Int64 = 1000)
function fsearch(α::Float64)
return(f(x-α*grad))
end
x = x0
k = 0
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx")
end
if (record)
iterates = [ fx x' ]
end
Δ = 1e-6
while ((k < maxiter) && (norm(grad) > tol))
α = Optim.minimizer(optimize(fsearch, 0, h, GoldenSection()))
while ((h-α) <= Δ)
h *= 2
α = Optim.minimizer(optimize(fsearch, α, h, GoldenSection()))
end
h = α
x = x-α*grad
k += 1
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx")
end
if (record)
iterates = [ iterates; fx x' ]
end
end
if (k == maxiter)
println("WARNING: maximum number of iterations reached")
end
if (record)
return x, iterates
else
return x
end
end
steepestdescent_convex (generic function with 5 methods)
Executing this function on the problem, we obtain
sol, iter = steepestdescent(f1, f1grad, [2.0,3.0], 2.0, true, true)
0. x = [2.0, 3.0], f([2.0, 3.0]) = 10.0 1. x = [3.3384826014781765e-9, 1.0000000033384826], f([3.3384826014781765e-9, 1.0000000033384826]) = 2.0 2. x = [0.4000000056568157, 0.5999999996847565], f([0.4000000056568157, 0.5999999996847565]) = 0.4000000042732578 3. x = [1.2686234840408872e-8, 0.20000004191604126], f([1.2686234840408872e-8, 0.20000004191604126]) = 0.08000002338384717 4. x = [0.08000002003440877, 0.12000002949337335], f([0.08000002003440877, 0.12000002949337335]) = 0.01600000792444612 5. x = [1.2797865406311004e-9, 0.04000001297171028], f([1.2797865406311004e-9, 0.04000001297171028]) = 0.003200001870708075 6. x = [0.016000005590790508, 0.024000008148791697], f([0.016000005590790508, 0.024000008148791697]) = 0.0006400004396667061 7. x = [4.5701057174718507e-10, 0.008000003964587964], f([4.5701057174718507e-10, 0.008000003964587964]) = 0.00012800011224250156 8. x = [0.0032000017064671205, 0.004800002532327185], f([0.0032000017064671205, 0.004800002532327185]) = 2.560002712829075e-5 9. x = [4.110368252360774e-11, 0.0016000009764577262], f([4.110368252360774e-11, 0.0016000009764577262]) = 5.120005986267632e-6 10. x = [0.0006400004046497921, 0.0009600005964701434], f([0.0006400004046497921, 0.0009600005964701434]) = 1.0240012814339186e-6 11. x = [1.6262869089594956e-11, 0.00032000025010139714], f([1.6262869089594956e-11, 0.00032000025010139714]) = 2.048002993134258e-7 12. x = [0.00012800010446232586, 0.0001920001553967927], f([0.00012800010446232586, 0.0001920001553967927]) = 4.0960066523961365e-8 13. x = [1.2406358492617064e-12, 6.40000573618869e-5], f([1.2406358492617064e-12, 6.40000573618869e-5]) = 8.192014367046571e-9 14. x = [2.5600023426720605e-5, 3.84000346795478e-5], f([2.5600023426720605e-5, 3.84000346795478e-5]) = 1.6384029750422933e-9 15. x = [1.0173143286161621e-12, 1.2800014112273815e-5], f([1.0173143286161621e-12, 1.2800014112273815e-5]) = 3.276806704622707e-10 16. x = [5.120005960429759e-6, 7.680008762232643e-6], f([5.120005960429759e-6, 7.680008762232643e-6]) = 6.553615076014975e-11 17. x = [4.0998192135725505e-13, 2.5600039254326795e-6], f([4.0998192135725505e-13, 2.5600039254326795e-6]) = 1.3107235998240816e-11 18. x = [1.0240016826511797e-6, 1.5360024887706478e-6], f([1.0240016826511797e-6, 1.5360024887706478e-6]) = 2.621448543078865e-12 19. x = [6.50489277175567e-14, 5.12001011992864e-7], f([6.50489277175567e-14, 5.12001011992864e-7]) = 5.242899393429833e-13 20. x = [2.048004222892293e-7, 3.072006287329907e-7], f([2.048004222892293e-7, 3.072006287329907e-7]) = 1.048580304991432e-13 21. x = [6.105355806159245e-15, 1.0240023135252877e-7], f([6.105355806159245e-15, 1.0240023135252877e-7]) = 2.0971612261343592e-14 22. x = [4.096009413622503e-8, 6.14401408795172e-8], f([4.096009413622503e-8, 6.14401408795172e-8]) = 4.194323252511695e-15 23. x = [5.772500948176087e-16, 2.048004861982361e-8], f([5.772500948176087e-16, 2.048004861982361e-8]) = 8.388647356522391e-16 24. x = [8.192019638207948e-9, 1.2288029327965716e-8], f([8.192019638207948e-9, 1.2288029327965716e-8]) = 1.677729622627484e-16
([8.192019638207948e-9, 1.2288029327965716e-8], [10.0 2.0 3.0; 2.0 3.3384826014781765e-9 1.0000000033384826; … ; 8.388647356522391e-16 5.772500948176087e-16 2.048004861982361e-8; 1.677729622627484e-16 8.192019638207948e-9 1.2288029327965716e-8])
sol, iter = steepestdescent(f1, f1grad, [10.0,10.0], 2.0, true, true)
0. x = [10.0, 10.0], f([10.0, 10.0]) = 200.0 1. x = [5.000000000465118, 10.0], f([5.000000000465118, 10.0]) = 100.0 2. x = [4.999999999534882, 4.9999999754264985], f([4.999999999534882, 4.9999999754264985]) = 49.999999990697646 3. x = [2.499999987945808, 4.99999998748069], f([2.499999987945808, 4.99999998748069]) = 24.9999998748069 4. x = [2.499999999534882, 2.4999999754264985], f([2.499999999534882, 2.4999999754264985]) = 12.49999999534882 5. x = [1.2499999878295287, 2.49999998748069], f([1.2499999878295287, 2.49999998748069]) = 6.24999993740345 6. x = [1.2499999996511608, 1.2500000252711772], f([1.2499999996511608, 1.2500000252711772]) = 3.1249999982558054 7. x = [0.6249999960013161, 1.2500000124611685], f([0.6249999960013161, 1.2500000124611685]) = 1.562500031152922 8. x = [0.6250000164598511, 0.6250000365727931], f([0.6250000164598511, 0.6250000365727931]) = 0.7812500411496293 9. x = [0.3125000099692602, 0.6250000265163219], f([0.3125000099692602, 0.6250000265163219]) = 0.39062503314540314 10. x = [0.3125000165470615, 0.3125000193296728], f([0.3125000165470615, 0.3125000193296728]) = 0.19531252068382743 11. x = [0.15625000808538766, 0.3125000179383671], f([0.15625000808538766, 0.3125000179383671]) = 0.09765626121147977 12. x = [0.1562500098529794, 0.15625001276559403], f([0.1562500098529794, 0.15625001276559403]) = 0.04882813115811234 13. x = [0.07812500430351281, 0.15625001130928667], f([0.07812500430351281, 0.15625001130928667]) = 0.02441406603415222 14. x = [0.07812500700577368, 0.07812500937494776], f([0.07812500700577368, 0.07812500937494776]) = 0.012207033439304385 15. x = [0.039062503647831766, 0.0781250081903607], f([0.039062503647831766, 0.0781250081903607]) = 0.006103516904743926 16. x = [0.03906250454252888, 0.039062505661911356], f([0.03906250454252888, 0.039062505661911356]) = 0.0030517585222701814 17. x = [0.019531252311134607, 0.039062505102220105], f([0.019531252311134607, 0.039062505102220105]) = 0.001525879304860972 18. x = [0.019531252791085474, 0.019531253318174426], f([0.019531252791085474, 0.019531253318174426]) = 0.0007629396711785688 19. x = [0.00976562639917667, 0.01953125305462994], f([0.00976562639917667, 0.01953125305462994]) = 0.00038146984588399154 20. x = [0.009765626655453257, 0.009765626902696594], f([0.009765626655453257, 0.009765626902696594]) = 0.00019073492794739847 21. x = [0.004882813321393021, 0.009765626779074922], f([0.004882813321393021, 0.009765626779074922]) = 9.536746638818527e-5 22. x = [0.004882813457681894, 0.00488281357315299], f([0.004882813457681894, 0.00488281357315299]) = 4.768373452503885e-5 23. x = [0.0024414067215988555, 0.00488281351541744], f([0.0024414067215988555, 0.00488281351541744]) = 2.3841867826343228e-5 24. x = [0.002441406793818581, 0.0024414068474788433], f([0.002441406793818581, 0.0024414068474788433]) = 1.1920934265807051e-5 25. x = [0.001220703391250601, 0.0024414068206487114], f([0.001220703391250601, 0.0024414068206487114]) = 5.96046726391005e-6 26. x = [0.001220703429398108, 0.0012207034704917847], f([0.001220703429398108, 0.0012207034704917847]) = 2.980233725088607e-6 27. x = [0.0006103517190014818, 0.0012207034499449457], f([0.0006103517190014818, 0.0012207034499449457]) = 1.4901169127074928e-6 28. x = [0.0006103517309434633, 0.0006103517504714804], f([0.0006103517309434633, 0.0006103517504714804]) = 7.450584709313643e-7 29. x = [0.00030517586711353465, 0.0006103517407074716], f([0.00030517586711353465, 0.0006103517407074716]) = 3.7252924738464066e-7 30. x = [0.0003051758735939367, 0.00030517587625456487], f([0.0003051758735939367, 0.00030517587625456487]) = 1.8626462764764486e-7 31. x = [0.00015258793658485165, 0.00030517587492425076], f([0.00015258793658485165, 0.00030517587492425076]) = 9.313231463578194e-8 32. x = [0.00015258793833939906, 0.0001525879411553668], f([0.00015258793833939906, 0.0001525879411553668]) = 4.656615785333651e-8 33. x = [7.629396854713192e-5, 0.0001525879397473829], f([7.629396854713192e-5, 0.0001525879397473829]) = 2.328307935635096e-8 34. x = [7.629397120025079e-5, 7.629397349970635e-5], f([7.629397120025079e-5, 7.629397349970635e-5]) = 1.1641540083009406e-8 35. x = [3.814698573457742e-5, 7.629397234997854e-5], f([3.814698573457742e-5, 7.629397234997854e-5]) = 5.820770216939291e-9 36. x = [3.814698661540107e-5, 3.814698770145251e-5], f([3.814698661540107e-5, 3.814698770145251e-5]) = 2.910385175671179e-9 37. x = [1.907349334308836e-5, 3.8146987158426776e-5], f([1.907349334308836e-5, 3.8146987158426776e-5]) = 1.4551926292651776e-9 38. x = [1.907349381533839e-5, 1.9073494326525932e-5], f([1.907349381533839e-5, 1.9073494326525932e-5]) = 7.275963326475042e-10 39. x = [9.536746909444012e-6, 1.9073494070932155e-5], f([9.536746909444012e-6, 1.9073494070932155e-5]) = 3.637981760738842e-10 40. x = [9.536747161488129e-6, 9.536747401162812e-6], f([9.536747161488129e-6, 9.536747401162812e-6]) = 1.8189909284430388e-10 41. x = [4.7683735736719255e-6, 9.536747281325468e-6], f([4.7683735736719255e-6, 9.536747281325468e-6]) = 9.094954870786873e-11 42. x = [4.7683737076535354e-6, 4.768373819531331e-6], f([4.7683737076535354e-6, 4.768373819531331e-6]) = 4.5474775631683075e-11 43. x = [2.3841868463109237e-6, 4.7683737635924315e-6], f([2.3841868463109237e-6, 4.7683737635924315e-6]) = 2.2737388349316652e-11 44. x = [2.384186917281503e-6, 2.3841870010788953e-6], f([2.384186917281503e-6, 2.3841870010788953e-6]) = 1.1368694513072568e-11 45. x = [1.1920934688120761e-6, 2.384186959180198e-6], f([1.1920934688120761e-6, 2.384186959180198e-6]) = 5.68434745632492e-12 46. x = [1.1920934903681212e-6, 1.1920935045192326e-6], f([1.1920934903681212e-6, 1.1920935045192326e-6]) = 2.8421737795561007e-12 47. x = [5.960467363959298e-7, 1.1920934974436767e-6], f([5.960467363959298e-7, 1.1920934974436767e-6]) = 1.4210869066474978e-12 48. x = [5.960467610477448e-7, 5.960467879667743e-7], f([5.960467610477448e-7, 5.960467879667743e-7]) = 7.105434827110162e-13 49. x = [2.9802337809197755e-7, 5.960467745072589e-7], f([2.9802337809197755e-7, 5.960467745072589e-7]) = 3.5527175740050737e-13 50. x = [2.980233964152791e-7, 2.9802341429660983e-7], f([2.980233964152791e-7, 2.9802341429660983e-7]) = 1.776358896217978e-13 51. x = [1.4901169674295845e-7, 2.980234053559438e-7], f([1.4901169674295845e-7, 2.980234053559438e-7]) = 8.881795013995334e-14 52. x = [1.4901170861298351e-7, 1.490117200548806e-7], f([1.4901170861298351e-7, 1.490117200548806e-7]) = 4.440897860752167e-14 53. x = [7.450585482476679e-8, 1.4901171433393165e-7], f([7.450585482476679e-8, 1.4901171433393165e-7]) = 2.2204491008737274e-14 54. x = [7.45058595091643e-8, 7.450586387592613e-8], f([7.45058595091643e-8, 7.450586387592613e-8]) = 1.1102246202398695e-14 55. x = [3.725292933662608e-8, 7.450586169254506e-8], f([3.725292933662608e-8, 7.450586169254506e-8]) = 5.551123426548662e-15 56. x = [3.7252932355918514e-8, 3.7252935164607425e-8], f([3.7252932355918514e-8, 3.7252935164607425e-8]) = 2.7755619382292965e-15 57. x = [1.862646628163515e-8, 3.725293376026287e-8], f([1.862646628163515e-8, 3.725293376026287e-8]) = 1.3877810737465348e-15
([1.862646628163515e-8, 3.725293376026287e-8], [200.0 10.0 10.0; 100.0 5.000000000465118 10.0; … ; 2.7755619382292965e-15 3.7252932355918514e-8 3.7252935164607425e-8; 1.3877810737465348e-15 1.862646628163515e-8 3.725293376026287e-8])
sol, iter = steepestdescent(f1, f1grad, [100.0,100.0], 2.0, true, true)
0. x = [100.0, 100.0], f([100.0, 100.0]) = 20000.0 1. x = [50.00000000465118, 100.0], f([50.00000000465118, 100.0]) = 10000.0 2. x = [49.99999999534882, 49.99999975426499], f([49.99999999534882, 49.99999975426499]) = 4999.999999069764 3. x = [24.999999879458084, 49.9999998748069], f([24.999999879458084, 49.9999998748069]) = 2499.9999874806904 4. x = [24.99999999534882, 24.99999975426499], f([24.99999999534882, 24.99999975426499]) = 1249.9999995348821 5. x = [12.49999987829529, 24.999999874806903], f([12.49999987829529, 24.999999874806903]) = 624.9999937403452 6. x = [12.49999999651161, 12.500000252711775], f([12.49999999651161, 12.500000252711775]) = 312.49999982558063 7. x = [6.249999960013162, 12.50000012461169], f([6.249999960013162, 12.50000012461169]) = 156.2500031152923 8. x = [6.250000164598514, 6.250000365727932], f([6.250000164598514, 6.250000365727932]) = 78.125004114963 9. x = [3.1250000996926026, 6.25000026516322], f([3.1250000996926026, 6.25000026516322]) = 39.06250331454032 10. x = [3.125000165470614, 3.1250002608189593], f([3.125000165470614, 3.1250002608189593]) = 19.531252068382752 11. x = [1.5625000888237965, 3.1250002131447854], f([1.5625000888237965, 3.1250002131447854]) = 9.765626332154953 12. x = [1.5625001243209877, 1.562500135625861], f([1.5625001243209877, 1.562500135625861]) = 4.882813277006204 13. x = [0.7812500599156866, 1.5625001299734242], f([0.7812500599156866, 1.5625001299734242]) = 2.4414066561669676 14. x = [0.7812500700577374, 0.7812500728839603], f([0.7812500700577374, 0.7812500728839603]) = 1.220703343930439 15. x = [0.39062503249335817, 0.7812500714708488], f([0.39062503249335817, 0.7812500714708488]) = 0.6103516741732063 16. x = [0.39062503897749046, 0.3906250441938745], f([0.39062503897749046, 0.3906250441938745]) = 0.30517584215233196 17. x = [0.19531252012262626, 0.39062504158568245], f([0.19531252012262626, 0.39062504158568245]) = 0.15258792311381614 18. x = [0.1953125214630562, 0.1953125191445551], f([0.1953125214630562, 0.1953125191445551]) = 0.07629396208051357 19. x = [0.0976562611933118, 0.19531252030380564], f([0.0976562611933118, 0.19531252030380564]) = 0.03814698058742449 20. x = [0.09765625911049375, 0.09765625729011158], f([0.09765625911049375, 0.09765625729011158]) = 0.019073489886911793 21. x = [0.04882812945557291, 0.09765625820030265], f([0.04882812945557291, 0.09765625820030265]) = 0.009536744765684177 22. x = [0.048828128744729714, 0.048828128156020244], f([0.048828128744729714, 0.048828128156020244]) = 0.0047683723134238016 23. x = [0.02441406448326867, 0.04882812845037497], f([0.02441406448326867, 0.04882812845037497]) = 0.0023841861279663176 24. x = [0.024414063967106287, 0.024414063833492348], f([0.024414063967106287, 0.024414063833492348]) = 0.001192093038779915 25. x = [0.012207031917881715, 0.024414063900299317], f([0.012207031917881715, 0.024414063900299317]) = 0.0005960465161278985 26. x = [0.012207031982417602, 0.01220703201976412], f([0.012207031982417602, 0.01220703201976412]) = 0.00029802325963953244 27. x = [0.006103516010449831, 0.012207032001090861], f([0.006103516010449831, 0.012207032001090861]) = 0.0001490116302756564 28. x = [0.0061035159906410305, 0.006103515979885108], f([0.0061035159906410305, 0.006103515979885108]) = 7.450581489602152e-5 29. x = [0.0030517579902264395, 0.006103515985263069], f([0.0030517579902264395, 0.006103515985263069]) = 3.7252907382361815e-5 30. x = [0.00305175799503663, 0.003051757974944078], f([0.00305175799503663, 0.003051757974944078]) = 1.862645372053998e-5 31. x = [0.0015258789876139817, 0.003051757984990354], f([0.0015258789876139817, 0.003051757984990354]) = 9.313226798952386e-6 32. x = [0.0015258789973763723, 0.001525878979972801], f([0.0015258789973763723, 0.001525878979972801]) = 4.656613429268647e-6 33. x = [0.00076293950265073, 0.0015258789886745865], f([0.00076293950265073, 0.0015258789886745865]) = 2.328306688078579e-6 34. x = [0.0007629394860238558, 0.0007629394721569798], f([0.0007629394860238558, 0.0007629394721569798]) = 1.164153318668691e-6 35. x = [0.00038146974241065455, 0.0007629394790904176], f([0.00038146974241065455, 0.0007629394790904176]) = 5.820766487547578e-7 36. x = [0.00038146973667976293, 0.0003814697322578999], f([0.00038146973667976293, 0.0003814697322578999]) = 2.9103832000505534e-7 37. x = [0.00019073486929503222, 0.00038146973446883135], f([0.00019073486929503222, 0.00038146973446883135]) = 1.455191583157207e-7 38. x = [0.00019073486517379897, 0.00019073486167159494], f([0.00019073486517379897, 0.00019073486167159494]) = 7.275957758573457e-8 39. x = [9.536743241883858e-5, 0.0001907348634226969], f([9.536743241883858e-5, 0.0001907348634226969]) = 3.637978812487484e-8 40. x = [9.536743100385829e-5, 9.536742988065e-5], f([9.536743100385829e-5, 9.536742988065e-5]) = 1.8189893792551346e-8 41. x = [4.768371573184554e-5, 9.536743044225413e-5], f([4.768371573184554e-5, 9.536743044225413e-5]) = 9.09494678915818e-9 42. x = [4.768371471040854e-5, 4.768371343244386e-5], f([4.768371471040854e-5, 4.768371343244386e-5]) = 4.547473297167267e-9 43. x = [2.38418571119822e-5, 4.768371407142619e-5], f([2.38418571119822e-5, 4.768371407142619e-5]) = 2.2737365876455284e-9 44. x = [2.3841856959443993e-5, 2.3841856992588765e-5], f([2.3841856959443993e-5, 2.3841856992588765e-5]) = 1.1368682865491758e-9 45. x = [1.192092849740331e-5, 2.384185697601638e-5], f([1.192092849740331e-5, 2.384185697601638e-5]) = 5.684341440648209e-10 46. x = [1.192092847861307e-5, 1.1920928437706593e-5], f([1.192092847861307e-5, 1.1920928437706593e-5]) = 2.8421707158441623e-10 47. x = [5.96046421940776e-6, 1.1920928458159831e-5], f([5.96046421940776e-6, 1.1920928458159831e-5]) = 1.4210853530456493e-10 48. x = [5.960464238752071e-6, 5.960464269155023e-6], f([5.960464238752071e-6, 5.960464269155023e-6]) = 7.105426788288461e-11 49. x = [2.9802321348547432e-6, 5.960464253953547e-6], f([2.9802321348547432e-6, 5.960464253953547e-6]) = 3.552713412265802e-11 50. x = [2.980232119098804e-6, 2.980232119930564e-6], f([2.980232119098804e-6, 2.980232119930564e-6]) = 1.7763566967416295e-11 51. x = [1.4901160601038979e-6, 2.980232119514684e-6], f([1.4901160601038979e-6, 2.980232119514684e-6]) = 8.881783486186985e-12 52. x = [1.490116059410786e-6, 1.4901160526418082e-6], f([1.490116059410786e-6, 1.4901160526418082e-6]) = 4.4408917410278585e-12 53. x = [7.450580263902121e-7, 1.4901160560262971e-6], f([7.450580263902121e-7, 1.4901160560262971e-6]) = 2.220445860427367e-12 54. x = [7.450580296360851e-7, 7.450580226591672e-7], f([7.450580296360851e-7, 7.450580226591672e-7]) = 1.110222935050411e-12 55. x = [3.725290175133376e-7, 7.45058026147626e-7], f([3.725290175133376e-7, 7.45058026147626e-7]) = 5.551114623269968e-13 56. x = [3.7252900863428804e-7, 3.7252899954926263e-7], f([3.7252900863428804e-7, 3.7252899954926263e-7]) = 2.775557245480911e-13 57. x = [1.862645028665083e-7, 3.725290040917753e-7], f([1.862645028665083e-7, 3.725290040917753e-7]) = 1.3877785888960991e-13 58. x = [1.8626450122526693e-7, 1.8626449790910904e-7], f([1.8626450122526693e-7, 1.8626449790910904e-7]) = 6.938892883339495e-14 59. x = [9.313225050049298e-8, 1.8626449956718794e-7], f([9.313225050049298e-8, 1.8626449956718794e-7]) = 3.4694463799014965e-14 60. x = [9.313224906669492e-8, 9.313224802179339e-8], f([9.313224906669492e-8, 9.313224802179339e-8]) = 1.7347231632441794e-14 61. x = [4.656612478386591e-8, 9.313224854424415e-8], f([4.656612478386591e-8, 9.313224854424415e-8]) = 8.673615718906866e-15 62. x = [4.656612376037819e-8, 4.656612253835665e-8], f([4.656612376037819e-8, 4.656612253835665e-8]) = 4.3368077641337195e-15 63. x = [2.3283061655662933e-8, 4.656612314936741e-8], f([2.3283061655662933e-8, 4.656612314936741e-8]) = 2.1684038251620514e-15
([2.3283061655662933e-8, 4.656612314936741e-8], [20000.0 100.0 100.0; 10000.0 50.00000000465118 100.0; … ; 4.3368077641337195e-15 4.656612376037819e-8 4.656612253835665e-8; 2.1684038251620514e-15 2.3283061655662933e-8 4.656612314936741e-8])
We converge to the solution $(0,0)$, but the method was quite slow close to the solution.
sol, iter = steepestdescent(f1, f1grad, [2.0,3.0], 0.1, true, true)
0. x = [2.0, 3.0], f([2.0, 3.0]) = 10.0 1. x = [1.6000000074048677, 2.6000000074048675], f([1.6000000074048677, 2.6000000074048675]) = 7.120000047391152 2. x = [1.3600000088858413, 2.2000000148097354], f([1.3600000088858413, 2.2000000148097354]) = 5.110400068243261 3. x = [1.1520000115515936, 1.8640000186602665], f([1.1520000115515936, 1.8640000186602665]) = 3.6680960734752444 4. x = [0.9760000130325671, 1.579200021089063], f([0.9760000130325671, 1.579200021089063]) = 2.632852550317856 5. x = [0.8268800138026734, 1.337920022333081], f([0.8268800138026734, 1.337920022333081]) = 1.8897848950901366 6. x = [0.7005440140325205, 1.1335040227051016], f([0.7005440140325205, 1.1335040227051016]) = 1.3564325694131156 7. x = [0.593510413869969, 0.9603200224420807], f([0.593510413869969, 0.9603200224420807]) = 0.9736078006258554 8. x = [0.5028300934295156, 0.8135961817294126], f([0.5028300934295156, 0.8135961817294126]) = 0.6988273289911094 9. x = [0.4260044927998767, 0.6892897487106355], f([0.4260044927998767, 0.6892897487106355]) = 0.5015979077313479 10. x = [0.360916799249144, 0.5839756482959244], f([0.360916799249144, 0.5839756482959244]) = 0.3600323722366426 11. x = [0.30577362018901844, 0.4947521103289335], f([0.30577362018901844, 0.4947521103289335]) = 0.2584207530781202 12. x = [0.25905556903422955, 0.4191607156723282], f([0.25905556903422955, 0.4191607156723282]) = 0.1854868916553111 13. x = [0.21947540080849198, 0.35511865820264615], f([0.21947540080849198, 0.35511865820264615]) = 0.13313708967308996 14. x = [0.18594254406352279, 0.30086135624940485], f([0.18594254406352279, 0.30086135624940485]) = 0.09556192617405829 15. x = [0.15753305183838784, 0.25489383222601064], f([0.15753305183838784, 0.25489383222601064]) = 0.06859156795840621 16. x = [0.13346414370364953, 0.21594952079190521], f([0.13346414370364953, 0.21594952079190521]) = 0.0492330301758803 17. x = [0.11307263743498301, 0.18295537056739625], f([0.11307263743498301, 0.18295537056739625]) = 0.03533803545311841 18. x = [0.09579667603377062, 0.15500227783190335], f([0.09579667603377062, 0.15500227783190335]) = 0.02536461284679652 19. x = [0.08116024661046753, 0.1313200375510599], f([0.08116024661046753, 0.1313200375510599]) = 0.018205980514151676 20. x = [0.06876006457207173, 0.11125612154624956], f([0.06876006457207173, 0.11125612154624956]) = 0.013067722676616083 21. x = [0.05825446172739567, 0.09425769907125611], f([0.05825446172739567, 0.09425769907125611]) = 0.009379630820773909 22. x = [0.04935397213874895, 0.07985640440031114], f([0.04935397213874895, 0.07985640440031114]) = 0.006732425879487195 23. x = [0.0418133563274674, 0.06765543172155274], f([0.0418133563274674, 0.06765543172155274]) = 0.004832339256082697 24. x = [0.035424844072379794, 0.05731860175527575], f([0.035424844072379794, 0.05731860175527575]) = 0.003468512406059575 25. x = [0.030012409616782164, 0.048561098844237746], f([0.030012409616782164, 0.048561098844237746]) = 0.002489597206124491 26. x = [0.02542692154593886, 0.041141623290606104], f([0.02542692154593886, 0.041141623290606104]) = 0.001786960380454355 27. x = [0.021542033697347918, 0.03485574270910449], f([0.021542033697347918, 0.03485574270910449]) = 0.0012826281269348026 28. x = [0.018250703884041035, 0.029530259202988116], f([0.018250703884041035, 0.029530259202988116]) = 0.0009206331209122758 29. x = [0.015462244509623885, 0.0250184371589329], f([0.015462244509623885, 0.0250184371589329]) = 0.0006608036464522032 30. x = [0.013099823809231468, 0.021195960169971634], f([0.013099823809231468, 0.021195960169971634]) = 0.00047430561560921335 31. x = [0.011098348866886591, 0.017957505685626388], f([0.011098348866886591, 0.017957505685626388]) = 0.00034044275967037504 32. x = [0.009402672079018529, 0.015213843008921618], f([0.009402672079018529, 0.015213843008921618]) = 0.0002443598996042107 33. x = [0.007966071645966943, 0.012889374679991334], f([0.007966071645966943, 0.012889374679991334]) = 0.00017539442046702453 34. x = [0.006748964223721221, 0.010920053502837986], f([0.006748964223721221, 0.010920053502837986]) = 0.00012589300773486358 35. x = [0.005717814264968261, 0.009251617822077644], f([0.005717814264968261, 0.009251617822077644]) = 9.036233509782691e-5 36. x = [0.00484420999799702, 0.007838096425401238], f([0.00484420999799702, 0.007838096425401238]) = 6.485945288977895e-5 37. x = [0.0041040805834613005, 0.006640541876608883], f([0.0041040805834613005, 0.006640541876608883]) = 4.655422665435992e-5 38. x = [0.0034770328789438267, 0.00562595737813201], f([0.0034770328789438267, 0.00562595737813201]) = 3.341526828893516e-5 39. x = [0.002945789536876036, 0.004766387594369238], f([0.002945789536876036, 0.004766387594369238]) = 2.3984506565032704e-5 40. x = [0.0024957129534547966, 0.004038148384853245], f([0.0024957129534547966, 0.004038148384853245]) = 1.7215380412150762e-5 41. x = [0.0021144019516911514, 0.003421174223715396], f([0.0021144019516911514, 0.003421174223715396]) = 1.235669876849351e-5 42. x = [0.0017913500858047797, 0.002898465324582174], f([0.0017913500858047797, 0.002898465324582174]) = 8.869278563691836e-6 43. x = [0.001517656152060494, 0.002455619237269258], f([0.001517656152060494, 0.002455619237269258]) = 6.366109890202818e-6 44. x = [0.0012857789296123524, 0.0020804340101312447], f([0.0012857789296123524, 0.0020804340101312447]) = 4.569408305659147e-6 45. x = [0.0010893293936116754, 0.0017625719838080035], f([0.0010893293936116754, 0.0017625719838080035]) = 3.279788226081283e-6 46. x = [0.0009228946753266042, 0.0014932749527147445], f([0.0009228946753266042, 0.0014932749527147445]) = 2.3541364851591403e-6 47. x = [0.0007818889187615411, 0.0012651228459830788], f([0.0007818889187615411, 0.0012651228459830788]) = 1.6897306194000845e-6 48. x = [0.0006624269243570404, 0.001071829278672747], f([0.0006624269243570404, 0.001071829278672747]) = 1.2128394356647428e-6 49. x = [0.0005612170982141204, 0.0009080683399780346], f([0.0005612170982141204, 0.0009080683399780346]) = 8.705408304820937e-7 50. x = [0.0004754707572213887, 0.0007693278458408564], f([0.0004754707572213887, 0.0007693278458408564]) = 6.24848859009181e-7 51. x = [0.00040282529112544547, 0.0006517850125690422], f([0.00040282529112544547, 0.0006517850125690422]) = 4.484983161431463e-7 52. x = [0.00034127906439206015, 0.0005522011258351173], f([0.00034127906439206015, 0.0005522011258351173]) = 3.219190315914174e-7 53. x = [0.0002891362641777353, 0.0004678323028197444], f([0.0002891362641777353, 0.0004678323028197444]) = 2.3106410697800706e-7 54. x = [0.00024496017478124006, 0.00039635388868616123], f([0.00024496017478124006, 0.00039635388868616123]) = 1.6585108767756158e-7 55. x = [0.00020753359112355975, 0.00033579640424524315], f([0.00020753359112355975, 0.00033579640424524315]) = 1.190430813490575e-7 56. x = [0.00017582528050979882, 0.00028449127994633895], f([0.00017582528050979882, 0.00028449127994633895]) = 8.544565739978315e-8 57. x = [0.00014896156857780094, 0.00024102488097638023], f([0.00014896156857780094, 0.00024102488097638023]) = 6.13304048059146e-8 58. x = [0.00012620226652743633, 0.00020419955669866515], f([0.00012620226652743633, 0.00020419955669866515]) = 4.40211787014339e-8 59. x = [0.0001069202763419048, 0.00017300064120773324], f([0.0001069202763419048, 0.00017300064120773324]) = 3.1597120227660606e-8 60. x = [9.05843120538884e-5, 0.00014656849575071822], f([9.05843120538884e-5, 0.00014656849575071822]) = 2.2679492828953233e-8 61. x = [7.674426096727434e-5, 0.00012417482268654175], f([7.674426096727434e-5, 0.00012417482268654175]) = 1.6278679552836683e-8 62. x = [6.501878148513563e-5, 0.00010520259835005182], f([6.501878148513563e-5, 0.00010520259835005182]) = 1.1684362167289879e-8 63. x = [5.508479582094748e-5, 8.91290719016412e-5], f([5.508479582094748e-5, 8.91290719016412e-5]) = 8.386694928987934e-9 64. x = [4.666858808064824e-5, 7.551136172145707e-5], f([4.666858808064824e-5, 7.551136172145707e-5]) = 6.0197254094723194e-9 65. x = [3.9538262436710275e-5, 6.397425247871046e-5], f([3.9538262436710275e-5, 6.397425247871046e-5]) = 4.320783611693814e-9 66. x = [3.3497353590656566e-5, 5.419985664285566e-5], f([3.3497353590656566e-5, 5.419985664285566e-5]) = 3.10133266040757e-9 67. x = [2.8379413470017753e-5, 4.5918855575275317e-5], f([2.8379413470017753e-5, 4.5918855575275317e-5]) = 2.2260462765318142e-9 68. x = [2.404342500438223e-5, 3.890307886304954e-5], f([2.404342500438223e-5, 3.890307886304954e-5]) = 1.5977911974815178e-9 69. x = [2.0369916614100872e-5, 3.2959217429616386e-5], f([2.0369916614100872e-5, 3.2959217429616386e-5]) = 1.1468479957779246e-9 70. x = [1.725767035228116e-5, 2.7923497196632285e-5], f([1.725767035228116e-5, 2.7923497196632285e-5]) = 8.231740965233705e-10 71. x = [1.4620932997920874e-5, 2.365716653787087e-5], f([1.4620932997920874e-5, 2.365716653787087e-5]) = 5.908503966364175e-10 72. x = [1.2387053256086483e-5, 2.0042673188802983e-5], f([1.2387053256086483e-5, 2.0042673188802983e-5]) = 4.240952098466578e-10 73. x = [1.0494479961774128e-5, 1.6980425272405236e-5], f([1.0494479961774128e-5, 1.6980425272405236e-5]) = 3.0440319248115275e-10 74. x = [8.891066130999589e-6, 1.4386047196180358e-5], f([8.891066130999589e-6, 1.4386047196180358e-5]) = 2.184917477050064e-10 75. x = [7.532632129819622e-6, 1.2188054810797657e-5], f([7.532632129819622e-6, 1.2188054810797657e-5]) = 1.568270142835112e-10 76. x = [6.381748371588343e-6, 1.0325885772879232e-5], f([6.381748371588343e-6, 1.0325885772879232e-5]) = 1.1256586423706423e-10 77. x = [5.406704001519548e-6, 8.748230841568691e-6], f([5.406704001519548e-6, 8.748230841568691e-6]) = 8.079649956563261e-11 78. x = [4.5806331522237495e-6, 7.411620130292598e-6], f([4.5806331522237495e-6, 7.411620130292598e-6]) = 5.799337469049334e-11 79. x = [3.8807746955176875e-6, 6.279225360028142e-6], f([3.8807746955176875e-6, 6.279225360028142e-6]) = 4.1625955654922086e-11 80. x = [3.2878450940912076e-6, 5.31984511198417e-6], f([3.2878450940912076e-6, 5.31984511198417e-6]) = 2.9877898870913244e-11 81. x = [2.7855070729112762e-6, 4.5070451198736765e-6], f([2.7855070729112762e-6, 4.5070451198736765e-6]) = 2.1445485800755723e-11 82. x = [2.359919470410276e-6, 3.818429913836477e-6], f([2.359919470410276e-6, 3.818429913836477e-6]) = 1.539294524080962e-11 83. x = [1.9993558662914607e-6, 3.2350257472660737e-6], f([1.9993558662914607e-6, 3.2350257472660737e-6]) = 1.1048607869643784e-11 84. x = [1.6938814778197153e-6, 2.7407578040262003e-6], f([1.6938814778197153e-6, 2.7407578040262003e-6]) = 7.930369006544579e-12 85. x = [1.4350794219654107e-6, 2.322007281295587e-6], f([1.4350794219654107e-6, 2.322007281295587e-6]) = 5.692187950009173e-12 86. x = [1.2158188009703066e-6, 1.9672361441310998e-6], f([1.2158188009703066e-6, 1.9672361441310998e-6]) = 4.0856867607913985e-12 87. x = [1.0300582212853326e-6, 1.6666692124309284e-6], f([1.0300582212853326e-6, 1.6666692124309284e-6]) = 2.932586986569762e-12 88. x = [8.726793321428626e-7, 1.4120248206867102e-6], f([8.726793321428626e-7, 1.4120248206867102e-6]) = 2.104925545523829e-12 89. x = [7.393457971715496e-7, 1.196286629262953e-6], f([7.393457971715496e-7, 1.196286629262953e-6]) = 1.5108542636552369e-12 90. x = [6.263838132306625e-7, 1.0135102998099781e-6], f([6.263838132306625e-7, 1.0135102998099781e-6]) = 1.084447196177261e-12 91. x = [5.306808843417926e-7, 8.586597080448723e-7], f([5.306808843417926e-7, 8.586597080448723e-7]) = 7.783846196068857e-13 92. x = [4.4960006158728935e-7, 7.274681809922803e-7], f([4.4960006158728935e-7, 7.274681809922803e-7]) = 5.587018143219213e-13 93. x = [3.8090728598602225e-7, 6.163209352878605e-7], f([3.8090728598602225e-7, 6.163209352878605e-7]) = 4.010198935896925e-13 94. x = [3.227098323897098e-7, 5.221554773103321e-7], f([3.227098323897098e-7, 5.221554773103321e-7]) = 2.878404023975951e-13 95. x = [2.734041583148298e-7, 4.423772208189518e-7], f([2.734041583148298e-7, 4.423772208189518e-7]) = 2.0660345927172488e-13 96. x = [2.316317207638451e-7, 3.7478799706852615e-7], f([2.316317207638451e-7, 3.7478799706852615e-7]) = 1.482939470188842e-13 97. x = [1.9624154363532845e-7, 3.17525487606707e-7], f([1.9624154363532845e-7, 3.17525487606707e-7]) = 1.0644107702725802e-13 98. x = [1.6625850432479958e-7, 2.690119109162471e-7], f([1.6625850432479958e-7, 2.690119109162471e-7]) = 7.640030565293347e-14 99. x = [1.4085646570170562e-7, 2.2791054904054348e-7], f([1.4085646570170562e-7, 2.2791054904054348e-7]) = 5.483791471188219e-14 100. x = [1.1933551315495804e-7, 1.930889163496323e-7], f([1.1933551315495804e-7, 1.930889163496323e-7]) = 3.936105836550671e-14 101. x = [1.0110266950837403e-7, 1.635875556178968e-7], f([1.0110266950837403e-7, 1.635875556178968e-7]) = 2.8252221547679072e-14 102. x = [8.565555643479309e-8, 1.3859360163678e-7], f([8.565555643479309e-8, 1.3859360163678e-7]) = 2.0278621955923266e-14 103. x = [7.256855218393946e-8, 1.1741838394798446e-7], f([7.256855218393946e-8, 1.1741838394798446e-7]) = 1.455540435067257e-14 104. x = [6.148106422123513e-8, 9.947845157447353e-8], f([6.148106422123513e-8, 9.947845157447353e-8]) = 1.0447445406895359e-14 105. x = [5.2087593647929954e-8, 8.42794969145438e-8], f([5.2087593647929954e-8, 8.42794969145438e-8]) = 7.498872095917792e-15 106. x = [4.4129317642728464e-8, 7.140273584627505e-8], f([4.4129317642728464e-8, 7.140273584627505e-8]) = 5.3824720322367446e-15 107. x = [3.738695799187142e-8, 6.049336876681246e-8], f([3.738695799187142e-8, 6.049336876681246e-8]) = 3.86338169357254e-15 108. x = [3.1674739210844834e-8, 5.125080462793596e-8], f([3.1674739210844834e-8, 5.125080462793596e-8]) = 2.773022882578525e-15
([3.1674739210844834e-8, 5.125080462793596e-8], [10.0 2.0 3.0; 7.120000047391152 1.6000000074048677 2.6000000074048675; … ; 3.86338169357254e-15 3.738695799187142e-8 6.049336876681246e-8; 2.773022882578525e-15 3.1674739210844834e-8 5.125080462793596e-8])
sol, iter = steepestdescent_convex(f1, f1grad, [2.0,3.0], 0.1, true, true)
0. x = [2.0, 3.0], f([2.0, 3.0]) = 10.0 1. x = [-6.864689705565752e-9, 0.9999999931353103], f([-6.864689705565752e-9, 0.9999999931353103]) = 2.0 2. x = [0.39999999550607185, 0.5999999935104245], f([0.39999999550607185, 0.5999999935104245]) = 0.3999999912131972 3. x = [-4.951900556271482e-10, 0.19999999650389555], f([-4.951900556271482e-10, 0.19999999650389555]) = 0.0799999975992685 4. x = [0.07999999835247451, 0.11999999785430701], f([0.07999999835247451, 0.11999999785430701]) = 0.015999999393085048 5. x = [-6.581302169905712e-10, 0.03999999754132129], f([-6.581302169905712e-10, 0.03999999754132129]) = 0.0031999997119122486 6. x = [0.015999998860773402, 0.023999998285669757], f([0.015999998860773402, 0.023999998285669757]) = 0.0006399999086861844 7. x = [-4.1769140229908075e-11, 0.007999999405088599], f([-4.1769140229908075e-11, 0.007999999405088599]) = 0.00012799998229944828 8. x = [0.0031999997458548846, 0.00479999963417223], f([0.0031999997458548846, 0.00479999963417223]) = 2.5599996032173687e-5 9. x = [-1.9768119866730993e-11, 0.001599999806989613], f([-1.9768119866730993e-11, 0.001599999806989613]) = 5.1199988912495524e-6 10. x = [0.0006399999175120787, 0.0009599998776166624], f([0.0006399999175120787, 0.0009599998776166624]) = 1.0239997377648056e-6 11. x = [-7.647698988845486e-12, 0.0003199999470627073], f([-7.647698988845486e-12, 0.0003199999470627073]) = 2.0479994202932426e-7 12. x = [0.00012799997707655522, 0.00019199996539753266], f([0.00012799997707655522, 0.00019199996539753266]) = 4.095998527336782e-8 13. x = [-6.549525461904682e-13, 6.39999885352256e-5], f([-6.549525461904682e-13, 6.39999885352256e-5]) = 8.191997232685837e-9 14. x = [2.5599995215294852e-5, 3.8399992926959216e-5], f([2.5599995215294852e-5, 3.8399992926959216e-5]) = 1.6383993928834648e-9 15. x = [-1.9115841925327302e-13, 1.2799997104438184e-5], f([-1.9115841925327302e-13, 1.2799997104438184e-5]) = 3.276798615345608e-10 16. x = [5.119998791864238e-6, 7.679998197878894e-6], f([5.119998791864238e-6, 7.679998197878894e-6]) = 6.553596917497331e-11 17. x = [1.4270822953801714e-14, 2.5599993799553316e-6], f([1.4270822953801714e-14, 2.5599993799553316e-6]) = 1.3107193504610174e-11 18. x = [1.0239997515401352e-6, 1.5359996369776903e-6], f([1.0239997515401352e-6, 1.5359996369776903e-6]) = 2.621438747684656e-12 19. x = [-2.0586501567096513e-14, 5.119998261811024e-7], f([-2.0586501567096513e-14, 5.119998261811024e-7]) = 5.242876861801006e-13 20. x = [2.0479992620371114e-7, 3.071998876254902e-7], f([2.0479992620371114e-7, 3.071998876254902e-7]) = 1.0485752374445474e-13 21. x = [4.028915548807309e-15, 1.0239997217100033e-7], f([4.028915548807309e-15, 1.0239997217100033e-7]) = 2.0971506950999988e-14 22. x = [4.0959990360515646e-8, 6.143998422783399e-8], f([4.0959990360515646e-8, 6.143998422783399e-8]) = 4.194301918277864e-15 23. x = [2.667964187437204e-15, 2.0480001787039767e-8], f([2.667964187437204e-15, 2.0480001787039767e-8]) = 8.388607278346872e-16 24. x = [8.192001380727594e-9, 1.228800200709067e-8], f([8.192001380727594e-9, 1.228800200709067e-8]) = 1.6777221550601903e-16
([8.192001380727594e-9, 1.228800200709067e-8], [10.0 2.0 3.0; 2.0 -6.864689705565752e-9 0.9999999931353103; … ; 8.388607278346872e-16 2.667964187437204e-15 2.0480001787039767e-8; 1.6777221550601903e-16 8.192001380727594e-9 1.228800200709067e-8])
k = [x = i for i=1:length(iter[:,1])]
Plots.plot(k,iter[:,1])
k
k = [x = i for i=10:length(iter[:,1])]
Plots.plot(k,iter[10:length(iter[:,1]),1])
function Jacobi(f::Function, x0, h::Float64, verbose::Bool = true, δ::Float64 = 1e-6, maxiter::Int64 = 1000)
function fsearch(α::Float64)
return(f(x0-α*d))
end
x = copy(x0)
n = length(x)
k = 0
d = zeros(n)
while true
x0[:] = x[:]
k += 1
for i = 1:n
d[i] = 1.0 # d is now the i^th vector of the canonical basis
α = Optim.minimizer(optimize(fsearch, 0, h, GoldenSection()))
x[i] -= α
d[i] = 0.0
end
if verbose
println(k, ". ", f(x), " ", x, " ", x0)
end
if norm(x-x0) < δ
break
end
end
return x
end
sol = Jacobi(f1, [2.0,3.0], 1.0)
Consider the bivariate function $$ f(x,y) = \frac{(2-x)^2}{2y^2}+\frac{(3-x)^2}{2y^2} + \ln y $$ that is computed in Julia as
f(x) = (2-x[1])*(2-x[1])/(2*x[2]*x[2])+(3-x[1])*(3-x[1])/(2*x[2]*x[2])+log(x[2])
Its derivative is $$ \nabla f(x) = \begin{pmatrix} \frac{-2(2-x)}{2y^2}+\frac{-2(3-x)}{2y^2} \\ -\frac{(2-x)^2}{y^3}-\frac{(3-x)^2}{y^3} + \frac{1}{y} \end{pmatrix} = \begin{pmatrix} \frac{x-2}{y^2}+\frac{x-3}{y^2} \\ -\frac{(2-x)^2}{y^3}-\frac{(3-x)^2}{y^3} + \frac{1}{y} \end{pmatrix} $$
function fprime(x)
return [(x[1]-2)/(x[2]*x[2])+(x[1]-3)/(x[2]*x[2]),
-(2-x[1])*(2-x[1])/(x[2]*x[2]*x[2])-(3-x[1])*(3-x[1])/(x[2]*x[2]*x[2])+1/x[2]]
end
default(size=(600,600), fc=:heat)
x, y = -2.5:0.1:2.5, 0.5:0.1:2.5
z = Surface((x,y)->f([x,y]), x, y)
surface(x,y,z, linealpha = 0.3)
sol = steepestdescent(f, fprime, [1.0,1.0], 2.0)
The choice of $h$ is important. Consider for instance a too small value: $h = 0.1$.
sol = steepestdescent(f, fprime, [1.0,1.0], 0.1)
But a too big $h$ can lead to some issues too. Consider for instance $h = 10$.
sol = steepestdescent(f, fprime, [1.0,1.0], 10.0)
We will have to ensure that the iterates are such that $y > 0$ due to the logarithmic operator.
The choice of the starting point is also important to ensure that the algorithm converges fast enough. Consider for instance $x_0 = (0.1, 0.1)$.
sol = steepestdescent(f, fprime, [0.1,0.1], 2.0)
Now, take $x_0 = (100, 100)$.
sol = steepestdescent(f, fprime, [100.0,100.0], 5.0)
In practice, we often need some insight on the function to optimize in order to be efficient.
function rosenbrock(x::Vector)
return (1.0 - x[1])^2 + 100.0 * (x[2] - x[1]^2)^2
end
function rosenbrock_gradient(x::Vector)
return [-2.0 * (1.0 - x[1]) - 400.0 * (x[2] - x[1]^2) * x[1],
200.0 * (x[2] - x[1]^2)]
end
function rosenbrock_hessian(x::Vector)
h = zeros(2, 2)
h[1, 1] = 2.0 - 400.0 * x[2] + 1200.0 * x[1]^2
h[1, 2] = -400.0 * x[1]
h[2, 1] = -400.0 * x[1]
h[2, 2] = 200.0
return h
end
rosenbrock_hessian (generic function with 1 method)
default(size=(600,600))
x, y = 0:0.01:1.0, 0:0.01:1.0
z = Surface((x,y)->rosenbrock([x,y]), x, y)
surface(x,y,z, linealpha = 0.3)
Plots.contour(x,y,z, linealpha = 0.1, levels=2500)
sol, iter = steepestdescent(rosenbrock, rosenbrock_gradient, [0.0,0.0], 10.0, true, true)
0. x = [0.0, 0.0], f([0.0, 0.0]) = 1.0 1. x = [0.1612620227407261, 0.0], f([0.1612620227407261, 0.0]) = 0.7711096853441531 2. x = [0.16126202280695034, 0.02600544024872085], f([0.16126202280695034, 0.02600544024872085]) = 0.7034813943858886 3. x = [0.21133888041724883, 0.02600543876247529], f([0.21133888041724883, 0.02600543876247529]) = 0.6568010089605405 4. x = [0.21133888100318554, 0.04466412256994727], f([0.21133888100318554, 0.04466412256994727]) = 0.6219863606173075 5. x = [0.24508247498253186, 0.04466412279984179], f([0.24508247498253186, 0.04466412279984179]) = 0.5936204637173165 6. x = [0.2450824743849232, 0.06006541860916487], f([0.2450824743849232, 0.06006541860916487]) = 0.5699004704807902 7. x = [0.2711222718134955, 0.06006542082182948], f([0.2711222718134955, 0.06006542082182948]) = 0.5493311173278929 8. x = [0.2711222708981266, 0.0735072854577914], f([0.2711222708981266, 0.0735072854577914]) = 0.5312627439807038 9. x = [0.29257001561271645, 0.07350728639695933], f([0.29257001561271645, 0.07350728639695933]) = 0.5150738178410098 10. x = [0.2925700148205872, 0.08559721330212781], f([0.2925700148205872, 0.08559721330212781]) = 0.5004571839309442 11. x = [0.31093080030671383, 0.08559721400286757], f([0.31093080030671383, 0.08559721400286757]) = 0.48709466086751985 12. x = [0.31093080025786574, 0.09667796239376748], f([0.31093080025786574, 0.09667796239376748]) = 0.4748163620332654 13. x = [0.32705633895121194, 0.0966779627570338], f([0.32705633895121194, 0.0966779627570338]) = 0.4634372309681655 14. x = [0.3270563388406716, 0.10696584867584466], f([0.3270563388406716, 0.10696584867584466]) = 0.45285317109452106 15. x = [0.34147917966047076, 0.10696584889021117], f([0.34147917966047076, 0.10696584889021117]) = 0.44294683674908686 16. x = [0.34147917957615054, 0.11660802998007845], f([0.34147917957615054, 0.11660802998007845]) = 0.43364967093169987 17. x = [0.35455629129726013, 0.11660803018645081], f([0.35455629129726013, 0.11660803018645081]) = 0.4248824645510051 18. x = [0.3545562909824612, 0.12571016314624006], f([0.3545562909824612, 0.12571016314624006]) = 0.4165975815103173 19. x = [0.3665395702808029, 0.1257101637570594], f([0.3665395702808029, 0.1257101637570594]) = 0.4087389645403241 20. x = [0.36653956967664153, 0.13435125605737955], f([0.36653956967664153, 0.13435125605737955]) = 0.40127211678545444 21. x = [0.3776139464389042, 0.13435125619961247], f([0.3776139464389042, 0.13435125619961247]) = 0.3941558676722247 22. x = [0.37761394646013513, 0.14259229299276238], f([0.37761394646013513, 0.14259229299276238]) = 0.38736439964092756 23. x = [0.38791953096168935, 0.14259229227816972], f([0.38791953096168935, 0.14259229227816972]) = 0.3808665590438894 24. x = [0.38791953164271525, 0.15048156418366151], f([0.38791953164271525, 0.15048156418366151]) = 0.3746424997444731 25. x = [0.3975652307132169, 0.15048156236546914], f([0.3975652307132169, 0.15048156236546914]) = 0.3686680627004397 26. x = [0.3975652324647904, 0.1580581152372333], f([0.3975652324647904, 0.1580581152372333]) = 0.36292764913520204 27. x = [0.4066375219733344, 0.1580581134715968], f([0.4066375219733344, 0.1580581134715968]) = 0.3574021347367799 28. x = [0.4066375239092683, 0.16535407718962844], f([0.4066375239092683, 0.16535407718962844]) = 0.3520790280325243 29. x = [0.4152063101623946, 0.16535407525659443], f([0.4152063101623946, 0.16535407525659443]) = 0.34694292443681346 30. x = [0.4152063113680399, 0.17239628238293805], f([0.4152063113680399, 0.17239628238293805]) = 0.34198365826377397 31. x = [0.42332897810407716, 0.1723962804618621], f([0.42332897810407716, 0.1723962804618621]) = 0.33718863471913035 32. x = [0.4233289797073569, 0.17920742533977313], f([0.4233289797073569, 0.17920742533977313]) = 0.3325494656453579 33. x = [0.43105326682885253, 0.17920742496512393], f([0.43105326682885253, 0.17920742496512393]) = 0.32805571713162346 34. x = [0.4310532673689011, 0.18580692043008465], f([0.4310532673689011, 0.18580692043008465]) = 0.3237003845716032 35. x = [0.43841934676855787, 0.18580691897915594], f([0.43841934676855787, 0.18580691897915594]) = 0.3194747261456466 36. x = [0.4384193481341236, 0.19221152544167294], f([0.4384193481341236, 0.19221152544167294]) = 0.3153728285501027 37. x = [0.44546138112247474, 0.1922115246600468], f([0.44546138112247474, 0.1922115246600468]) = 0.31138729255049824 38. x = [0.44546138124991075, 0.19843584240960657], f([0.44546138124991075, 0.19843584240960657]) = 0.3075130796852568 39. x = [0.4522086741038411, 0.19843584213641413], f([0.4522086741038411, 0.19843584213641413]) = 0.3037438711954518 40. x = [0.4522086736606174, 0.2044926845672846], f([0.4522086736606174, 0.2044926845672846]) = 0.3000753372126599 41. x = [0.45868657490787185, 0.20449268452779948], f([0.45868657490787185, 0.20449268452779948]) = 0.29650203781054824 42. x = [0.4586865750709403, 0.21039337432120128], f([0.4586865750709403, 0.21039337432120128]) = 0.2930202240084287 43. x = [0.46491717315029296, 0.21039337412450212], f([0.46491717315029296, 0.21039337412450212]) = 0.2896251780393302 44. x = [0.4649171731882241, 0.21614797820261164], f([0.4649171731882241, 0.21614797820261164]) = 0.28631363154888095 45. x = [0.4709198394704101, 0.21614797789155066], f([0.4709198394704101, 0.21614797789155066]) = 0.28308146634477055 46. x = [0.47091984037103257, 0.221765496557067], f([0.47091984037103257, 0.221765496557067]) = 0.2799258153130136 47. x = [0.47671167009298804, 0.2217654960075416], f([0.47671167009298804, 0.2217654960075416]) = 0.2768430618298368 48. x = [0.4767116699440883, 0.22725401606985668], f([0.4767116699440883, 0.22725401606985668]) = 0.27383067637270475 49. x = [0.4823078273070866, 0.2272540162741426], f([0.4823078273070866, 0.2272540162741426]) = 0.2708854656602998 50. x = [0.48230782658078375, 0.23262083933898028], f([0.48230782658078375, 0.23262083933898028]) = 0.2680051864195119 51. x = [0.4877218312985245, 0.2326208395921666], f([0.4877218312985245, 0.2326208395921666]) = 0.2651870048223571 52. x = [0.4877218314779602, 0.23787258538363515], f([0.4877218314779602, 0.23787258538363515]) = 0.2624289219442954 53. x = [0.4929657963259798, 0.23787258488878021], f([0.4929657963259798, 0.23787258488878021]) = 0.2597284112391086 54. x = [0.49296579638249666, 0.2430152766266245], f([0.49296579638249666, 0.2430152766266245]) = 0.2570836836380358 55. x = [0.49805061568825115, 0.24301527640239076], f([0.49805061568825115, 0.24301527640239076]) = 0.25449247698514527 56. x = [0.49805061658483746, 0.24805441699865693], f([0.49805061658483746, 0.24805441699865693]) = 0.2519531835108618 57. x = [0.5029861310596924, 0.24805441668585915], f([0.5029861310596924, 0.24805441668585915]) = 0.2494637697351823 58. x = [0.5029861316510841, 0.25299504887483176], f([0.5029861316510841, 0.25299504887483176]) = 0.24702278533115352 59. x = [0.5077812596453132, 0.25299504864182587], f([0.5077812596453132, 0.25299504864182587]) = 0.24462839564175978 60. x = [0.5077812602631905, 0.2578418093692486], f([0.5077812602631905, 0.2578418093692486]) = 0.24227928774809313 61. x = [0.5124441128776053, 0.25784180833215453], f([0.5124441128776053, 0.25784180833215453]) = 0.23997380066119134 62. x = [0.5124441139738207, 0.2625989713984018], f([0.5124441139738207, 0.2625989713984018]) = 0.23771074199877293 63. x = [0.5169820918539044, 0.26259897004694943], f([0.5169820918539044, 0.26259897004694943]) = 0.2354886031949667 64. x = [0.5169820935504372, 0.2672704863639032], f([0.5169820935504372, 0.2672704863639032]) = 0.23330629795091873 65. x = [0.5214019702389341, 0.2672704851632513], f([0.5214019702389341, 0.2672704851632513]) = 0.23116245210783615 66. x = [0.5214019711872473, 0.27186001652605396], f([0.5214019711872473, 0.27186001652605396]) = 0.22905607318345256 67. x = [0.5257099605380149, 0.27186001565463513], f([0.5257099605380149, 0.27186001565463513]) = 0.22698590577525354 68. x = [0.5257099614420236, 0.27637096453238463], f([0.5257099614420236, 0.27637096453238463]) = 0.22495104067532679 69. x = [0.5299117809322826, 0.27637096367037745], f([0.5299117809322826, 0.27637096367037745]) = 0.2229503280302457 70. x = [0.5299117819054657, 0.28080649789777257], f([0.5299117819054657, 0.28080649789777257]) = 0.22098293279129458 71. x = [0.5340127048210788, 0.2808064967675729], f([0.5340127048210788, 0.2808064967675729]) = 0.21904779912045264 72. x = [0.534012705860308, 0.28516957158251066], f([0.534012705860308, 0.28516957158251066]) = 0.21714415829963205 73. x = [0.5380176065649581, 0.28516957023983347], f([0.5380176065649581, 0.28516957023983347]) = 0.21527103850466994 74. x = [0.5380176081023069, 0.28946294851869525], f([0.5380176081023069, 0.28946294851869525]) = 0.21342773042351404 75. x = [0.5419310032811242, 0.28946294691721963], f([0.5419310032811242, 0.28946294691721963]) = 0.2116133376782171 76. x = [0.5419310047515339, 0.29368921587758573], f([0.5419310047515339, 0.29368921587758573]) = 0.20982720440793967 77. x = [0.5457570865898584, 0.2936892142349757], f([0.5457570865898584, 0.2936892142349757]) = 0.20806850196298415 78. x = [0.5457570885385001, 0.29785080184311163], f([0.5457570885385001, 0.29785080184311163]) = 0.20633662261302047 79. x = [0.5494997569473468, 0.29785080006910425], f([0.5494997569473468, 0.29785080006910425]) = 0.2046307989664715 80. x = [0.5494997594556297, 0.30194998862636097], f([0.5494997594556297, 0.30194998862636097]) = 0.2029504667305364 81. x = [0.5531626494771366, 0.3019499861996965], f([0.5531626494771366, 0.3019499861996965]) = 0.201294913842769 82. x = [0.5531626519044585, 0.3059889222559571], f([0.5531626519044585, 0.3059889222559571]) = 0.19966361565305693 83. x = [0.5567491557152695, 0.30598892001339], f([0.5567491557152695, 0.30598892001339]) = 0.19805591009997486 84. x = [0.5567491587838322, 0.30996962962092295], f([0.5567491587838322, 0.30996962962092295]) = 0.1964713082388418 85. x = [0.5602624494427373, 0.30996962659754534], f([0.5602624494427373, 0.30996962659754534]) = 0.19490919364939663 86. x = [0.5602624531056657, 0.3138940206724136], f([0.5602624531056657, 0.3138940206724136]) = 0.19336911014864872 87. x = [0.5637055025720049, 0.31389401729587413], f([0.5637055025720049, 0.31389401729587413]) = 0.191850482770056 88. x = [0.5637055063787026, 0.31776390254482173], f([0.5637055063787026, 0.31776390254482173]) = 0.1903528851642664 89. x = [0.5670811022041661, 0.31776389896790874], f([0.5670811022041661, 0.31776389896790874]) = 0.18887578013987083 90. x = [0.5670811061399202, 0.32158098456016976], f([0.5670811061399202, 0.32158098456016976]) = 0.1874187686610363 91. x = [0.5703918675998588, 0.3215809817923052], f([0.5703918675998588, 0.3215809817923052]) = 0.1859813483317945 92. x = [0.5703918705066301, 0.325346889032092], f([0.5703918705066301, 0.325346889032092]) = 0.18456314492679302 93. x = [0.5736402603241066, 0.3253468866941144], f([0.5736402603241066, 0.3253468866941144]) = 0.18316368762260327 94. x = [0.5736402632112945, 0.32906315527968033], f([0.5736402632112945, 0.32906315527968033]) = 0.1817826251545356 95. x = [0.5768286022047667, 0.32906315251089274], f([0.5768286022047667, 0.32906315251089274]) = 0.18041951579613916 96. x = [0.5768286048682323, 0.33273124188066033], f([0.5768286048682323, 0.33273124188066033]) = 0.17907402965776728 97. x = [0.579959081464713, 0.3327312400412868], f([0.579959081464713, 0.3327312400412868]) = 0.17774575181160876 98. x = [0.5799590834930921, 0.3363525414042971], f([0.5799590834930921, 0.3363525414042971]) = 0.176434371539964 99. x = [0.5830337638050981, 0.33635253929750636], f([0.5830337638050981, 0.33635253929750636]) = 0.17513949845955692 100. x = [0.5830337664076224, 0.33992837582135327], f([0.5830337664076224, 0.33992837582135327]) = 0.17386083995621415 101. x = [0.5860546045001273, 0.3399283736117662], f([0.5860546045001273, 0.3399283736117662]) = 0.17259802856577122 102. x = [0.5860546072805951, 0.3434600059671376], f([0.5860546072805951, 0.3434600059671376]) = 0.1713507881536234 103. x = [0.5890234527594472, 0.34346000363454937], f([0.5890234527594472, 0.34346000363454937]) = 0.17011877230877642 104. x = [0.5890234552106465, 0.3469486340848002], f([0.5890234552106465, 0.3469486340848002]) = 0.16890172036699658 105. x = [0.5919420598412224, 0.34694863174374074], f([0.5919420598412224, 0.34694863174374074]) = 0.16769930519069065 106. x = [0.5919420624247221, 0.35039540871533803], f([0.5919420624247221, 0.35039540871533803]) = 0.16651128041819055 107. x = [0.5948120874293678, 0.35039540629044025], f([0.5948120874293678, 0.35039540629044025]) = 0.1653373369909536 108. x = [0.5948120910770698, 0.3538014278320447], f([0.5948120910770698, 0.3538014278320447]) = 0.1641772415373385 109. x = [0.597635115278067, 0.3538014249472325], f([0.597635115278067, 0.3538014249472325]) = 0.1630307021104252 110. x = [0.5976351186974297, 0.3571677387682407], f([0.5976351186974297, 0.3571677387682407]) = 0.16189749770563283 111. x = [0.6004126410715424, 0.35716773623639797], f([0.6004126410715424, 0.35716773623639797]) = 0.16077735180234964 112. x = [0.6004126444627057, 0.3604953473144834], f([0.6004126444627057, 0.3604953473144834]) = 0.1596700547052894 113. x = [0.6031460915119355, 0.3604953447945295], f([0.6031460915119355, 0.3604953447945295]) = 0.1585753444799616 114. x = [0.6031460946833468, 0.3637852152848376], f([0.6031460946833468, 0.3637852152848376]) = 0.15749302216508057 115. x = [0.6058368238450974, 0.3637852127402061], f([0.6058368238450974, 0.3637852127402061]) = 0.15642283921458086 116. x = [0.6058368274487557, 0.36703826545700524], f([0.6058368274487557, 0.36703826545700524]) = 0.1553646065956636 117. x = [0.6084861330092559, 0.36703826279278146], f([0.6084861330092559, 0.36703826279278146]) = 0.15431808853954515 118. x = [0.6084861364847246, 0.3702553820742113], f([0.6084861364847246, 0.3702553820742113]) = 0.1532831053246591 119. x = [0.6110952522253774, 0.37025537955508764], f([0.6110952522253774, 0.37025537955508764]) = 0.15225943289374383 120. x = [0.6110952556176933, 0.3734374155805843], f([0.6110952556176933, 0.3734374155805843]) = 0.15124690020306905 121. x = [0.6136653593199523, 0.37343741284323256], f([0.6136653593199523, 0.37343741284323256]) = 0.1502452941341824 122. x = [0.6136653627100401, 0.376585181289968], f([0.6136653627100401, 0.376585181289968]) = 0.14925445196996637 123. x = [0.6161975790494582, 0.3765851787337809], f([0.6161975790494582, 0.3765851787337809]) = 0.14827417088217965 124. x = [0.6161975825095981, 0.3796994654756256], f([0.6161975825095981, 0.3796994654756256]) = 0.14730429567147904 125. x = [0.618692986696135, 0.3796994623645528], f([0.618692986696135, 0.3796994623645528]) = 0.1463446330790024 126. x = [0.6186929907975564, 0.38278102224205224], f([0.6186929907975564, 0.38278102224205224]) = 0.14539503526691533 127. x = [0.621152611678484, 0.3827810187716718], f([0.621152611678484, 0.3827810187716718]) = 0.14445531807467488 128. x = [0.6211526158749919, 0.38583057734149634], f([0.6211526158749919, 0.38583057734149634]) = 0.14352534045836404 129. x = [0.6235774376405436, 0.38583057405601623], f([0.6235774376405436, 0.38583057405601623]) = 0.14260492675438372 130. x = [0.6235774422044751, 0.3888488318832262], f([0.6235774422044751, 0.3888488318832262]) = 0.14169394201732827 131. x = [0.6259684084689308, 0.3888488284170786], f([0.6259684084689308, 0.3888488284170786]) = 0.14079221878017265 132. x = [0.6259684129312095, 0.3918364594368766], f([0.6259684129312095, 0.3918364594368766]) = 0.13989962812520115 133. x = [0.6283264275577225, 0.3918364560014957], f([0.6283264275577225, 0.3918364560014957]) = 0.13901600999832792 134. x = [0.6283264320505926, 0.3947941110427341], f([0.6283264320505926, 0.3947941110427341]) = 0.13814124111224615 135. x = [0.6306523621701022, 0.39479410739476634], f([0.6306523621701022, 0.39479410739476634]) = 0.13727516844774748 136. x = [0.6306523668411761, 0.3977224138660692], f([0.6306523668411761, 0.3977224138660692]) = 0.1364176741200288 137. x = [0.632947044714471, 0.3977224100988349], f([0.632947044714471, 0.3977224100988349]) = 0.13556861176606208 138. x = [0.6329470493970245, 0.40062197407498396], f([0.6329470493970245, 0.40062197407498396]) = 0.13472786854635488 139. x = [0.6352112739114513, 0.400621969920658], f([0.6352112739114513, 0.400621969920658]) = 0.13389530421819326 140. x = [0.635211279290568, 0.4034933761118717], f([0.635211279290568, 0.4034933761118717]) = 0.13307081075682858 141. x = [0.6374458187082267, 0.40349337196247337], f([0.6374458187082267, 0.40349337196247337]) = 0.13225425411725658 142. x = [0.6374458239043517, 0.40633718506341], f([0.6374458239043517, 0.40633718506341]) = 0.13144553060439879 143. x = [0.639651416415944, 0.40633718101771266], f([0.639651416415944, 0.40633718101771266]) = 0.13064451172194708 144. x = [0.6396514215132041, 0.40915394819552947], f([0.6396514215132041, 0.40915394819552947]) = 0.12985109801745962 145. x = [0.6418287772805903, 0.4091539438742461], f([0.6418287772805903, 0.4091539438742461]) = 0.12906516618282 146. x = [0.641828782666134, 0.41194419288938433], f([0.641828782666134, 0.41194419288938433]) = 0.12828662092642787 147. x = [0.6439785853010245, 0.4119441889095427], f([0.6439785853010245, 0.4119441889095427]) = 0.12751534415111143 148. x = [0.6439785903495242, 0.4147084309118433], f([0.6439785903495242, 0.4147084309118433]) = 0.12675124412951558 149. x = [0.6461014981647627, 0.4147084272844714], f([0.6461014981647627, 0.4147084272844714]) = 0.12599420758357335 150. x = [0.6461015027423092, 0.4174471578906037], f([0.6461015027423092, 0.4174471578906037]) = 0.12524414636125547 151. x = [0.6481981496228112, 0.4174471543094515], f([0.6481981496228112, 0.4174471543094515]) = 0.12450095156893304 152. x = [0.6481981545175277, 0.42016085357537497], f([0.6481981545175277, 0.42016085357537497]) = 0.12376453848487697 153. x = [0.6502691519779552, 0.420160850010645], f([0.6502691519779552, 0.420160850010645]) = 0.12303480269753236 154. x = [0.6502691568897336, 0.4228499825668948], f([0.6502691568897336, 0.4228499825668948]) = 0.12231166262262155 155. x = [0.6523150945892143, 0.4228499789604677], f([0.6523150945892143, 0.4228499789604677]) = 0.12159501790580171 156. x = [0.6523150994031902, 0.4255149950691268], f([0.6523150994031902, 0.4255149950691268]) = 0.1208847901030173 157. x = [0.6543365463409216, 0.42551499148785416], f([0.6543365463409216, 0.42551499148785416]) = 0.12018088264858433 158. x = [0.6543365507199344, 0.42815632741190185], f([0.6543365507199344, 0.42815632741190185]) = 0.11948322016819589 159. x = [0.6563340554804089, 0.4281563240580113], f([0.6563340554804089, 0.4281563240580113]) = 0.11879170959816232 160. x = [0.6563340601226241, 0.43077440460445826], f([0.6563340601226241, 0.43077440460445826]) = 0.11810627823180392 161. x = [0.6583081534861536, 0.43077440108474635], f([0.6583081534861536, 0.43077440108474635]) = 0.11742683666322522 162. x = [0.6583081578948825, 0.4333696368763831], f([0.6583081578948825, 0.4333696368763831]) = 0.11675331496119229 163. x = [0.6602593518389702, 0.43336963337853174], f([0.6602593518389702, 0.43336963337853174]) = 0.11608562683729319 164. x = [0.6602593564388131, 0.4359424241093249], f([0.6602593564388131, 0.4359424241093249]) = 0.1154237048873735 165. x = [0.6621881461636036, 0.4359424205075047], f([0.6621881461636036, 0.4359424205075047]) = 0.11476746605444571 166. x = [0.6621881510598719, 0.43849315406870876], f([0.6621881510598719, 0.43849315406870876]) = 0.11411684528435234 167. x = [0.6640950156783447, 0.4384931503067066], f([0.6640950156783447, 0.4384931503067066]) = 0.11347176259268925 168. x = [0.6640950204128417, 0.44102220241565265], f([0.6640950204128417, 0.44102220241565265]) = 0.11283215531145314 169. x = [0.6659804226845412, 0.44102219889158867], f([0.6659804226845412, 0.44102219889158867]) = 0.11219794625054509 170. x = [0.6659804276027701, 0.4435299363265524], f([0.6659804276027701, 0.4435299363265524]) = 0.11156907474443238 171. x = [0.6678448162731484, 0.4435299327673596], f([0.6678448162731484, 0.4435299327673596]) = 0.11094546651865433 172. x = [0.6678448207386024, 0.44601671051703257], f([0.6678448207386024, 0.44601671051703257]) = 0.11032706311017468 173. x = [0.6696886290525018, 0.44601670722546144], f([0.6696886290525018, 0.44601670722546144]) = 0.10971379266985916 174. x = [0.6696886339785264, 0.44848287309557905], f([0.6696886339785264, 0.44848287309557905]) = 0.10910559852297627 175. x = [0.6715122825619668, 0.44848286944314225], f([0.6715122825619668, 0.44848286944314225]) = 0.10850241154056714 176. x = [0.6715122879320504, 0.45092875953897815], f([0.6715122879320504, 0.45092875953897815]) = 0.10790417697964062 177. x = [0.6733161842647911, 0.4509287558622842], f([0.6733161842647911, 0.4509287558622842]) = 0.10731082819280631 178. x = [0.6733161890777579, 0.4533546970565887], f([0.6733161890777579, 0.4533546970565887]) = 0.10672231231868354 179. x = [0.6751007277612031, 0.4533546934609088], f([0.6751007277612031, 0.4533546934609088]) = 0.10613856466738773 180. x = [0.6751007318515787, 0.4557610036852685], f([0.6751007318515787, 0.4557610036852685]) = 0.10555953444338283 181. x = [0.6768662947996549, 0.455761000675426], f([0.6768662947996549, 0.455761000675426]) = 0.104985158960591 182. x = [0.6768662987470866, 0.45814799190373307], f([0.6768662987470866, 0.45814799190373307]) = 0.10441538888541015 183. x = [0.6786132571381945, 0.45814798891721614], f([0.6786132571381945, 0.45814798891721614]) = 0.10385016376515015 184. x = [0.6786132612495241, 0.46051596425787694], f([0.6786132612495241, 0.46051596425787694]) = 0.10328943584467011 185. x = [0.6803419752337734, 0.4605159610767037], f([0.6803419752337734, 0.4605159610767037]) = 0.10273314668336907 186. x = [0.6803419793400892, 0.46286521423121435], f([0.6803419793400892, 0.46286521423121435]) = 0.10218125017221483 187. x = [0.6820527980011969, 0.46286521135245934], f([0.6820527980011969, 0.46286521135245934]) = 0.10163368980964116 188. x = [0.6820528019095984, 0.4651960294397877], f([0.6820528019095984, 0.4651960294397877]) = 0.10109042077353943 189. x = [0.6837460645831317, 0.4651960268584414], f([0.6837460645831317, 0.4651960268584414]) = 0.10055138850722391 190. x = [0.6837460678297285, 0.4675086898685005], f([0.6837460678297285, 0.4675086898685005]) = 0.10001654961316082 191. x = [0.6854221036923195, 0.4675086874328462], f([0.6854221036923195, 0.4675086874328462]) = 0.09948585106442367 192. x = [0.6854221066591583, 0.4698034684426367], f([0.6854221066591583, 0.4698034684426367]) = 0.09895925097876372 193. x = [0.6870812353406935, 0.46980346625621416], f([0.6870812353406935, 0.46980346625621416]) = 0.09843669799546491 194. x = [0.6870812383346512, 0.4720806322068961], f([0.6870812383346512, 0.4720806322068961]) = 0.09791815140217709 195. x = [0.6887237708302745, 0.47208063003619], f([0.6887237708302745, 0.47208063003619]) = 0.09740356156668332 196. x = [0.6887237737643778, 0.4743404405328111], f([0.6887237737643778, 0.4743404405328111]) = 0.09689288901949186 197. x = [0.6903500120482545, 0.47434043845110985], f([0.6903500120482545, 0.47434043845110985]) = 0.09638608567427953 198. x = [0.6903500150394596, 0.4765831471612992], f([0.6903500150394596, 0.4765831471612992]) = 0.09588311318606442 199. x = [0.6919602527171902, 0.47658314513514516], f([0.6919602527171902, 0.47658314513514516]) = 0.09538392503901885 200. x = [0.691960255984583, 0.4788089997205048], f([0.691960255984583, 0.4788089997205048]) = 0.09488848389308512 201. x = [0.6935547789832591, 0.4788089977233385], f([0.6935547789832591, 0.4788089977233385]) = 0.09439674485012964 202. x = [0.6935547819746861, 0.4810182398650694], f([0.6935547819746861, 0.4810182398650694]) = 0.09390867165058397 203. x = [0.6951338681157613, 0.4810182376672962], f([0.6951338681157613, 0.4810182376672962]) = 0.09342422052348195 204. x = [0.6951338711887082, 0.48321110289423375], f([0.6951338711887082, 0.48321110289423375]) = 0.09294335649638479 205. x = [0.6966977907877012, 0.48321110083181235], f([0.6966977907877012, 0.48321110083181235]) = 0.09246603712840736 206. x = [0.6966977935898097, 0.4853878197288562], f([0.6966977935898097, 0.4853878197288562]) = 0.09199222841329141 207. x = [0.6982468098218472, 0.48538781761656125], f([0.6982468098218472, 0.48538781761656125]) = 0.09152188904291705 208. x = [0.698246812540826, 0.48754861515951464], f([0.698246812540826, 0.48754861515951464]) = 0.09105498614177296 209. x = [0.6997811812606548, 0.48754861315807624], f([0.6997811812606548, 0.48754861315807624]) = 0.09059147958758924 210. x = [0.6997811843353042, 0.4896937099332446], f([0.6997811843353042, 0.4896937099332446]) = 0.09013133727911415 211. x = [0.7013011552387945, 0.48969370791643946], f([0.7013011552387945, 0.48969370791643946]) = 0.08967452050961035 212. x = [0.7013011584077622, 0.49182331924293266], f([0.7013011584077622, 0.49182331924293266]) = 0.08922099796854675 213. x = [0.702806974899733, 0.4918233169951114], f([0.702806974899733, 0.4918233169951114]) = 0.08877073202295538 214. x = [0.7028069776636184, 0.4939376516848105], f([0.7028069776636184, 0.4939376516848105]) = 0.08832369252543446 215. x = [0.7042988760784883, 0.493937649761093], f([0.7042988760784883, 0.493937649761093]) = 0.08787984271905568 216. x = [0.7042988785075263, 0.4960369137263927], f([0.7042988785075263, 0.4960369137263927]) = 0.0874391532519079 217. x = [0.7057770895182833, 0.4960369119970235], f([0.7057770895182833, 0.4960369119970235]) = 0.08700158842408748 218. x = [0.7057770919012868, 0.4981213062936671], f([0.7057770919012868, 0.4981213062936671]) = 0.08656711965006464 219. x = [0.7072418407455178, 0.49812130487930095], f([0.7072418407455178, 0.49812130487930095]) = 0.08613571241674267 220. x = [0.7072418422341056, 0.5001910260128434], f([0.7072418422341056, 0.5001910260128434]) = 0.08570733893848101 221. x = [0.7086933478679972, 0.5001910247207054], f([0.7086933478679972, 0.5001910247207054]) = 0.08528196532111919 222. x = [0.7086933493877339, 0.5022462660469088], f([0.7086933493877339, 0.5022462660469088]) = 0.08485956469093756 223. x = [0.710131825704645, 0.5022462647726539], f([0.710131825704645, 0.5022462647726539]) = 0.08444010416187585 224. x = [0.7101318272990877, 0.5042872143455732], f([0.7101318272990877, 0.5042872143455732]) = 0.08402355754496638 225. x = [0.7115574830476378, 0.5042872132623546], f([0.7115574830476378, 0.5042872132623546]) = 0.08360989298337967 226. x = [0.7115574841296047, 0.5063140546638409], f([0.7115574841296047, 0.5063140546638409]) = 0.08319908496164344 227. x = [0.712970522653726, 0.5063140539569422], f([0.712970522653726, 0.5063140539569422]) = 0.08279110242468189 228. x = [0.7129705232775303, 0.5083269676373974], f([0.7129705232775303, 0.5083269676373974]) = 0.0823859205075748 229. x = [0.7143711428157129, 0.5083269673569305], f([0.7143711428157129, 0.5083269673569305]) = 0.08198350905892968 230. x = [0.7143711436295627, 0.5103261323457144], f([0.7143711436295627, 0.5103261323457144]) = 0.08158384359148414 231. x = [0.7157595385831298, 0.5103261316189689], f([0.7157595385831298, 0.5103261316189689]) = 0.08118689486589596 232. x = [0.7157595397408909, 0.5123117206797062], f([0.7157595397408909, 0.5123117206797062]) = 0.08079263924831055 233. x = [0.7171358991694793, 0.5123117197356579], f([0.7171358991694793, 0.5123117197356579]) = 0.08040104820102131 234. x = [0.7171359006874746, 0.5142839020539198], f([0.7171359006874746, 0.5142839020539198]) = 0.08001209867988665 235. x = [0.7185004098086362, 0.5142839010895818], f([0.7185004098086362, 0.5142839010895818]) = 0.07962576301052522 236. x = [0.7185004104783294, 0.5162428408238496], f([0.7185004104783294, 0.5162428408238496]) = 0.07924201890086917 237. x = [0.7198532490779065, 0.5162428403594522], f([0.7198532490779065, 0.5162428403594522]) = 0.07886083910723171 238. x = [0.7198532495186465, 0.5181887014852321], f([0.7198532495186465, 0.5181887014852321]) = 0.07848220180526179 239. x = [0.7211945940140063, 0.5181887011775179], f([0.7211945940140063, 0.5181887011775179]) = 0.07810608059751298 240. x = [0.7211945945029418, 0.5201216437037616], f([0.7211945945029418, 0.5201216437037616]) = 0.0777324541343791 241. x = [0.7225246175068922, 0.5201216434349482], f([0.7225246175068922, 0.5201216434349482]) = 0.07736129680883393 242. x = [0.722524617459731, 0.5220418227869834], f([0.722524617459731, 0.5220418227869834]) = 0.07699258791586865 243. x = [0.7238434869080516, 0.5220418228099633], f([0.7238434869080516, 0.5220418228099633]) = 0.07662630233181007 244. x = [0.7238434867426127, 0.5239493930685757], f([0.7238434867426127, 0.5239493930685757]) = 0.07626241981447754 245. x = [0.7251513669728034, 0.5239493931780378], f([0.7251513669728034, 0.5239493931780378]) = 0.0759009159672303 246. x = [0.7251513674138828, 0.5258445065872175], f([0.7251513674138828, 0.5258445065872175]) = 0.07554177083445855 247. x = [0.726448420198613, 0.5258445061506991], f([0.726448420198613, 0.5258445061506991]) = 0.0751849607943713 248. x = [0.726448420287837, 0.5277273073113219], f([0.726448420287837, 0.5277273073113219]) = 0.0748304667630199 249. x = [0.7277348019174287, 0.5277273073241936], f([0.7277348019174287, 0.5277273073241936]) = 0.07447826546671767 250. x = [0.7277348021015578, 0.5295979425865183], f([0.7277348021015578, 0.5295979425865183]) = 0.0741283379866779 251. x = [0.7290106670859768, 0.5295979424006086], f([0.7290106670859768, 0.5295979424006086]) = 0.07378066178703306 252. x = [0.7290106669100368, 0.5314565522665895], f([0.7290106669100368, 0.5314565522665895]) = 0.07343521864854302 253. x = [0.7302761649095796, 0.5314565523609346], f([0.7302761649095796, 0.5314565523609346]) = 0.07309198641808055 254. x = [0.7302761652351798, 0.5333032779537366], f([0.7302761652351798, 0.5333032779537366]) = 0.07275094704024004 255. x = [0.7315314441967632, 0.5333032777475033], f([0.7315314441967632, 0.5333032777475033]) = 0.07241207918423602 256. x = [0.731531444320189, 0.5351382542896581], f([0.731531444320189, 0.5351382542896581]) = 0.07207536538880377 257. x = [0.7327766476739511, 0.5351382541688448], f([0.7327766476739511, 0.5351382541688448]) = 0.07174078463764738 258. x = [0.7327766481710549, 0.5369616172515452], f([0.7327766481710549, 0.5369616172515452]) = 0.07140831976269629 259. x = [0.7340119173859374, 0.5369616167214528], f([0.7340119173859374, 0.5369616167214528]) = 0.07107795033325964 260. x = [0.7340119179122655, 0.5387734967280415], f([0.7340119179122655, 0.5387734967280415]) = 0.07074965981271152 261. x = [0.7352373907359088, 0.5387734962254838], f([0.7352373907359088, 0.5387734962254838]) = 0.07042342811567988 262. x = [0.7352373909421971, 0.5405740211689226], f([0.7352373909421971, 0.5405740211689226]) = 0.07009923915509499 263. x = [0.7364532018398187, 0.5405740211094857], f([0.7364532018398187, 0.5405740211094857]) = 0.06977707333569666 264. x = [0.7364532022366673, 0.5423633196745706], f([0.7364532022366673, 0.5423633196745706]) = 0.06945691461130701 265. x = [0.7376594840689393, 0.542363319404554], f([0.7376594840689393, 0.542363319404554]) = 0.06913874405626466 266. x = [0.7376594843680497, 0.5441415157303816], f([0.7376594843680497, 0.5441415157303816]) = 0.06882254614203762 267. x = [0.7388563661217463, 0.5441415153415604], f([0.7388563661217463, 0.5441415153415604]) = 0.06850830219472998 268. x = [0.7388563672158199, 0.5459087330168845], f([0.7388563672158199, 0.5459087330168845]) = 0.06819599694371895 269. x = [0.740043976322651, 0.5459087322703645], f([0.740043976322651, 0.5459087322703645]) = 0.06788561240163589 270. x = [0.7400439772441988, 0.5476650898029054], f([0.7400439772441988, 0.5476650898029054]) = 0.06757713376701487 271. x = [0.7412224371432343, 0.5476650891013802], f([0.7412224371432343, 0.5476650891013802]) = 0.06727054324145736 272. x = [0.7412224388790682, 0.549410706196096], f([0.7412224388790682, 0.549410706196096]) = 0.06696582613969809 273. x = [0.7423918721338455, 0.5494107051574973], f([0.7423918721338455, 0.5494107051574973]) = 0.06666296541127864 274. x = [0.7423918734337646, 0.5511456954844194], f([0.7423918734337646, 0.5511456954844194]) = 0.06636194687296589 275. x = [0.7435523985838226, 0.5511456946987817], f([0.7435523985838226, 0.5511456946987817]) = 0.06606275358533634 276. x = [0.7435523999380909, 0.5528701737331867], f([0.7435523999380909, 0.5528701737331867]) = 0.06576537157751342 277. x = [0.7447041342605668, 0.5528701727094432], f([0.7447041342605668, 0.5528701727094432]) = 0.0654697843314729 278. x = [0.744704135625773, 0.554584251701755], f([0.744704135625773, 0.554584251701755]) = 0.06517597836658415 279. x = [0.7458471935096929, 0.5545842507688369], f([0.7458471935096929, 0.5545842507688369]) = 0.0648839374808796 280. x = [0.7458471946097084, 0.5562880394783292], f([0.7458471946097084, 0.5562880394783292]) = 0.06459364848775576 281. x = [0.7469816883577134, 0.5562880386877165], f([0.7469816883577134, 0.5562880386877165]) = 0.06430509549549375 282. x = [0.7469816890427691, 0.5579816444551484], f([0.7469816890427691, 0.5579816444551484]) = 0.06401826567965005 283. x = [0.7481077283371502, 0.5579816441480868], f([0.7481077283371502, 0.5579816441480868]) = 0.06373314352958406 284. x = [0.748107728867881, 0.5596651744224355], f([0.748107728867881, 0.5596651744224355]) = 0.06344971625609695 285. x = [0.7492254221917731, 0.5596651742313806], f([0.7492254221917731, 0.5596651742313806]) = 0.06316796885659984 286. x = [0.7492254220326316, 0.5613387328455446], f([0.7492254220326316, 0.5613387328455446]) = 0.0628878889547117 287. x = [0.7503348748294554, 0.5613387329227144], f([0.7503348748294554, 0.5613387329227144]) = 0.06260946165470319 288. x = [0.7503348746304412, 0.5630024239748729], f([0.7503348746304412, 0.5630024239748729]) = 0.06233267482579749 289. x = [0.751436190786186, 0.563002424024193], f([0.751436190786186, 0.563002424024193]) = 0.06205751397497599 290. x = [0.751436190976619, 0.5646563494836059], f([0.751436190976619, 0.5646563494836059]) = 0.06178396715621186 291. x = [0.7525294726866933, 0.5646563493190373], f([0.7525294726866933, 0.5646563493190373]) = 0.061512020307062716 292. x = [0.7525294728340995, 0.5663006076573277], f([0.7525294728340995, 0.5663006076573277]) = 0.06124166181576868 293. x = [0.7536148196775978, 0.5663006075812962], f([0.7536148196775978, 0.5663006075812962]) = 0.06097287784822715 294. x = [0.7536148199853292, 0.5679352972509096], f([0.7536148199853292, 0.5679352972509096]) = 0.06070565693086175 295. x = [0.7546923304414226, 0.567935297098112], f([0.7546923304414226, 0.567935297098112]) = 0.060439985620871536 296. x = [0.7546923302375326, 0.5695605132261362], f([0.7546923302375326, 0.5695605132261362]) = 0.06017585284429178 297. x = [0.7557620999102656, 0.5695605132667891], f([0.7557620999102656, 0.5695605132667891]) = 0.05991324521179072 298. x = [0.7557621000756555, 0.5711763523059202], f([0.7557621000756555, 0.5711763523059202]) = 0.059652151759454146 299. x = [0.756824223951815, 0.5711763521340781], f([0.756824223951815, 0.5711763521340781]) = 0.05939255957628123 300. x = [0.7568242240068124, 0.5727829060475245], f([0.7568242240068124, 0.5727829060475245]) = 0.05913445802988897 301. x = [0.75787879447669, 0.5727829060457851], f([0.75787879447669, 0.5727829060457851]) = 0.05887783440338506 302. x = [0.7578787943652621, 0.5743802670205289], f([0.7578787943652621, 0.5743802670205289]) = 0.05862267821801905 303. x = [0.758925902427157, 0.574380266989397], f([0.758925902427157, 0.574380266989397]) = 0.0583689769904646 304. x = [0.7589259025459134, 0.5759685254611383], f([0.7589259025459134, 0.5759685254611383]) = 0.058116720463302435 305. x = [0.7599656374185111, 0.5759685255016759], f([0.7599656374185111, 0.5759685255016759]) = 0.05786589655642971 306. x = [0.7599656378541889, 0.5775477712057274], f([0.7599656378541889, 0.5775477712057274]) = 0.05761649501074641 307. x = [0.76099808778028, 0.5775477709964268], f([0.76099808778028, 0.5775477709964268]) = 0.05736850409800208 308. x = [0.760998087985448, 0.5791180899826855], f([0.760998087985448, 0.5791180899826855]) = 0.05712191394661166 309. x = [0.7620233385781314, 0.5791180899547261], f([0.7620233385781314, 0.5791180899547261]) = 0.05687671291802648 310. x = [0.7620233389464247, 0.580679569562677], f([0.7620233389464247, 0.580679569562677]) = 0.05663289120620828 311. x = [0.7630414750005923, 0.5806795693643267], f([0.7630414750005923, 0.5806795693643267]) = 0.05639043750557377 312. x = [0.7630414758386912, 0.5822322949243053], f([0.7630414758386912, 0.5822322949243053]) = 0.05614934217270569 313. x = [0.764052580862826, 0.5822322944659357], f([0.764052580862826, 0.5822322944659357]) = 0.05590959421126847 314. x = [0.7640525814412245, 0.5837763479111554], f([0.7640525814412245, 0.5837763479111554]) = 0.055671184324550066 315. x = [0.7650567367932452, 0.5837763476114776], f([0.7650567367932452, 0.5837763476114776]) = 0.05543410155835036 316. x = [0.7650567369519161, 0.5853118108817936], f([0.7650567369519161, 0.5853118108817936]) = 0.055198336851681136 317. x = [0.7660540226507982, 0.5853118108281903], f([0.7660540226507982, 0.5853118108281903]) = 0.05496387941133433 318. x = [0.7660540227037593, 0.5868387657024038], f([0.7660540227037593, 0.5868387657024038]) = 0.05473072029309316 319. x = [0.7670445177052567, 0.5868387657016451], f([0.7670445177052567, 0.5868387657016451]) = 0.05449884898608796 320. x = [0.7670445177665505, 0.5883572922241662], f([0.7670445177665505, 0.5883572922241662]) = 0.05426825670261902 321. x = [0.7680282997918001, 0.5883572922290454], f([0.7680282997918001, 0.5883572922290454]) = 0.0540389331703331 322. x = [0.7680282993665601, 0.5898674684538865], f([0.7680282993665601, 0.5898674684538865]) = 0.05381086989477024 323. x = [0.7690054439459735, 0.589867468527183], f([0.7690054439459735, 0.589867468527183]) = 0.05358405657663759 324. x = [0.7690054443538296, 0.5913693738043562], f([0.7690054443538296, 0.5913693738043562]) = 0.053358484738171744 325. x = [0.7699760270624135, 0.5913693736537127], f([0.7699760270624135, 0.5913693736537127]) = 0.053134144663298306 326. x = [0.7699760271694124, 0.592863082331947], f([0.7699760271694124, 0.592863082331947]) = 0.05291102807676691 327. x = [0.7709401212822132, 0.5928630823670048], f([0.7709401212822132, 0.5928630823670048]) = 0.05268912527879106 328. x = [0.7709401209202891, 0.5943486697889054], f([0.7709401209202891, 0.5943486697889054]) = 0.0524684282040118 329. x = [0.7718977985019417, 0.5943486698958047], f([0.7718977985019417, 0.5943486698958047]) = 0.05224892719787079 330. x = [0.7718977985531107, 0.5958262119621796], f([0.7718977985531107, 0.5958262119621796]) = 0.052030614304917296 331. x = [0.772849130970564, 0.5958262117323603], f([0.772849130970564, 0.5958262117323603]) = 0.051813480167353904 332. x = [0.7728491317154724, 0.5972957814691553], f([0.7728491317154724, 0.5972957814691553]) = 0.051597516962414915 333. x = [0.7737941891004033, 0.5972957810215727], f([0.7737941891004033, 0.5972957810215727]) = 0.05138271565300259 334. x = [0.7737941897959774, 0.5987574490288361], f([0.7737941897959774, 0.5987574490288361]) = 0.05116906857005839 335. x = [0.7747330407456483, 0.5987574486690677], f([0.7747330407456483, 0.5987574486690677]) = 0.05095656677164246 336. x = [0.7747330411494172, 0.6002112852100926], f([0.7747330411494172, 0.6002112852100926]) = 0.05074520274979016 337. x = [0.7756657533111521, 0.6002112851432372], f([0.7756657533111521, 0.6002112851432372]) = 0.0505349677352437 338. x = [0.7756657529580423, 0.6016573597986332], f([0.7756657529580423, 0.6016573597986332]) = 0.050325854395882136 339. x = [0.7765923926830298, 0.6016573600106719], f([0.7765923926830298, 0.6016573600106719]) = 0.050117853964516595 340. x = [0.7765923920488861, 0.603095742514851], f([0.7765923920488861, 0.603095742514851]) = 0.04991095929043869 341. x = [0.7775130245697772, 0.603095742874751], f([0.7775130245697772, 0.603095742874751]) = 0.04970516179717981 342. x = [0.7775130244751125, 0.6045265032888385], f([0.7775130244751125, 0.6045265032888385]) = 0.04950045427821189 343. x = [0.7784277148248033, 0.6045265032640061], f([0.7784277148248033, 0.6045265032640061]) = 0.04929682850419798 344. x = [0.7784277148898379, 0.6059497072846644], f([0.7784277148898379, 0.6059497072846644]) = 0.049094277528938975 345. x = [0.7793365261573387, 0.6059497072944879], f([0.7793365261573387, 0.6059497072944879]) = 0.048892793218754435 346. x = [0.7793365260885334, 0.6073654206537071], f([0.7793365260885334, 0.6073654206537071]) = 0.04869236871867649 347. x = [0.780239520510303, 0.6073654207527527], f([0.780239520510303, 0.6073654207527527]) = 0.048492996027403285 348. x = [0.7802395204402894, 0.6087737092807065], f([0.7802395204402894, 0.6087737092807065]) = 0.048294668376313965 349. x = [0.7811367595594708, 0.6087737092709838], f([0.7811367595594708, 0.6087737092709838]) = 0.04809737790416632 350. x = [0.7811367594596178, 0.6101746365287984], f([0.7811367594596178, 0.6101746365287984]) = 0.04790111805983722 351. x = [0.782028303471418, 0.6101746367122187], f([0.782028303471418, 0.6101746367122187]) = 0.04770588114540969 352. x = [0.7820283031043188, 0.611568266567989], f([0.7820283031043188, 0.611568266567989]) = 0.04751166064758272 353. x = [0.7829142115791345, 0.6115682666851358], f([0.7829142115791345, 0.6115682666851358]) = 0.04731844892325389 354. x = [0.7829142111891376, 0.6129546616752468], f([0.7829142111891376, 0.6129546616752468]) = 0.04712623970363435 355. x = [0.7837945426899662, 0.6129546618401578], f([0.7837945426899662, 0.6129546618401578]) = 0.04693502546464018 356. x = [0.7837945418553595, 0.6143338824171756], f([0.7837945418553595, 0.6143338824171756]) = 0.04674480013153411 357. x = [0.784669353572884, 0.6143338829937918], f([0.784669353572884, 0.6143338829937918]) = 0.04655555627183733 358. x = [0.7846693524396178, 0.6157059910116148], f([0.7846693524396178, 0.6157059910116148]) = 0.046367287778773816 359. x = [0.7855387011306229, 0.61570599167631], f([0.7855387011306229, 0.61570599167631]) = 0.04617998740135746 360. x = [0.7855387003039929, 0.6170710485455247], f([0.7855387003039929, 0.6170710485455247]) = 0.04599364906730072 361. x = [0.7864026421396461, 0.6170710490006415], f([0.7864026421396461, 0.6170710490006415]) = 0.04580826576403408 362. x = [0.7864026414506574, 0.6184291133412136], f([0.7864026414506574, 0.6184291133412136]) = 0.04562383157925655 363. x = [0.7872612314043654, 0.6184291137991977], f([0.7872612314043654, 0.6184291137991977]) = 0.0454403396136242 364. x = [0.7872612303462622, 0.6197802430998092], f([0.7872612303462622, 0.6197802430998092]) = 0.04525778411378642 365. x = [0.7881145224176668, 0.6197802437842852], f([0.7881145224176668, 0.6197802437842852]) = 0.0450761582074496 366. x = [0.7881145208001762, 0.6211244952215355], f([0.7881145208001762, 0.6211244952215355]) = 0.04489545629573968 367. x = [0.7889625678678787, 0.6211244962919976], f([0.7889625678678787, 0.6211244962919976]) = 0.04471567158856578 368. x = [0.7889625664064728, 0.6224619292580903], f([0.7889625664064728, 0.6224619292580903]) = 0.04453679837774279 369. x = [0.7898054214447584, 0.6224619300299449], f([0.7898054214447584, 0.6224619300299449]) = 0.04435883010721891 370. x = [0.7898054206039817, 0.623792600917227], f([0.7898054206039817, 0.623792600917227]) = 0.04418176120746925 371. x = [0.7906431354819258, 0.6237926015143264], f([0.7906431354819258, 0.6237926015143264]) = 0.044005585362866244 372. x = [0.7906431345986905, 0.6251165648948427], f([0.7906431345986905, 0.6251165648948427]) = 0.04383029709066221 373. x = [0.7914757603143369, 0.625116565448928], f([0.7914757603143369, 0.625116565448928]) = 0.04365589007918055 374. x = [0.7914757589609471, 0.6264338750839592], f([0.7914757589609471, 0.6264338750839592]) = 0.043482359100913394 375. x = [0.7923033454166931, 0.6264338758534461], f([0.7923033454166931, 0.6264338758534461]) = 0.04330969778618346 376. x = [0.7923033437203926, 0.6277445860647417], f([0.7923033437203926, 0.6277445860647417]) = 0.04313790102972997 377. x = [0.793125940282482, 0.627744587017566], f([0.793125940282482, 0.627744587017566]) = 0.04296696255717216 378. x = [0.7931259385561463, 0.6290487516880698], f([0.7931259385561463, 0.6290487516880698]) = 0.04279687729827609 379. x = [0.7939435939605296, 0.6290487527641206], f([0.7939435939605296, 0.6290487527641206]) = 0.04262763919222362 380. x = [0.793943592343217, 0.6303464253696573], f([0.793943592343217, 0.6303464253696573]) = 0.042459243136418946 381. x = [0.7947563547604379, 0.6303464263372897], f([0.7947563547604379, 0.6303464263372897]) = 0.04229168323472438 382. x = [0.7947563534396335, 0.6316376593399291], f([0.7947563534396335, 0.6316376593399291]) = 0.042124954453397055 383. x = [0.7955642704077476, 0.6316376601243463], f([0.7955642704077476, 0.6316376601243463]) = 0.04195905103006191 384. x = [0.7955642690221575, 0.632922503742974], f([0.7955642690221575, 0.632922503742974]) = 0.041793968100445375 385. x = [0.7963673866660084, 0.6329225046865078], f([0.7963673866660084, 0.6329225046865078]) = 0.041629699959120456 386. x = [0.7963673856892879, 0.6342010114101619], f([0.7963673856892879, 0.6342010114101619]) = 0.04146624161101548 387. x = [0.7971657505075348, 0.6342010120293958], f([0.7971657505075348, 0.6342010120293958]) = 0.04130358758601291 388. x = [0.7971657497856228, 0.6354732315189393], f([0.7971657497856228, 0.6354732315189393]) = 0.04114173306002869 389. x = [0.7979594068234208, 0.635473231954178], f([0.7979594068234208, 0.635473231954178]) = 0.040980672582672996 390. x = [0.7979594066935715, 0.6367392146256455], f([0.7979594066935715, 0.6367392146256455]) = 0.04082040134361366 391. x = [0.7987484013667543, 0.6367392146666928], f([0.7987484013667543, 0.6367392146666928]) = 0.04066091404953154 392. x = [0.7987484004352298, 0.6379990058100008], f([0.7987484004352298, 0.6379990058100008]) = 0.04050220632737882 393. x = [0.7995327754096067, 0.6379990063509089], f([0.7995327754096067, 0.6379990063509089]) = 0.04034427261994617 394. x = [0.7995327749649119, 0.6392526575337577], f([0.7995327749649119, 0.6392526575337577]) = 0.04018710831326869 395. x = [0.8003125747380975, 0.6392526578096829], f([0.8003125747380975, 0.6392526578096829]) = 0.04003070827190449 396. x = [0.8003125739207827, 0.6405002144020442], f([0.8003125739207827, 0.6405002144020442]) = 0.03987506813414313 397. x = [0.8010878405341222, 0.6405002150130045], f([0.8010878405341222, 0.6405002150130045]) = 0.03972018269554534 398. x = [0.8010878398101433, 0.6417417259001986], f([0.8010878398101433, 0.6417417259001986]) = 0.039566047471395346 399. x = [0.8018586159005837, 0.6417417263618937], f([0.8018586159005837, 0.6417417263618937]) = 0.03941265746163413 400. x = [0.8018586154000166, 0.6429772383313306], f([0.8018586154000166, 0.6429772383313306]) = 0.039260008291198606 401. x = [0.8026249426816437, 0.6429772386252285], f([0.8026249426816437, 0.6429772386252285]) = 0.03910809502819825 402. x = [0.8026249422226625, 0.6442067971135748], f([0.8026249422226625, 0.6442067971135748]) = 0.03895691343260739 403. x = [0.8033868615800503, 0.644206797408637], f([0.8033868615800503, 0.644206797408637]) = 0.03880645860901341 404. x = [0.8033868611634017, 0.6454304478987335], f([0.8033868611634017, 0.6454304478987335]) = 0.038656726363179524 405. x = [0.8041444130157326, 0.6454304482036027], f([0.8041444130157326, 0.6454304482036027]) = 0.03850771190441967 406. x = [0.8041444127969252, 0.6466482364574012], f([0.8041444127969252, 0.6466482364574012]) = 0.03835941103866125 407. x = [0.8048976372241726, 0.6466482365247455], f([0.8048976372241726, 0.6466482365247455]) = 0.03821181906075808 408. x = [0.8048976374593945, 0.6478602069258494], f([0.8048976374593945, 0.6478602069258494]) = 0.03806493186892588 409. x = [0.8056465738920364, 0.647860206872824], f([0.8056465738920364, 0.647860206872824]) = 0.037918744914170036 410. x = [0.8056465741711739, 0.6490664029014095], f([0.8056465741711739, 0.6490664029014095]) = 0.03777325413140102 411. x = [0.8063912614686405, 0.6490664027375465], f([0.8063912614686405, 0.6490664027375465]) = 0.03762845497772398 412. x = [0.8063912617607404, 0.6502668675315586], f([0.8063912617607404, 0.6502668675315586]) = 0.03748434352259817 413. x = [0.8071317383734041, 0.6502668673451171], f([0.8071317383734041, 0.6502668673451171]) = 0.03734091525084301 414. x = [0.8071317381423302, 0.6514616427949013], f([0.8071317381423302, 0.6514616427949013]) = 0.03719816643199869 415. x = [0.8078680415002355, 0.6514616427650312], f([0.8078680415002355, 0.6514616427650312]) = 0.0370560924242453 416. x = [0.8078680413015487, 0.6526507718783089], f([0.8078680413015487, 0.6526507718783089]) = 0.03691468955330342 417. x = [0.8086002087308326, 0.6526507719842829], f([0.8086002087308326, 0.6526507719842829]) = 0.036773953376611046 418. x = [0.8086002085891323, 0.6538342970473581], f([0.8086002085891323, 0.6538342970473581]) = 0.036633880152123675 419. x = [0.8093282770234427, 0.6538342971550204], f([0.8093282770234427, 0.6538342971550204]) = 0.03649446558684575 420. x = [0.8093282769903749, 0.6550122599182672], f([0.8093282769903749, 0.6550122599182672]) = 0.03635570595545919 421. x = [0.8100522829114295, 0.6550122599250799], f([0.8100522829114295, 0.6550122599250799]) = 0.03621759704630435 422. x = [0.8100522828626436, 0.6561847009788865], f([0.8100522828626436, 0.6561847009788865]) = 0.036080135245693146 423. x = [0.8107722620113488, 0.6561847009758898], f([0.8107722620113488, 0.6561847009758898]) = 0.0359433163583796 424. x = [0.8107722620024836, 0.6573516607761996], f([0.8107722620024836, 0.6573516607761996]) = 0.035807136827656696 425. x = [0.8114882497896915, 0.657351660797549], f([0.8114882497896915, 0.657351660797549]) = 0.035671592547825204 426. x = [0.8114882496580422, 0.6585131789615306], f([0.8114882496580422, 0.6585131789615306]) = 0.035536680016988634 427. x = [0.8122002808265241, 0.6585131791018667], f([0.8122002808265241, 0.6585131791018667]) = 0.035402395190242505 428. x = [0.812200280795837, 0.6596692958072924], f([0.812200280795837, 0.6596692958072924]) = 0.035268734533162496 429. x = [0.8129083899445153, 0.6596692959270242], f([0.8129083899445153, 0.6596692959270242]) = 0.03513569414856965 430. x = [0.81290839004479, 0.6608200507187802], f([0.81290839004479, 0.6608200507187802]) = 0.035003270515632436 431. x = [0.8136126113535671, 0.6608200506760328], f([0.8136126113535671, 0.6608200506760328]) = 0.03487145979014089 432. x = [0.8136126115506795, 0.661965481973697], f([0.8136126115506795, 0.661965481973697]) = 0.034740258572957886 433. x = [0.8143129785016552, 0.6619654818612024], f([0.8143129785016552, 0.6619654818612024]) = 0.034609663036699934 434. x = [0.8143129788201156, 0.6631056282408125], f([0.8143129788201156, 0.6631056282408125]) = 0.03447966983465891 435. x = [0.8150095246988519, 0.6631056279535013], f([0.8150095246988519, 0.6631056279535013]) = 0.03435027516216825 436. x = [0.8150095250767061, 0.6642405267282003], f([0.8150095250767061, 0.6642405267282003]) = 0.034221475812345886 437. x = [0.8157022825010194, 0.6642405264426791], f([0.8157022825010194, 0.6642405264426791]) = 0.034093268000157065 438. x = [0.8157022827643056, 0.6653702147093262], f([0.8157022827643056, 0.6653702147093262]) = 0.033965648578288016 439. x = [0.816391283962847, 0.6653702144841076], f([0.816391283962847, 0.6653702144841076]) = 0.03383861378886658 440. x = [0.8163912841908721, 0.6664947295577336], f([0.8163912841908721, 0.6664947295577336]) = 0.03371216052107712 441. x = [0.8170765610211917, 0.666494729313303], f([0.8170765610211917, 0.666494729313303]) = 0.03358628507216347 442. x = [0.817076561571851, 0.6676141082363024], f([0.817076561571851, 0.6676141082363024]) = 0.033460984326376855 443. x = [0.8177581455557039, 0.667614107950803], f([0.8177581455557039, 0.667614107950803]) = 0.033336254761450225 444. x = [0.8177581464504499, 0.6687283871896142], f([0.8177581464504499, 0.6687283871896142]) = 0.0332120931851758 445. x = [0.818436069022436, 0.6687283867791086], f([0.818436069022436, 0.6687283867791086]) = 0.03308849622418225 446. x = [0.8184360696267852, 0.6698376010130439], f([0.8184360696267852, 0.6698376010130439]) = 0.032965460812569694 447. x = [0.81911036117316, 0.6698376006613833], f([0.81911036117316, 0.6698376006613833]) = 0.03284298347111887 448. x = [0.8191103618932408, 0.6709417861194529], f([0.8191103618932408, 0.6709417861194529]) = 0.03272106117439443 449. x = [0.8197810529246727, 0.6709417856898836], f([0.8197810529246727, 0.6709417856898836]) = 0.03259969054047282 450. x = [0.8197810536910625, 0.6720409772366025], f([0.8197810536910625, 0.6720409772366025]) = 0.03247886860870386 451. x = [0.8204481739113171, 0.6720409767754524], f([0.8204481739113171, 0.6720409767754524]) = 0.03235859202765141 452. x = [0.8204481753118622, 0.6731352109306216], f([0.8204481753118622, 0.6731352109306216]) = 0.03223885774884042 453. x = [0.8211117549323425, 0.6731352099852284], f([0.8211117549323425, 0.6731352099852284]) = 0.03211966256623332 454. x = [0.821111756575947, 0.6742245197035001], f([0.821111756575947, 0.6742245197035001]) = 0.03200100363534408 455. x = [0.8217718245717512, 0.6742245186274503], f([0.8217718245717512, 0.6742245186274503]) = 0.031882877678995745 456. x = [0.821771826173371, 0.6753089372320082], f([0.821771826173371, 0.6753089372320082]) = 0.031765281945575964 457. x = [0.822428411252509, 0.6753089361490413], f([0.822428411252509, 0.6753089361490413]) = 0.03164821313510481 458. x = [0.822428412933105, 0.6763884975073691], f([0.822428412933105, 0.6763884975073691]) = 0.03153166853345684 459. x = [0.8230815437325418, 0.6763884963643197], f([0.8230815437325418, 0.6763884963643197]) = 0.031415644898079395 460. x = [0.8230815453515415, 0.6774632331734491], f([0.8230815453515415, 0.6774632331734491]) = 0.03130013959519948 461. x = [0.8237312498833597, 0.6774632321175931], f([0.8237312498833597, 0.6774632321175931]) = 0.031185149410240677 462. x = [0.8237312514945884, 0.6785331775500072], f([0.8237312514945884, 0.6785331775500072]) = 0.031070671699664876 463. x = [0.8243775578244675, 0.6785331765009358], f([0.8243775578244675, 0.6785331765009358]) = 0.030956703325194363 464. x = [0.8243775590567123, 0.6795983616567502], f([0.8243775590567123, 0.6795983616567502]) = 0.030843241762878896 465. x = [0.825020494106961, 0.6795983610049486], f([0.825020494106961, 0.6795983610049486]) = 0.030730283897854132 466. x = [0.8250204954587037, 0.6806588203096586], f([0.8250204954587037, 0.6806588203096586]) = 0.0306178270095181 467. x = [0.82566008695381, 0.6806588194387151], f([0.82566008695381, 0.6806588194387151]) = 0.030505868145895104 468. x = [0.825660088710542, 0.6817145852667111], f([0.825660088710542, 0.6817145852667111]) = 0.030394404668417103 469. x = [0.8262963635797936, 0.6817145841071526], f([0.8262963635797936, 0.6817145841071526]) = 0.0302834336609913 470. x = [0.8262963657471735, 0.6827656877821302], f([0.8262963657471735, 0.6827656877821302]) = 0.030172952552641127 471. x = [0.8269293504664535, 0.6827656864210301], f([0.8269293504664535, 0.6827656864210301]) = 0.03006295847090877 472. x = [0.8269293529702251, 0.6838121587263324], f([0.8269293529702251, 0.6838121587263324]) = 0.02995344886330648 473. x = [0.8275590736447817, 0.6838121572991009], f([0.8275590736447817, 0.6838121572991009]) = 0.029844420948473123 474. x = [0.8275590764297283, 0.6848540295345511], f([0.8275590764297283, 0.6848540295345511]) = 0.029735872121770375 475. x = [0.828185559029153, 0.6848540278803225], f([0.828185559029153, 0.6848540278803225]) = 0.02962779965854087 476. x = [0.8281855624253911, 0.6858913319524577], f([0.8281855624253911, 0.6858913319524577]) = 0.029520200959082955 477. x = [0.8288088331550267, 0.6858913297241945], f([0.8288088331550267, 0.6858913297241945]) = 0.02941307331466942 478. x = [0.8288088365457933, 0.6869240932760681], f([0.8288088365457933, 0.6869240932760681]) = 0.029306414444808214 479. x = [0.8294289198595102, 0.6869240911970719], f([0.8294289198595102, 0.6869240911970719]) = 0.029200221521245993 480. x = [0.8294289235202971, 0.687952345293409], f([0.8294289235202971, 0.687952345293409]) = 0.029094492131448414 481. x = [0.8300458450032187, 0.687952343079445], f([0.8300458450032187, 0.687952343079445]) = 0.028989223608172583 482. x = [0.8300458482165807, 0.6889761153066112], f([0.8300458482165807, 0.6889761153066112]) = 0.028884413708424202 483. x = [0.8306596320214358, 0.6889761134412877], f([0.8306596320214358, 0.6889761134412877]) = 0.02878005968366591 484. x = [0.8306596349854843, 0.6899954341101555], f([0.8306596349854843, 0.6899954341101555]) = 0.028676159223251816 485. x = [0.831270305793333, 0.6899954323373916], f([0.831270305793333, 0.6899954323373916]) = 0.028572709666447423 486. x = [0.8312703086292442, 0.6910103309024049], f([0.8312703086292442, 0.6910103309024049]) = 0.02846970875007289 487. x = [0.831877890639315, 0.691010329140179], f([0.831877890639315, 0.691010329140179]) = 0.028367153830923426 488. x = [0.8318778935131629, 0.6920208345015866], f([0.8318778935131629, 0.6920208345015866]) = 0.02826504268957369 489. x = [0.8324824104883095, 0.6920208327808035], f([0.8324824104883095, 0.6920208327808035]) = 0.028163372753037607 490. x = [0.8324824136771141, 0.6930269744212995], f([0.8324824136771141, 0.6930269744212995]) = 0.028062141727448392 491. x = [0.833083889747839, 0.6930269725041037], f([0.833083889747839, 0.6930269725041037]) = 0.027961347154518562 492. x = [0.8330838925441769, 0.6940287765405109], f([0.8330838925441769, 0.6940287765405109]) = 0.027860986928205926 493. x = [0.8336823503803412, 0.6940287749185087], f([0.8336823503803412, 0.6940287749185087]) = 0.02776105849025371 494. x = [0.833682353235069, 0.6950262709651711], f([0.833682353235069, 0.6950262709651711]) = 0.02766155962542673 495. x = [0.8342778162991177, 0.6950262692217254], f([0.8342778162991177, 0.6950262692217254]) = 0.027562487896467792 496. x = [0.8342778194262195, 0.6960194851397331], f([0.8342778194262195, 0.6960194851397331]) = 0.027463841134131372 497. x = [0.8348703106477755, 0.696019483297379], f([0.8348703106477755, 0.696019483297379]) = 0.02736561697146828 498. x = [0.834870313707261, 0.6970084459276101], f([0.834870313707261, 0.6970084459276101]) = 0.027267813295141136 499. x = [0.8354598555060428, 0.6970084440647208], f([0.8354598555060428, 0.6970084440647208]) = 0.027170427698793614 500. x = [0.8354598587048284, 0.697993180967433], f([0.8354598587048284, 0.697993180967433]) = 0.027073458097438007 501. x = [0.8360464734374556, 0.6979931790207355], f([0.8360464734374556, 0.6979931790207355]) = 0.026976902138427263 502. x = [0.8360464768795669, 0.698973717053655], f([0.8360464768795669, 0.698973717053655]) = 0.02688075774360547 503. x = [0.8366301864756044, 0.6989737150774205], f([0.8366301864756044, 0.6989737150774205]) = 0.02678502265401827 504. x = [0.8366301904124454, 0.6999500820133946], f([0.8366301904124454, 0.6999500820133946]) = 0.026689694684678092 505. x = [0.8372110173647594, 0.6999500797011102], f([0.8372110173647594, 0.6999500797011102]) = 0.026594771686687158 506. x = [0.8372110208680454, 0.7009222991001245], f([0.8372110208680454, 0.7009222991001245]) = 0.026500251726827115 507. x = [0.8377889859805139, 0.7009222970987042], f([0.8377889859805139, 0.7009222970987042]) = 0.02640613249355187 508. x = [0.8377889893077147, 0.7018903961507565], f([0.8377889893077147, 0.7018903961507565]) = 0.02631241198981576 509. x = [0.838364114083198, 0.7018903941845864], f([0.838364114083198, 0.7018903941845864]) = 0.02621908798179231 510. x = [0.8383641176650077, 0.7028543996580426], f([0.8383641176650077, 0.7028543996580426]) = 0.02612615845821491 511. x = [0.8389364235179634, 0.7028543975797236], f([0.8389364235179634, 0.7028543975797236]) = 0.026033621293819975 512. x = [0.8389364269797503, 0.7038143345305289], f([0.8389364269797503, 0.7038143345305289]) = 0.025941474554052914 513. x = [0.8395059347774435, 0.7038143324029871], f([0.8395059347774435, 0.7038143324029871]) = 0.025849716035076784 514. x = [0.8395059379983492, 0.7047702252610712], f([0.8395059379983492, 0.7047702252610712]) = 0.025758343937792583 515. x = [0.8400726681358398, 0.7047702233801802], f([0.8400726681358398, 0.7047702233801802]) = 0.025667356054827114 516. x = [0.8400726709746953, 0.7057220975110072], f([0.8400726709746953, 0.7057220975110072]) = 0.02557675056917056 517. x = [0.8406366437364289, 0.7057220957504637], f([0.8406366437364289, 0.7057220957504637]) = 0.025486525270813055 518. x = [0.8406366470362471, 0.7066699780076823], f([0.8406366470362471, 0.7066699780076823]) = 0.025396678267852912 519. x = [0.8411978831105457, 0.7066699760118058], f([0.8411978831105457, 0.7066699760118058]) = 0.025307207528669294 520. x = [0.8411978866460682, 0.7076138904874616], f([0.8411978866460682, 0.7076138904874616]) = 0.02521811120567859 521. x = [0.841756405932859, 0.7076138883808688], f([0.841756405932859, 0.7076138883808688]) = 0.025129387270507352 522. x = [0.8417564096151705, 0.7085538593160376], f([0.8417564096151705, 0.7085538593160376]) = 0.02504103389788553 523. x = [0.8423122317355384, 0.7085538571426152], f([0.8423122317355384, 0.7085538571426152]) = 0.024953049084177868 524. x = [0.8423122359129895, 0.7094899099314845], f([0.8423122359129895, 0.7094899099314845]) = 0.024865430942765797 525. x = [0.8428653809563751, 0.7094899074189203], f([0.8428653809563751, 0.7094899074189203]) = 0.024778177558449827 526. x = [0.8428653850243252, 0.7104220643161542], f([0.8428653850243252, 0.7104220643161542]) = 0.024691287223558532 527. x = [0.8434158716255856, 0.7104220618484797], f([0.8434158716255856, 0.7104220618484797]) = 0.024604757900869047 528. x = [0.8434158764913244, 0.711350348787019], f([0.8434158764913244, 0.711350348787019]) = 0.024518587734986677 529. x = [0.8439637248380706, 0.7113503459637676], f([0.8439637248380706, 0.7113503459637676]) = 0.02443277493229108 530. x = [0.8439637288375411, 0.7122747821379697], f([0.8439637288375411, 0.7122747821379697]) = 0.02434731791828868 531. x = [0.8445089566809133, 0.712274779851146], f([0.8445089566809133, 0.712274779851146]) = 0.02426221463184357 532. x = [0.8445089604945109, 0.7131953909834191], f([0.8445089604945109, 0.7131953909834191]) = 0.024177463366501978 533. x = [0.8450515871613341, 0.7131953886704567], f([0.8450515871613341, 0.7131953886704567]) = 0.024093062185586912 534. x = [0.8450515909640354, 0.71411219776822], f([0.8450515909640354, 0.71411219776822]) = 0.024009009462780673 535. x = [0.8455916348854702, 0.7141121955455206], f([0.8455916348854702, 0.7141121955455206]) = 0.02392530330242065 536. x = [0.8455916387124625, 0.7150252259745824], f([0.8455916387124625, 0.7150252259745824]) = 0.023841942035506967 537. x = [0.8461291181574911, 0.7150252237070891], f([0.8461291181574911, 0.7150252237070891]) = 0.023758923815033115 538. x = [0.8461291227512061, 0.7159345002639975], f([0.8461291227512061, 0.7159345002639975]) = 0.023676246865319633 539. x = [0.8466640566507289, 0.7159344975188733], f([0.8466640566507289, 0.7159344975188733]) = 0.023593909492892532 540. x = [0.8466640612407119, 0.7168400402614777], f([0.8466640612407119, 0.7168400402614777]) = 0.023511910115198018 541. x = [0.8471964669467138, 0.7168400376001437], f([0.8471964669467138, 0.7168400376001437]) = 0.023430246924587922 542. x = [0.8471964716076474, 0.7177418691487145], f([0.8471964716076474, 0.7177418691487145]) = 0.02334891828915834 543. x = [0.8477263671875923, 0.7177418664978406], f([0.8477263671875923, 0.7177418664978406]) = 0.023267922483554967 544. x = [0.8477263714221019, 0.7186400079579396], f([0.8477263714221019, 0.7186400079579396]) = 0.023187257960284768 545. x = [0.8482537741484146, 0.7186400054803457], f([0.8482537741484146, 0.7186400054803457]) = 0.023106922907300095 546. x = [0.8482537784745601, 0.719534480336304], f([0.8482537784745601, 0.719534480336304]) = 0.023026915747253723 547. x = [0.8487787061217521, 0.7195344776934841], f([0.8487787061217521, 0.7195344776934841]) = 0.022947234728972546 548. x = [0.8487787106898559, 0.7204253075859967], f([0.8487787106898559, 0.7204253075859967]) = 0.022867878340628492 549. x = [0.8493011805679681, 0.7204253048684326], f([0.8493011805679681, 0.7204253048684326]) = 0.02278884486690437 550. x = [0.8493011849764994, 0.7213125102347266], f([0.8493011849764994, 0.7213125102347266]) = 0.022710132849492765 551. x = [0.8498212137581697, 0.7213125076700438], f([0.8498212137581697, 0.7213125076700438]) = 0.022631740556488773 552. x = [0.8498212185055974, 0.7221961115821429], f([0.8498212185055974, 0.7221961115821429]) = 0.022553666411150166 553. x = [0.8503388238238434, 0.7221961087698154], f([0.8503388238238434, 0.7221961087698154]) = 0.02247590880411999 554. x = [0.8503388281464063, 0.7230761297744366], f([0.8503388281464063, 0.7230761297744366]) = 0.02239846636059599 555. x = [0.8508540259235495, 0.7230761273230922], f([0.8508540259235495, 0.7230761273230922]) = 0.022321337361099352 556. x = [0.8508540302667199, 0.7239525880071381], f([0.8508540302667199, 0.7239525880071381]) = 0.022244520287685664 557. x = [0.851366837533842, 0.7239525855363963], f([0.851366837533842, 0.7239525855363963]) = 0.022168013563255182 558. x = [0.8513668418386322, 0.7248255066707016], f([0.8513668418386322, 0.7248255066707016]) = 0.022091815705027485 559. x = [0.8518772749611748, 0.724825504167749], f([0.8518772749611748, 0.724825504167749]) = 0.022015925122841774 560. x = [0.8518772794263467, 0.7256949071015543], f([0.8518772794263467, 0.7256949071015543]) = 0.021940340350146807 561. x = [0.8523853546427204, 0.7256949043922417], f([0.8523853546427204, 0.7256949043922417]) = 0.021865059799051657 562. x = [0.852385359885328, 0.7265608108453301], f([0.852385359885328, 0.7265608108453301]) = 0.021790081976192397 563. x = [0.8528910938510619, 0.726560807728182], f([0.8528910938510619, 0.726560807728182]) = 0.02171540541093583 564. x = [0.8528910988828797, 0.7274232350325383], f([0.8528910988828797, 0.7274232350325383]) = 0.021641028787893857 565. x = [0.853394506827094, 0.7274232321310825], f([0.853394506827094, 0.7274232321310825]) = 0.021566950508340774 566. x = [0.8533945116633498, 0.7282822006137828], f([0.8533945116633498, 0.7282822006137828]) = 0.021493169210434204 567. x = [0.8538956094160033, 0.7282821978532068], f([0.8538956094160033, 0.7282821978532068]) = 0.02141968335580239 568. x = [0.8538956141502911, 0.7291377280689031], f([0.8538956141502911, 0.7291377280689031]) = 0.021346491564527337 569. x = [0.8543944174348697, 0.7291377252681362], f([0.8543944174348697, 0.7291377252681362]) = 0.021273592310023817 570. x = [0.8543944223671981, 0.7299898372433447], f([0.8543944223671981, 0.7299898372433447]) = 0.021200984237788746 571. x = [0.8548909467009584, 0.7299898344228514], f([0.8548909467009584, 0.7299898344228514]) = 0.02112866589512967 572. x = [0.8548909516187349, 0.7308385475420199], f([0.8548909516187349, 0.7308385475420199]) = 0.021056635922123375 573. x = [0.8553852124129118, 0.7308385446868793], f([0.8553852124129118, 0.7308385446868793]) = 0.02098489285970166 574. x = [0.8553852170891818, 0.7316838776865616], f([0.8553852170891818, 0.7316838776865616]) = 0.02091343543634959 575. x = [0.8558772293133607, 0.7316838749403601], f([0.8558772293133607, 0.7316838749403601]) = 0.020842262141682475 576. x = [0.8558772338564357, 0.7325258473007168], f([0.8558772338564357, 0.7325258473007168]) = 0.020771371720878725 577. x = [0.8563670125702972, 0.7325258446272739], f([0.8563670125702972, 0.7325258446272739]) = 0.020700762688978584 578. x = [0.8563670169874389, 0.7333644754880548], f([0.8563670169874389, 0.7333644754880548]) = 0.020630433809092606 579. x = [0.8568545771060888, 0.7333644728729364], f([0.8568545771060888, 0.7333644728729364]) = 0.020560383607684952 580. x = [0.8568545813295714, 0.7341997807029376], f([0.8568545813295714, 0.7341997807029376]) = 0.02049061088633742 581. x = [0.8573399373551146, 0.7341997782761133], f([0.8573399373551146, 0.7341997782761133]) = 0.02042111419453711 582. x = [0.8573399416305, 0.7350317827728774], f([0.8573399416305, 0.7350317827728774]) = 0.02035189225399442 583. x = [0.8578231083360324, 0.7350317803147687], f([0.8578231083360324, 0.7350317803147687]) = 0.020282943701127962 584. x = [0.8578231128597504, 0.7358605010327147], f([0.8578231128597504, 0.7358605010327147]) = 0.020214267236897784 585. x = [0.8583041049413677, 0.7358604983004778], f([0.8583041049413677, 0.7358604983004778]) = 0.020145861508363543 586. x = [0.858304109800374, 0.7366859531383018], f([0.858304109800374, 0.7366859531383018]) = 0.02007772529947126 587. x = [0.8587829416474121, 0.7366859503544383], f([0.8587829416474121, 0.7366859503544383]) = 0.02000985729325532 588. x = [0.8587829458612206, 0.7375081554706339], f([0.8587829458612206, 0.7375081554706339]) = 0.019942256379640377 589. x = [0.8592596310714358, 0.7375081529833628], f([0.8592596310714358, 0.7375081529833628]) = 0.019874921093510193 590. x = [0.8592596351850341, 0.738327127644628], f([0.8592596351850341, 0.738327127644628]) = 0.019807850288254568 591. x = [0.8597341879914446, 0.738327125288982], f([0.8597341879914446, 0.738327125288982]) = 0.019741042614585647 592. x = [0.8597341919980049, 0.739142888059762], f([0.8597341919980049, 0.739142888059762]) = 0.01967449689445768 593. x = [0.8602066264154806, 0.7391428856450651], f([0.8602066264154806, 0.7391428856450651]) = 0.019608211777093872 594. x = [0.8602066306484163, 0.7399554545282844], f([0.8602066306484163, 0.7399554545282844]) = 0.019542186114673368 595. x = [0.8606769604797238, 0.7399554521338888], f([0.8606769604797238, 0.7399554521338888]) = 0.01947641864284591 596. x = [0.860676964594165, 0.7407648446790587], f([0.860676964594165, 0.7407648446790587]) = 0.019410908194700878 597. x = [0.8611452035135131, 0.7407648422270192], f([0.8611452035135131, 0.7407648422270192]) = 0.01934565346445174 598. x = [0.8611452076995113, 0.741571075856656], f([0.8611452076995113, 0.741571075856656]) = 0.019280653344816913 599. x = [0.8616113691169217, 0.7415710734687704], f([0.8616113691169217, 0.7415710734687704]) = 0.019215906572696288 600. x = [0.8616113732887428, 0.7423741656580565], f([0.8616113732887428, 0.7423741656580565]) = 0.019151412003032695 601. x = [0.8620754706344858, 0.7423741632845666], f([0.8620754706344858, 0.7423741632845666]) = 0.019087168406528732 602. x = [0.86207547485666, 0.7431741316351966], f([0.86207547485666, 0.7431741316351966]) = 0.01902317463602113 603. x = [0.8625375215864469, 0.7431741291944578], f([0.8625375215864469, 0.7431741291944578]) = 0.018959429477774167 604. x = [0.8625375255839225, 0.7439709900254458], f([0.8625375255839225, 0.7439709900254458]) = 0.018895931872595643 605. x = [0.8629975347722498, 0.7439709876879783], f([0.8629975347722498, 0.7439709876879783]) = 0.018832680549167872 606. x = [0.8629975381779494, 0.7447647568257374], f([0.8629975381779494, 0.7447647568257374]) = 0.018769674545305932 607. x = [0.8634555224202136, 0.7447647548452446], f([0.8634555224202136, 0.7447647548452446]) = 0.018706912532100307 608. x = [0.8634555256543626, 0.7455554500938616], f([0.8634555256543626, 0.7455554500938616]) = 0.01864439347432926 609. x = [0.8639114979853015, 0.7455554483203983], f([0.8639114979853015, 0.7455554483203983]) = 0.018582116172096246 610. x = [0.8639115011815895, 0.7463430872955523], f([0.8639115011815895, 0.7463430872955523]) = 0.018520079510651443 611. x = [0.8643654746885397, 0.746343085486948], f([0.8643654746885397, 0.746343085486948]) = 0.01845828234382666 612. x = [0.8643654777844144, 0.7471276844994666], f([0.8643654777844144, 0.7471276844994666]) = 0.018396723616653003 613. x = [0.8648174651254829, 0.7471276827286499], f([0.8648174651254829, 0.7471276827286499]) = 0.018335402160259986 614. x = [0.8648174679047659, 0.7479092577596573], f([0.8648174679047659, 0.7479092577596573]) = 0.01827431698368147 615. x = [0.8652674814702631, 0.7479092561063712], f([0.8652674814702631, 0.7479092561063712]) = 0.018213466865020966 616. x = [0.8652674841522197, 0.748687823936185], f([0.8652674841522197, 0.748687823936185]) = 0.01815285082667469 617. x = [0.8657155364489985, 0.7486878223382702], f([0.8657155364489985, 0.7486878223382702]) = 0.018092467678600403 618. x = [0.8657155390507392, 0.7494633993700066], f([0.8657155390507392, 0.7494633993700066]) = 0.018032316452435877 619. x = [0.866161642263174, 0.7494633977700732], f([0.866161642263174, 0.7494633977700732]) = 0.01797239595865667 620. x = [0.8661616454165071, 0.7502360014960376], f([0.8661616454165071, 0.7502360014960376]) = 0.01791270515761981 621. x = [0.866605812304097, 0.7502359996689815], f([0.866605812304097, 0.7502359996689815]) = 0.017853242998967483 622. x = [0.866605815151842, 0.7510056439314196], f([0.866605815151842, 0.7510056439314196]) = 0.01779400855130713 623. x = [0.8670480573066781, 0.7510056422484399], f([0.8670480573066781, 0.7510056422484399]) = 0.017735000640941405 624. x = [0.8670480601023122, 0.7517723434976744], f([0.8670480601023122, 0.7517723434976744]) = 0.017676218322560867 625. x = [0.8674883896164962, 0.7517723418514856], f([0.8674883896164962, 0.7517723418514856]) = 0.017617660472127143 626. x = [0.8674883924506915, 0.7525361162723389], f([0.8674883924506915, 0.7525361162723389]) = 0.017559326135304684 627. x = [0.8679268213004742, 0.7525361145400786], f([0.8679268213004742, 0.7525361145400786]) = 0.01750121419857363 628. x = [0.8679268243430497, 0.7532969778465911], f([0.8679268243430497, 0.7532969778465911]) = 0.017443323728114607 629. x = [0.8683633643201615, 0.7532969760510455], f([0.8683633643201615, 0.7532969760510455]) = 0.017385653649961672 630. x = [0.8683633674643727, 0.7540549436228301], f([0.8683633674643727, 0.7540549436228301]) = 0.017328203025322984 631. x = [0.868798030240341, 0.7540549417510239], f([0.868798030240341, 0.7540549417510239]) = 0.017270970784755334 632. x = [0.8687980335527187, 0.7548100291721578], f([0.8687980335527187, 0.7548100291721578]) = 0.017213955999637216 633. x = [0.8692308307123773, 0.7548100271708182], f([0.8692308307123773, 0.7548100271708182]) = 0.017157157608053048 634. x = [0.8692308343500115, 0.7555622496579824], f([0.8692308343500115, 0.7555622496579824]) = 0.017100574684798073 635. x = [0.8696617774894825, 0.7555622475907099], f([0.8696617774894825, 0.7555622475907099]) = 0.01704420623352628 636. x = [0.8696617808495393, 0.7563116185943327], f([0.8696617808495393, 0.7563116185943327]) = 0.016988051371316582 637. x = [0.8700908808584153, 0.7563116167757522], f([0.8700908808584153, 0.7563116167757522]) = 0.016932109070859968 638. x = [0.8700908842920045, 0.7570581526417398], f([0.8700908842920045, 0.7570581526417398]) = 0.016876378344036616 639. x = [0.8705181529809605, 0.7570581507625297], f([0.8705181529809605, 0.7570581507625297]) = 0.016820858257568825 640. x = [0.8705181559484748, 0.7578018649505374], f([0.8705181559484748, 0.7578018649505374]) = 0.016765547938986103 641. x = [0.8709436038978615, 0.7578018632700061], f([0.8709436038978615, 0.7578018632700061]) = 0.016710446344781776 642. x = [0.8709436072836189, 0.7585427730996029], f([0.8709436072836189, 0.7585427730996029]) = 0.016655552500968434 643. x = [0.8713672462663522, 0.7585427711197588], f([0.8713672462663522, 0.7585427711197588]) = 0.01660086548995728 644. x = [0.8713672497182389, 0.7592808900893543], f([0.8713672497182389, 0.7592808900893543]) = 0.016546384445053772 645. x = [0.8717890904110593, 0.759280888053565], f([0.8717890904110593, 0.759280888053565]) = 0.016492108374128574 646. x = [0.871789093978178, 0.7600162308322771], f([0.871789093978178, 0.7600162308322771]) = 0.016438036422940623 647. x = [0.8722091472250638, 0.7600162287181252], f([0.8722091472250638, 0.7600162287181252]) = 0.016384167608899748 648. x = [0.8722091511068973, 0.7607488100621634], f([0.8722091511068973, 0.7607488100621634]) = 0.016330501060824405 649. x = [0.8726274278158684, 0.7607488078405276], f([0.8726274278158684, 0.7607488078405276]) = 0.016277035858701723 650. x = [0.8726274317507224, 0.7614786412847692], f([0.8726274317507224, 0.7614786412847692]) = 0.01622377114242128 651. x = [0.8730439427171842, 0.7614786391131984], f([0.8730439427171842, 0.7614786391131984]) = 0.016170706002557156 652. x = [0.8730439458334848, 0.7622057369454424], f([0.8730439458334848, 0.7622057369454424]) = 0.016117839689534272 653. x = [0.8734587010639969, 0.7622057351195941], f([0.8734587010639969, 0.7622057351195941]) = 0.016065171141433694 654. x = [0.8734587041332197, 0.7629301132353687], f([0.8734587041332197, 0.7629301132353687]) = 0.016012699559646956 655. x = [0.8738717144728383, 0.7629301114698787], f([0.8738717144728383, 0.7629301114698787]) = 0.015960423997765632 656. x = [0.8738717175092927, 0.7636517837349274], f([0.8738717175092927, 0.7636517837349274]) = 0.015908343644058232 657. x = [0.8742829934308827, 0.7636517820809807], f([0.8742829934308827, 0.7636517820809807]) = 0.015856457601775797 658. x = [0.8742829960971847, 0.7643707618097321], f([0.8742829960971847, 0.7643707618097321]) = 0.015804765070302533 659. x = [0.8746925477052142, 0.7643707603290846], f([0.8746925477052142, 0.7643707603290846]) = 0.01575326512123208 660. x = [0.8746925504864397, 0.7650870630974198], f([0.8746925504864397, 0.7650870630974198]) = 0.015701956903596194 661. x = [0.8751003882963307, 0.7650870613981721], f([0.8751003882963307, 0.7650870613981721]) = 0.01565083952425636 662. x = [0.8751003917867096, 0.7658007017621488], f([0.8751003917867096, 0.7658007017621488]) = 0.015599912131837102 663. x = [0.8755065263688028, 0.7658006997926518], f([0.8755065263688028, 0.7658006997926518]) = 0.01554917393727827 664. x = [0.8755065294840302, 0.7665116885002636], f([0.8755065294840302, 0.7665116885002636]) = 0.015498624201113488 665. x = [0.875910969982386, 0.7665116867683708], f([0.875910969982386, 0.7665116867683708]) = 0.015448262006614172 666. x = [0.8759109737361952, 0.7672200404653805], f([0.8759109737361952, 0.7672200404653805]) = 0.015398086439103533 667. x = [0.8763137309194666, 0.7672200383381963], f([0.8763137309194666, 0.7672200383381963]) = 0.015348096759453894 668. x = [0.8763137352121214, 0.7679257698599397], f([0.8763137352121214, 0.7679257698599397]) = 0.015298292097182599 669. x = [0.8767148189675492, 0.7679257674802653], f([0.8767148189675492, 0.7679257674802653]) = 0.015248671711509938 670. x = [0.8767148233230557, 0.7686288890584684], f([0.8767148233230557, 0.7686288890584684]) = 0.015199234788271178 671. x = [0.8771142434852939, 0.7686288865884368], f([0.8771142434852939, 0.7686288865884368]) = 0.01514998051524233 672. x = [0.8771142472664655, 0.7693294093203934], f([0.8771142472664655, 0.7693294093203934]) = 0.015100908224891695 673. x = [0.87751201275386, 0.7693294071961916], f([0.87751201275386, 0.7693294071961916]) = 0.015052016996395093 674. x = [0.8775120169022482, 0.7700273470150976], f([0.8775120169022482, 0.7700273470150976]) = 0.015003306003360318 675. x = [0.8779081382049783, 0.7700273446843268], f([0.8779081382049783, 0.7700273446843268]) = 0.01495477449660404 676. x = [0.8779081421755105, 0.7707227128835471], f([0.8779081421755105, 0.7707227128835471]) = 0.014906421747039962 677. x = [0.8783026285789107, 0.7707227106911342], f([0.8783026285789107, 0.7707227106911342]) = 0.014858246934436645 678. x = [0.8783026320073614, 0.771415519437039], f([0.8783026320073614, 0.771415519437039]) = 0.014810249376339362 679. x = [0.8786954925973076, 0.7714155174853068], f([0.8786954925973076, 0.7714155174853068]) = 0.014762428191642795 680. x = [0.8786954963901643, 0.7721057823668779], f([0.8786954963901643, 0.7721057823668779]) = 0.014714782596033527 681. x = [0.8790867413245859, 0.7721057801122394], f([0.8790867413245859, 0.7721057801122394]) = 0.014667311819099341 682. x = [0.8790867451991089, 0.7727935125065757], f([0.8790867451991089, 0.7727935125065757]) = 0.014620015186550006 683. x = [0.8794763833754705, 0.7727935102760715], f([0.8794763833754705, 0.7727935102760715]) = 0.014572891881762584 684. x = [0.8794763874997379, 0.7734787233450454], f([0.8794763874997379, 0.7734787233450454]) = 0.014525941170118486 685. x = [0.8798644284214852, 0.7734787210348413], f([0.8798644284214852, 0.7734787210348413]) = 0.01447916230870296 686. x = [0.8798644324391866, 0.7741614267785131], f([0.8798644324391866, 0.7741614267785131]) = 0.014432554593164112 687. x = [0.8802508852369041, 0.7741614244280243], f([0.8802508852369041, 0.7741614244280243]) = 0.014386117218804352 688. x = [0.8802508891851829, 0.7748416352848599], f([0.8802508891851829, 0.7748416352848599]) = 0.01433984954094478 689. x = [0.8806357627323161, 0.7748416329150257], f([0.8806357627323161, 0.7748416329150257]) = 0.014293750722800069 690. x = [0.8806357672838294, 0.7755193628077836], f([0.8806357672838294, 0.7755193628077836]) = 0.014247820051926832 691. x = [0.8810190711237914, 0.7755193601784094], f([0.8810190711237914, 0.7755193601784094]) = 0.014202056815406436 692. x = [0.8810190756008055, 0.7761946195005234], f([0.8810190756008055, 0.7761946195005234]) = 0.014156460370893121 693. x = [0.8814008182430234, 0.7761946169568973], f([0.8814008182430234, 0.7761946169568973]) = 0.0141110299385983 694. x = [0.8814008227815263, 0.7768674181585895], f([0.8814008227815263, 0.7768674181585895]) = 0.014065764836904946 695. x = [0.8817810133535336, 0.77686741567145], f([0.8817810133535336, 0.77686741567145]) = 0.014020664353737305 696. x = [0.8817810173344429, 0.7775377696571568], f([0.8817810173344429, 0.7775377696571568]) = 0.013975727862484364 697. x = [0.882159664385792, 0.7775377673748404], f([0.882159664385792, 0.7775377673748404]) = 0.013930954552764548 698. x = [0.8821596681098294, 0.7782056863760332], f([0.8821596681098294, 0.7782056863760332]) = 0.013886343819989579 699. x = [0.8825367802174598, 0.7782056843482841], f([0.8825367802174598, 0.7782056843482841]) = 0.013841894908861629 700. x = [0.8825367840461857, 0.7788711821271304], f([0.8825367840461857, 0.7788711821271304]) = 0.01379760710221721 701. x = [0.8829123704456902, 0.7788711799104849], f([0.8829123704456902, 0.7788711799104849]) = 0.013753479704351488 702. x = [0.8829123743102565, 0.7795342672040066], f([0.8829123743102565, 0.7795342672040066]) = 0.013709512089665702 703. x = [0.8832864430915198, 0.7795342651293928], f([0.8832864430915198, 0.7795342651293928]) = 0.013665703567271847 704. x = [0.8832864473773815, 0.7801949555040414], f([0.8832864473773815, 0.7801949555040414]) = 0.013622053365798192 705. x = [0.8836590076315033, 0.7801949531471921], f([0.8836590076315033, 0.7801949531471921]) = 0.013578560896153724 706. x = [0.8836590122159873, 0.7808532580740638], f([0.8836590122159873, 0.7808532580740638]) = 0.01353522543856652 707. x = [0.8840300726936869, 0.780853255457645], f([0.8840300726936869, 0.780853255457645]) = 0.013492046352925514 708. x = [0.8840300766191581, 0.7815091833619677], f([0.8840300766191581, 0.7815091833619677]) = 0.01344902312896323 709. x = [0.8843996448095918, 0.7815091811329514], f([0.8843996448095918, 0.7815091811329514]) = 0.01340615495965859 710. x = [0.8843996485132739, 0.7821627448373284], f([0.8843996485132739, 0.7821627448373284]) = 0.013363441263858902 711. x = [0.8847677329303604, 0.782162742752735], f([0.8847677329303604, 0.782162742752735]) = 0.013320881320303941 712. x = [0.884767736791935, 0.7828139550697094], f([0.884767736791935, 0.7828139550697094]) = 0.013278474484057676 713. x = [0.8851343461512926, 0.7828139528421276], f([0.8851343461512926, 0.7828139528421276]) = 0.013236220090822873 714. x = [0.8851343498733818, 0.7834628237867348], f([0.8851343498733818, 0.7834628237867348]) = 0.013194117579014838 715. x = [0.8854994920089311, 0.7834628217329046], f([0.8854994920089311, 0.7834628217329046]) = 0.013152166255236245 716. x = [0.8854994955683064, 0.784109363018827], f([0.8854994955683064, 0.784109363018827]) = 0.013110365515116334 717. x = [0.8858631788598209, 0.7841093609964903], f([0.8858631788598209, 0.7841093609964903]) = 0.013068714677835134 718. x = [0.8858631820594759, 0.7847535830298281], f([0.8858631820594759, 0.7847535830298281]) = 0.013027213209591595 719. x = [0.8862254142393131, 0.7847535812204456], f([0.8862254142393131, 0.7847535812204456]) = 0.012985860391163173 720. x = [0.8862254174882411, 0.7853954965313976], f([0.8862254174882411, 0.7853954965313976]) = 0.012944655625728543 721. x = [0.8865862069758746, 0.7853954946512152], f([0.8865862069758746, 0.7853954946512152]) = 0.012903598255332872 722. x = [0.886586210090507, 0.7860351132302014], f([0.886586210090507, 0.7860351132302014]) = 0.012862687741637438 723. x = [0.8869455644618883, 0.7860351115485043], f([0.8869455644618883, 0.7860351115485043]) = 0.012821923426171552 724. x = [0.886945567609161, 0.7866724458216925], f([0.886945567609161, 0.7866724458216925]) = 0.012781304683218293 725. x = [0.8873034951204194, 0.7866724439474034], f([0.8873034951204194, 0.7866724439474034]) = 0.012740830872508213 726. x = [0.8873034986522672, 0.7873075049716957], f([0.8873034986522672, 0.7873075049716957]) = 0.012700501416023448 727. x = [0.8876600072234244, 0.7873075029942043], f([0.8876600072234244, 0.7873075029942043]) = 0.012660315717043291 728. x = [0.8876600105130813, 0.7879403003993574], f([0.8876600105130813, 0.7879403003993574]) = 0.012620273237924768 729. x = [0.888015107637876, 0.7879402984600685], f([0.888015107637876, 0.7879402984600685]) = 0.012580373295321292 730. x = [0.8880151110207567, 0.7885708434432562], f([0.8880151110207567, 0.7885708434432562]) = 0.012540615359697098 731. x = [0.8883688043759315, 0.7885708415349522], f([0.8883688043759315, 0.7885708415349522]) = 0.012500998801233513 732. x = [0.888368807988481, 0.7891991453245706], f([0.888368807988481, 0.7891991453245706]) = 0.012461523029916627 733. x = [0.8887211054551399, 0.7891991433307857], f([0.8887211054551399, 0.7891991433307857]) = 0.012422187477303151 734. x = [0.8887211090178679, 0.7898252159724273], f([0.8887211090178679, 0.7898252159724273]) = 0.012382991578217276 735. x = [0.8890720180901017, 0.7898252139673525], f([0.8890720180901017, 0.7898252139673525]) = 0.012343934728237504 736. x = [0.8890720216300481, 0.790449065648623], f([0.8890720216300481, 0.790449065648623]) = 0.01230501638524813 737. x = [0.8894215497471173, 0.7904490637570392], f([0.8894215497471173, 0.7904490637570392]) = 0.012266235971115941 738. x = [0.8894215530854801, 0.7910707049630786], f([0.8894215530854801, 0.7910707049630786]) = 0.01222759292203074 739. x = [0.8897697079438084, 0.7910707031149052], f([0.8897697079438084, 0.7910707031149052]) = 0.012189086646655113 740. x = [0.8897697106581386, 0.7916901429172087], f([0.8897697106581386, 0.7916901429172087]) = 0.012150716688392899 741. x = [0.8901164992013321, 0.7916901413717176], f([0.8901164992013321, 0.7916901413717176]) = 0.01211248236566202 742. x = [0.8901165018071251, 0.7923073913284828], f([0.8901165018071251, 0.7923073913284828]) = 0.012074383175105603 743. x = [0.8904619317254534, 0.7923073899015721], f([0.8904619317254534, 0.7923073899015721]) = 0.012036418521633445 744. x = [0.8904619339028063, 0.7929224596143906], f([0.8904619339028063, 0.7929224596143906]) = 0.011998587924314694 745. x = [0.8908060122597846, 0.7929224583942195], f([0.8908060122597846, 0.7929224583942195]) = 0.011960890751846915 746. x = [0.8908060144490868, 0.793535359353918], f([0.8908060144490868, 0.793535359353918]) = 0.011923326480494621 747. x = [0.8911487487875502, 0.7935353581061878], f([0.8911487487875502, 0.7935353581061878]) = 0.011885894536294498 748. x = [0.891148750979211, 0.7941461004706414], f([0.891148750979211, 0.7941461004706414]) = 0.011848594413387502 749. x = [0.8914901483295746, 0.7941460991851058], f([0.8914901483295746, 0.7941460991851058]) = 0.011811425526448573 750. x = [0.8914901510985638, 0.7947546943940937], f([0.8914901510985638, 0.7947546943940937]) = 0.01177438730861491 751. x = [0.8918302189046571, 0.7947546928621053], f([0.8918302189046571, 0.7947546928621053]) = 0.01173747927666778 752. x = [0.8918302221048363, 0.7953611503936819], f([0.8918302221048363, 0.7953611503936819]) = 0.011700700849891887 753. x = [0.8921689675216768, 0.7953611487232589], f([0.8921689675216768, 0.7953611487232589]) = 0.011664051576006956 754. x = [0.8921689705187048, 0.7959654773278787], f([0.8921689705187048, 0.7959654773278787]) = 0.011627530918998838 755. x = [0.8925064004735392, 0.7959654756470269], f([0.8925064004735392, 0.7959654756470269]) = 0.011591138331525235 756. x = [0.8925064031181408, 0.7965676843152202], f([0.8925064031181408, 0.7965676843152202]) = 0.011554873370601872 757. x = [0.8928425242716942, 0.7965676828429837], f([0.8928425242716942, 0.7965676828429837]) = 0.011518735441861994 758. x = [0.8928425267438377, 0.7971677822251699], f([0.8928425267438377, 0.7971677822251699]) = 0.011482724074647316 759. x = [0.8931773462585945, 0.7971677807682479], f([0.8931773462585945, 0.7971677807682479]) = 0.011446838688079289 760. x = [0.8931773485861545, 0.7977657800250736], f([0.8931773485861545, 0.7977657800250736]) = 0.011411078855085547 761. x = [0.8935108730640926, 0.7977657787769157], f([0.8935108730640926, 0.7977657787769157]) = 0.01137544401615737 762. x = [0.893510875382208, 0.798361688564], f([0.893510875382208, 0.798361688564]) = 0.011339933661865352 763. x = [0.8938431119548647, 0.7983616872730771], f([0.8938431119548647, 0.7983616872730771]) = 0.011304547278723303 764. x = [0.893843114291593, 0.7989555173297349], f([0.893843114291593, 0.7989555173297349]) = 0.011269284383309685 765. x = [0.8941740697804507, 0.7989555159694577], f([0.8941740697804507, 0.7989555159694577]) = 0.01123414444306408 766. x = [0.8941740721069932, 0.7995472754684413], f([0.8941740721069932, 0.7995472754684413]) = 0.011199127014417677 767. x = [0.8945037529926642, 0.7995472741475459], f([0.8945037529926642, 0.7995472741475459]) = 0.011164231558753644 768. x = [0.8945037556795047, 0.8001369738158226], f([0.8945037556795047, 0.8001369738158226]) = 0.011129457565732031 769. x = [0.8948321689345924, 0.800136972293225], f([0.8948321689345924, 0.800136972293225]) = 0.011094804564281906 770. x = [0.8948321719953534, 0.800724621259881], f([0.8948321719953534, 0.800724621259881]) = 0.011060272047217663 771. x = [0.8951593243513157, 0.8007246196354668], f([0.8951593243513157, 0.8007246196354668]) = 0.011025859577538032 772. x = [0.8951593270639655, 0.8013102260651566], f([0.8951593270639655, 0.8013102260651566]) = 0.010991566701683296 773. x = [0.8954852247442848, 0.8013102244376997], f([0.8954852247442848, 0.8013102244376997]) = 0.010957392858985863 774. x = [0.8954852278754525, 0.8018937986450604], f([0.8954852278754525, 0.8018937986450604]) = 0.010923337592248904 775. x = [0.8958098775053918, 0.8018937969981667], f([0.8958098775053918, 0.8018937969981667]) = 0.010889400460504767 776. x = [0.895809880826539, 0.8024753485742839], f([0.895809880826539, 0.8024753485742839]) = 0.01085558093338359 777. x = [0.896133289248645, 0.8024753467156688], f([0.896133289248645, 0.8024753467156688]) = 0.010821878569367196 778. x = [0.8961332923792171, 0.8030548834572097], f([0.8961332923792171, 0.8030548834572097]) = 0.010788292951984498 779. x = [0.8964554654105995, 0.8030548816746907], f([0.8964554654105995, 0.8030548816746907]) = 0.010754823554101674 780. x = [0.8964554692126081, 0.803632415289153], f([0.8964554692126081, 0.803632415289153]) = 0.010721469855986059 781. x = [0.8967764140839288, 0.8036324131170053], f([0.8967764140839288, 0.8036324131170053]) = 0.010688231446928766 782. x = [0.8967764177112137, 0.804207949900167], f([0.8967764177112137, 0.804207949900167]) = 0.0106551079405341 783. x = [0.8970961400198625, 0.80420794787537], f([0.8970961400198625, 0.80420794787537]) = 0.010622098817740656 784. x = [0.8970961437457969, 0.8047814978728799], f([0.8970961437457969, 0.8047814978728799]) = 0.010589203631990242 785. x = [0.897414650155842, 0.8047814957838716], f([0.897414650155842, 0.8047814957838716]) = 0.010556421918022524 786. x = [0.8974146536570466, 0.8053530668671618], f([0.8974146536570466, 0.8053530668671618]) = 0.010523753284307623 787. x = [0.8977319502135429, 0.8053530649282536], f([0.8977319502135429, 0.8053530649282536]) = 0.010491197227654948 788. x = [0.8977319533154593, 0.8059226655316071], f([0.8977319533154593, 0.8059226655316071]) = 0.010458753372674453 789. x = [0.89804804594902, 0.8059226638230104], f([0.89804804594902, 0.8059226638230104]) = 0.010426421204094646 790. x = [0.8980480492433724, 0.8064903047464215], f([0.8980480492433724, 0.8064903047464215]) = 0.010394200263085405 791. x = [0.8983629446867958, 0.8064903028942937], f([0.8983629446867958, 0.8064903028942937]) = 0.01036209011523908 792. x = [0.8983629478450131, 0.8070559919183675], f([0.8983629478450131, 0.8070559919183675]) = 0.010330090370758951 793. x = [0.8986766518519782, 0.8070559901104353], f([0.8986766518519782, 0.8070559901104353]) = 0.010298200535580417 794. x = [0.8986766553152763, 0.8076197373596417], f([0.8986766553152763, 0.8076197373596417]) = 0.010266420178103619 795. x = [0.8989891742706771, 0.8076197353390958], f([0.8989891742706771, 0.8076197353390958]) = 0.010234748851640819 796. x = [0.8989891780818884, 0.8081815491625872], f([0.8989891780818884, 0.8081815491625872]) = 0.010203186144577155 797. x = [0.8993005179415113, 0.8081815470499706], f([0.8993005179415113, 0.8081815470499706]) = 0.010171731634651198 798. x = [0.8993005218707387, 0.8087414356708454], f([0.8993005218707387, 0.8087414356708454]) = 0.010140384895510517 799. x = [0.8996106886330236, 0.8087414335043567], f([0.8996106886330236, 0.8087414335043567]) = 0.010109145504899891 800. x = [0.8996106925080952, 0.8092994052592849], f([0.8996106925080952, 0.8092994052592849]) = 0.01007801305870937 801. x = [0.8999196920495277, 0.8092994030479491], f([0.8999196920495277, 0.8092994030479491]) = 0.010046987098573474 802. x = [0.8999196960764428, 0.8098554668371177], f([0.8999196960764428, 0.8098554668371177]) = 0.01001606723343712 803. x = [0.900227534281196, 0.8098554645453478], f([0.900227534281196, 0.8098554645453478]) = 0.009985253019566077 804. x = [0.9002275386839768, 0.8104096295790407], f([0.9002275386839768, 0.8104096295790407]) = 0.009954544037064037 805. x = [0.9005342214857989, 0.8104096270665264], f([0.9005342214857989, 0.8104096270665264]) = 0.00992393987489706 806. x = [0.9005342266150909, 0.8109619028030244], f([0.9005342266150909, 0.8109619028030244]) = 0.00989344007506712 807. x = [0.900839760080223, 0.8109618998855976], f([0.900839760080223, 0.8109618998855976]) = 0.009863044275032224 808. x = [0.9008397658958955, 0.8115122943962776], f([0.9008397658958955, 0.8115122943962776]) = 0.009832752027591988 809. x = [0.9011441558002086, 0.8115122911495715], f([0.9011441558002086, 0.8115122911495715]) = 0.009802562980101607 810. x = [0.9011441620173092, 0.8120608119687649], f([0.9011441620173092, 0.8120608119687649]) = 0.00977247670327263 811. x = [0.9014474140627992, 0.8120608085236274], f([0.9014474140627992, 0.8120608085236274]) = 0.009742492827045415 812. x = [0.9014474202829411, 0.8126074626800508], f([0.9014474202829411, 0.8126074626800508]) = 0.009712610968899669 813. x = [0.9017495399474437, 0.8126074592634583], f([0.9017495399474437, 0.8126074592634583]) = 0.009682830720652248 814. x = [0.9017495459845515, 0.8131522542202768], f([0.9017495459845515, 0.8131522542202768]) = 0.009653151714252866 815. x = [0.9020505386723308, 0.8131522509923241], f([0.9020505386723308, 0.8131522509923241]) = 0.009623573548250016 816. x = [0.9020505447272013, 0.8136951959355738], f([0.9020505447272013, 0.8136951959355738]) = 0.009594095788249437 817. x = [0.9023504163398006, 0.8136951926620039], f([0.9023504163398006, 0.8136951926620039]) = 0.00956471807622468 818. x = [0.9023504224725396, 0.8142362958473071], f([0.9023504224725396, 0.8142362958473071]) = 0.009535439991303404 819. x = [0.9026491787240603, 0.8142362925092028], f([0.9026491787240603, 0.8142362925092028]) = 0.00950626117268727 820. x = [0.902649184596248, 0.814775561058737], f([0.902649184596248, 0.814775561058737]) = 0.00947718125978665 821. x = [0.9029468306379125, 0.8147755578159184], f([0.9029468306379125, 0.8147755578159184]) = 0.009448199831734639 822. x = [0.9029468368959767, 0.8153130014653716], f([0.9029468368959767, 0.8153130014653716]) = 0.009419316468508711 823. x = [0.9032433788445753, 0.8153129980418251], f([0.9032433788445753, 0.8153129980418251]) = 0.009390530835988854 824. x = [0.9032433846344485, 0.8158486222298913], f([0.9032433846344485, 0.8158486222298913]) = 0.00936184261700797 825. x = [0.9035388272873219, 0.8158486190714521], f([0.9035388272873219, 0.8158486190714521]) = 0.009333251374546665 826. x = [0.9035388329900308, 0.8163824331487718], f([0.9035388329900308, 0.8163824331487718]) = 0.009304756740936044 827. x = [0.9038331821709918, 0.8163824299668178], f([0.9038331821709918, 0.8163824299668178]) = 0.00927635831786745 828. x = [0.9038331877031786, 0.8169144412247099], f([0.9038331877031786, 0.8169144412247099]) = 0.00924805578734215 829. x = [0.9041264485754081, 0.816914438165806], f([0.9041264485754081, 0.816914438165806]) = 0.009219848732502822 830. x = [0.9041264541038138, 0.8174446549075255], f([0.9041264541038138, 0.8174446549075255]) = 0.009191736802717926 831. x = [0.9044186321832537, 0.8174446518913776], f([0.9044186321832537, 0.8174446518913776]) = 0.009163719623397312 832. x = [0.9044186375317413, 0.817973081673903], f([0.9044186375317413, 0.817973081673903]) = 0.009135796851298169 833. x = [0.904709738088231, 0.8179730787017376], f([0.904709738088231, 0.8179730787017376]) = 0.009107968087832952 834. x = [0.9047097434328836, 0.8184997295225044], f([0.9047097434328836, 0.8184997295225044]) = 0.009080232996636206 835. x = [0.9049997716778948, 0.8184997265823786], f([0.9049997716778948, 0.8184997265823786]) = 0.009052591199447419 836. x = [0.9049997773210736, 0.8190246075367381], f([0.9049997773210736, 0.8190246075367381]) = 0.009025042309056803 837. x = [0.9052887389208047, 0.8190246043170042], f([0.9052887389208047, 0.8190246043170042]) = 0.00899758597002354 838. x = [0.9052887447905262, 0.8195477218014142], f([0.9052887447905262, 0.8195477218014142]) = 0.008970221863364799 839. x = [0.9055766447363368, 0.8195477186531898], f([0.9055766447363368, 0.8195477186531898]) = 0.008942949646260906 840. x = [0.90557665011417, 0.8200690790764706], f([0.90557665011417, 0.8200690790764706]) = 0.008915769003671565 841. x = [0.905863493407962, 0.8200690760859323], f([0.905863493407962, 0.8200690760859323]) = 0.008888679520697848 842. x = [0.9058634985324351, 0.820588687136079], f([0.9058634985324351, 0.820588687136079]) = 0.008861680908561247 843. x = [0.9061492903729347, 0.8205886843544098], f([0.9061492903729347, 0.8205886843544098]) = 0.008834772776108092 844. x = [0.9061492948634821, 0.8211065527141628], f([0.9061492948634821, 0.8211065527141628]) = 0.00880795485462825 845. x = [0.9064340401176707, 0.8211065502467585], f([0.9064340401176707, 0.8211065502467585]) = 0.008781226714121649 846. x = [0.9064340443508978, 0.8216226843314911], f([0.9064340443508978, 0.8216226843314911]) = 0.008754588056535494 847. x = [0.9067177481561679, 0.8216226820352452], f([0.9067177481561679, 0.8216226820352452]) = 0.008728038502900085 848. x = [0.9067177525372958, 0.822137090651203], f([0.9067177525372958, 0.822137090651203]) = 0.0087015776916994 849. x = [0.9070004202933467, 0.8221370882619189], f([0.9070004202933467, 0.8221370882619189]) = 0.008675205304061837 850. x = [0.9070004247508037, 0.8226497788065525], f([0.9070004247508037, 0.8226497788065525]) = 0.008648920996537834 851. x = [0.9072820615509639, 0.822649776290501], f([0.9072820615509639, 0.822649776290501]) = 0.008622724420970998 852. x = [0.9072820659497041, 0.8231607555153796], f([0.9072820659497041, 0.8231607555153796]) = 0.008596615294561951 853. x = [0.9075626764750929, 0.8231607529969467], f([0.9075626764750929, 0.8231607529969467]) = 0.008570593226232034 854. x = [0.9075626812717787, 0.8236700291611587], f([0.9075626812717787, 0.8236700291611587]) = 0.008544657893670373 855. x = [0.9078422708024901, 0.8236700265225274], f([0.9078422708024901, 0.8236700265225274]) = 0.008518808982756998 856. x = [0.9078422753752874, 0.8241776051698868], f([0.9078422753752874, 0.8241776051698868]) = 0.008493046208011104 857. x = [0.9081208483374607, 0.8241776026878255], f([0.9081208483374607, 0.8241776026878255]) = 0.00846736920858276 858. x = [0.9081208531314103, 0.8246834925579393], f([0.9081208531314103, 0.8246834925579393]) = 0.00844177762930738 859. x = [0.9083984148855664, 0.8246834899400889], f([0.9083984148855664, 0.8246834899400889]) = 0.008416271173928727 860. x = [0.9083984195317242, 0.8251876972940203], f([0.9083984195317242, 0.8251876972940203]) = 0.008390849544293555 861. x = [0.9086749746515697, 0.8251876946715815], f([0.9086749746515697, 0.8251876946715815]) = 0.008365512376001756 862. x = [0.9086749795018112, 0.8256902271537685], f([0.9086749795018112, 0.8256902271537685]) = 0.008340259369002316 863. x = [0.9089505329887486, 0.8256902245042924], f([0.9089505329887486, 0.8256902245042924]) = 0.00831509020638344 864. x = [0.9089505375160916, 0.8261910880752383], f([0.9089505375160916, 0.8261910880752383]) = 0.008290004618615747 865. x = [0.9092250937665732, 0.8261910855349207], f([0.9092250937665732, 0.8261910855349207]) = 0.008265002228003485 866. x = [0.9092250986813076, 0.8266902890074079], f([0.9092250986813076, 0.8266902890074079]) = 0.008240082709426323 867. x = [0.9094986628530292, 0.8266902863146433], f([0.9094986628530292, 0.8266902863146433]) = 0.008215245776460458 868. x = [0.9094986679080622, 0.8271878360294699], f([0.9094986679080622, 0.8271878360294699]) = 0.008190491110423494 869. x = [0.9097712445877604, 0.8271878332878516], f([0.9097712445877604, 0.8271878332878516]) = 0.008165818416321292 870. x = [0.9097712497870095, 0.8276837364978247], f([0.9097712497870095, 0.8276837364978247]) = 0.008141227365007367 871. x = [0.9100428438566934, 0.8276837336206205], f([0.9100428438566934, 0.8276837336206205]) = 0.008116717657921272 872. x = [0.91004284892551, 0.8281779963133686], f([0.91004284892551, 0.8281779963133686]) = 0.008092289029447511 873. x = [0.9103134647680999, 0.8281779934757442], f([0.9103134647680999, 0.8281779934757442]) = 0.00806794112836978 874. x = [0.910313469882947, 0.8286706228833216], f([0.910313469882947, 0.8286706228833216]) = 0.008043673684445946 875. x = [0.9105831121607867, 0.8286706200473503], f([0.9105831121607867, 0.8286706200473503]) = 0.00801948636999394 876. x = [0.9105831173705384, 0.8291616228357476], f([0.9105831173705384, 0.8291616228357476]) = 0.00799537889917936 877. x = [0.9108517906242414, 0.8291616200728034], f([0.9108517906242414, 0.8291616200728034]) = 0.007971350987538667 878. x = [0.9108517958189032, 0.8296510032871665], f([0.9108517958189032, 0.8296510032871665]) = 0.007947402308723251 879. x = [0.9111195047071454, 0.8296510004822574], f([0.9111195047071454, 0.8296510004822574]) = 0.007923532583936929 880. x = [0.9111195100768912, 0.8301387714244787], f([0.9111195100768912, 0.8301387714244787]) = 0.007899741488981416 881. x = [0.9113862592787664, 0.8301387684888346], f([0.9113862592787664, 0.8301387684888346]) = 0.007876028751729356 882. x = [0.9113862647336358, 0.8306249337588636], f([0.9113862647336358, 0.8306249337588636]) = 0.007852394077867707 883. x = [0.9116520587123387, 0.8306249306953519], f([0.9116520587123387, 0.8306249306953519]) = 0.007828837159960864 884. x = [0.9116520643948138, 0.8311094968840079], f([0.9116520643948138, 0.8311094968840079]) = 0.007805357725708873 885. x = [0.9119169075919082, 0.8311094937758242], f([0.9119169075919082, 0.8311094937758242]) = 0.007781955487254845 886. x = [0.9119169132766969, 0.8315924673384932], f([0.9119169132766969, 0.8315924673384932]) = 0.007758630166716213 887. x = [0.9121808101427094, 0.8315924641572929], f([0.9121808101427094, 0.8315924641572929]) = 0.007735381452441146 888. x = [0.9121808159565267, 0.832073851689549], f([0.9121808159565267, 0.832073851689549]) = 0.00771220908607287 889. x = [0.9124437708130272, 0.8320738484886092], f([0.9124437708130272, 0.8320738484886092]) = 0.007689112769065048 890. x = [0.9124437768686042, 0.8325536568105966], f([0.9124437768686042, 0.8325536568105966]) = 0.007666092209046567 891. x = [0.9127057942517091, 0.8325536535594457], f([0.9127057942517091, 0.8325536535594457]) = 0.007643147153369158 892. x = [0.9127058002076828, 0.8330318887718564], f([0.9127058002076828, 0.8330318887718564]) = 0.007620277317393184 893. x = [0.9129668844173093, 0.833031885470296], f([0.9129668844173093, 0.833031885470296]) = 0.007597482403523539 894. x = [0.9129668905011636, 0.8335085543882728], f([0.9129668905011636, 0.8335085543882728]) = 0.007574762149049067 895. x = [0.9132270458999889, 0.8335085510294664], f([0.9132270458999889, 0.8335085510294664]) = 0.007552116265694612 896. x = [0.9132270520630396, 0.8339836600101189], f([0.9132270520630396, 0.8339836600101189]) = 0.007529544493683421 897. x = [0.9134862829935595, 0.8339836566073704], f([0.9134862829935595, 0.8339836566073704]) = 0.007507046543545617 898. x = [0.9134862890763066, 0.8344572116140245], f([0.9134862890763066, 0.8344572116140245]) = 0.007484622177801123 899. x = [0.9137445996906631, 0.8344572082450671], f([0.9137445996906631, 0.8344572082450671]) = 0.0074622710871989255 900. x = [0.9137446058044518, 0.8349292157793805], f([0.9137446058044518, 0.8349292157793805]) = 0.0074399930278418215 901. x = [0.9140020003927565, 0.8349292124543833], f([0.9140020003927565, 0.8349292124543833]) = 0.007417787717337067 902. x = [0.914002006385832, 0.8353996787354913], f([0.914002006385832, 0.8353996787354913]) = 0.0073956549056747155 903. x = [0.9142584891388748, 0.8353996754375517], f([0.9142584891388748, 0.8353996754375517]) = 0.007373594299006993 904. x = [0.914258495220132, 0.8358686070453697], f([0.914258495220132, 0.8358686070453697]) = 0.0073516056419281415 905. x = [0.9145140705309339, 0.8358686037775765], f([0.9145140705309339, 0.8358686037775765]) = 0.007329688676504737 906. x = [0.9145140760533683, 0.8363360057365753], f([0.9145140760533683, 0.8363360057365753]) = 0.007307843193020188 907. x = [0.9147687477301139, 0.836336002627402], f([0.9147687477301139, 0.836336002627402]) = 0.0072860688425724325 908. x = [0.9147687533857966, 0.8368018827150628], f([0.9147687533857966, 0.8368018827150628]) = 0.007264365399422284 909. x = [0.9150225259267767, 0.8368018795756837], f([0.9150225259267767, 0.8368018795756837]) = 0.007242732577109969 910. x = [0.9150225313669604, 0.8372662431186638], f([0.9150225313669604, 0.8372662431186638]) = 0.007221170175289646 911. x = [0.9152754085447808, 0.8372662400805837], f([0.9152754085447808, 0.8372662400805837]) = 0.007199677873446205 912. x = [0.915275414389651, 0.8377290950126481], f([0.915275414389651, 0.8377290950126481]) = 0.007178255406857081 913. x = [0.9155274006907984, 0.8377290917927256], f([0.9155274006907984, 0.8377290917927256]) = 0.007156902536151656 914. x = [0.9155274068631155, 0.8381904438234026], f([0.9155274068631155, 0.8381904438234026]) = 0.007135618991281958 915. x = [0.915778506304491, 0.8381904405221915], f([0.915778506304491, 0.8381904405221915]) = 0.007114404555134706 916. x = [0.9157785125580186, 0.8386502954374062], f([0.9157785125580186, 0.8386502954374062]) = 0.007093258946952774 917. x = [0.9160287292297135, 0.8386502920582194], f([0.9160287292297135, 0.8386502920582194]) = 0.007072181935969677 918. x = [0.9160287354104886, 0.839108655528287], f([0.9160287354104886, 0.839108655528287]) = 0.007051173276774802 919. x = [0.916278073132419, 0.8391086521342739], f([0.916278073132419, 0.8391086521342739]) = 0.007030232702963382 920. x = [0.9162780796535626, 0.8395655313712682], f([0.9162780796535626, 0.8395655313712682]) = 0.007009359946509899 921. x = [0.9165265426202812, 0.8395655277751887], f([0.9165265426202812, 0.8395655277751887]) = 0.00698855477628675 922. x = [0.9165265496333913, 0.8400209289672528], f([0.9165265496333913, 0.8400209289672528]) = 0.006967816916123029 923. x = [0.9167741419379509, 0.8400209251753631], f([0.9167741419379509, 0.8400209251753631]) = 0.006947146166405627 924. x = [0.9167741490095042, 0.8404748531238945], f([0.9167741490095042, 0.8404748531238945]) = 0.006926542273108683 925. x = [0.917020874415322, 0.8404748493199802], f([0.917020874415322, 0.8404748493199802]) = 0.006906005007031227 926. x = [0.9170208813717319, 0.8409273098155909], f([0.9170208813717319, 0.8409273098155909]) = 0.006885534128340948 927. x = [0.9172667438437851, 0.8409273059805245], f([0.9172667438437851, 0.8409273059805245]) = 0.0068651293732699785 928. x = [0.917266750635751, 0.8413783041220785], f([0.917266750635751, 0.8413783041220785]) = 0.006844790550382132 929. x = [0.9175117538126417, 0.8413783004796395], f([0.9175117538126417, 0.8413783004796395]) = 0.006824517393731729 930. x = [0.9175117603526254, 0.8418278425554058], f([0.9175117603526254, 0.8418278425554058]) = 0.006804309680137517 931. x = [0.9177559081397783, 0.8418278389534305], f([0.9177559081397783, 0.8418278389534305]) = 0.006784167136669268 932. x = [0.9177559150015917, 0.8422759320264194], f([0.9177559150015917, 0.8422759320264194]) = 0.006764089517241049 933. x = [0.9179992115060938, 0.8422759283269634], f([0.9179992115060938, 0.8422759283269634]) = 0.0067440766132569035 934. x = [0.9179992184338683, 0.8427225779153972], f([0.9179992184338683, 0.8427225779153972]) = 0.006724128177473003 935. x = [0.9182416674325147, 0.8427225741102162], f([0.9182416674325147, 0.8427225741102162]) = 0.0067042439748774925 936. x = [0.9182416746414315, 0.8431677862545262], f([0.9182416746414315, 0.8431677862545262]) = 0.006684423765454989 937. x = [0.9184832799596017, 0.8431677823520494], f([0.9184832799596017, 0.8431677823520494]) = 0.006664667337575963 938. x = [0.9184832873467706, 0.8436115626685672], f([0.9184832873467706, 0.8436115626685672]) = 0.006644974441807477 939. x = [0.918724052731792, 0.8436115586715518], f([0.918724052731792, 0.8436115586715518]) = 0.006625344868437687 940. x = [0.918724060405946, 0.84405391336468], f([0.918724060405946, 0.84405391336468]) = 0.006605778356916466 941. x = [0.9189639897522063, 0.8440539091741389], f([0.9189639897522063, 0.8440539091741389]) = 0.0065862747041045755 942. x = [0.9189639976916356, 0.8444948435261537], f([0.9189639976916356, 0.8444948435261537]) = 0.006566833670142184 943. x = [0.919203094609338, 0.8444948392561022], f([0.919203094609338, 0.8444948392561022]) = 0.0065474550564582484 944. x = [0.9192031027422741, 0.8449343590177372], f([0.9192031027422741, 0.8449343590177372]) = 0.006528138606497791 945. x = [0.9194413709736919, 0.8449343546160325], f([0.9194413709736919, 0.8449343546160325]) = 0.006508884122913786 946. x = [0.9194413794358242, 0.8453724658215078], f([0.9194413794358242, 0.8453724658215078]) = 0.006489691347227199 947. x = [0.9196788229822598, 0.8453724612228465], f([0.9196788229822598, 0.8453724612228465]) = 0.006470560089555609 948. x = [0.9196788310104074, 0.8458091670788931], f([0.9196788310104074, 0.8458091670788931]) = 0.006451490187876809 949. x = [0.9199154528963219, 0.8458091626983536], f([0.9199154528963219, 0.8458091626983536]) = 0.006432481359298312 950. x = [0.9199154608573182, 0.8462444698264956], f([0.9199154608573182, 0.8462444698264956]) = 0.006413533409717343 951. x = [0.9201512648021568, 0.8462444654976813], f([0.9201512648021568, 0.8462444654976813]) = 0.006394646098984187 952. x = [0.9201512731922253, 0.846678380889586], f([0.9201512731922253, 0.846678380889586]) = 0.00637581917284614 953. x = [0.9203862633203891, 0.8466783763775356], f([0.9203862633203891, 0.8466783763775356]) = 0.0063570524622514404 954. x = [0.9203862714823873, 0.8471109036633543], f([0.9203862714823873, 0.8471109036633543]) = 0.006338345768498433 955. x = [0.9206204509428326, 0.847110899271897], f([0.9206204509428326, 0.847110899271897]) = 0.006319698859252652 956. x = [0.9206204590850198, 0.8475420446025311], f([0.9206204590850198, 0.8475420446025311]) = 0.006301111515895271 957. x = [0.9208538315847477, 0.84754204021726], f([0.9208538315847477, 0.84754204021726]) = 0.006282583529357765 958. x = [0.9208538397943645, 0.847971809295845], f([0.9208538397943645, 0.847971809295845]) = 0.006264114675318712 959. x = [0.9210864089759685, 0.8479718048789336], f([0.9210864089759685, 0.8479718048789336]) = 0.00624570475590897 960. x = [0.9210864171460581, 0.8484002027758896], f([0.9210864171460581, 0.8484002027758896]) = 0.006227353558868228 961. x = [0.9213181864532358, 0.848400198392589], f([0.9213181864532358, 0.848400198392589]) = 0.006209060879162732 962. x = [0.9213181946257178, 0.8488272309551849], f([0.9213181946257178, 0.8488272309551849]) = 0.006190826496979541 963. x = [0.9215491677075497, 0.8488272264913388], f([0.9215491677075497, 0.8488272264913388]) = 0.006172650199542785 964. x = [0.9215491759488464, 0.8492528987020144], f([0.9215491759488464, 0.8492528987020144]) = 0.006154531794327583 965. x = [0.9217793560787022, 0.8492528942981273], f([0.9217793560787022, 0.8492528942981273]) = 0.006136471080852969 966. x = [0.9217793645329273, 0.8496772123692661], f([0.9217793645329273, 0.8496772123692661]) = 0.0061184678128966665 967. x = [0.9220087554719467, 0.8496772078266547], f([0.9220087554719467, 0.8496772078266547]) = 0.006100521822414349 968. x = [0.9220087640563741, 0.8501001768411702], f([0.9220087640563741, 0.8501001768411702]) = 0.006082632884039428 969. x = [0.9222373692451884, 0.8501001721970868], f([0.9222373692451884, 0.8501001721970868]) = 0.006064800810642016 970. x = [0.9222373778500381, 0.8505217970781929], f([0.9222373778500381, 0.8505217970781929]) = 0.006047025403663261 971. x = [0.9224652006801186, 0.8505217923982927], f([0.9224652006801186, 0.8505217923982927]) = 0.006029306453700887 972. x = [0.9224652091684857, 0.8509420776078945], f([0.9224652091684857, 0.8509420776078945]) = 0.0060116437893106365 973. x = [0.9226922528370642, 0.8509420730746031], f([0.9226922528370642, 0.8509420730746031]) = 0.005994037199126726 974. x = [0.9226922611476706, 0.8513610241586341], f([0.9226922611476706, 0.8513610241586341]) = 0.005976486486483612 975. x = [0.9229185292187964, 0.8513610196582326], f([0.9229185292187964, 0.8513610196582326]) = 0.0059589914387207545 976. x = [0.9229185372911985, 0.8517786413888238], f([0.9229185372911985, 0.8517786413888238]) = 0.005941551893350589 977. x = [0.9231440329260162, 0.8517786370262723], f([0.9231440329260162, 0.8517786370262723]) = 0.0059241676213395685 978. x = [0.9231440410324243, 0.8521949355739284], f([0.9231440410324243, 0.8521949355739284]) = 0.005906838428848419 979. x = [0.9233687677902817, 0.8521949311646232], f([0.9233687677902817, 0.8521949311646232]) = 0.005889564113999466 980. x = [0.923368776066187, 0.8526099118002777], f([0.923368776066187, 0.8526099118002777]) = 0.005872344481617265 981. x = [0.9235927374346581, 0.8526099073621101], f([0.9235927374346581, 0.8526099073621101]) = 0.005855179352664315 982. x = [0.9235927452854975, 0.8530235734442081], f([0.9235927452854975, 0.8530235734442081]) = 0.005838068573027313 983. x = [0.9238159440873416, 0.8530235692670151], f([0.9238159440873416, 0.8530235692670151]) = 0.005821011919062619 984. x = [0.9238159519153692, 0.8534359273558936], f([0.9238159519153692, 0.8534359273558936]) = 0.005804009182581902 985. x = [0.9240383917379903, 0.8534359231683332], f([0.9240383917379903, 0.8534359231683332]) = 0.005787060186534011 986. x = [0.9240383997744553, 0.8538469790924065], f([0.9240383997744553, 0.8538469790924065]) = 0.005770164708847472 987. x = [0.9242600841462311, 0.8538469747632509], f([0.9242600841462311, 0.8538469747632509]) = 0.005753322588298864 988. x = [0.9242600921263099, 0.8542567324742576], f([0.9242600921263099, 0.8542567324742576]) = 0.005736533644736315 989. x = [0.9244810240911069, 0.8542567282223464], f([0.9244810240911069, 0.8542567282223464]) = 0.005719797692977011 990. x = [0.9244810317752236, 0.8546651920875198], f([0.9244810317752236, 0.8546651920875198]) = 0.005703114561754325 991. x = [0.9247012143802424, 0.8546651880130189], f([0.9247012143802424, 0.8546651880130189]) = 0.005686484054067238 992. x = [0.9247012219897596, 0.8550723640750929], f([0.9247012219897596, 0.8550723640750929]) = 0.005669905969855421 993. x = [0.9249206586581258, 0.8550723599586949], f([0.9249206586581258, 0.8550723599586949]) = 0.005653380124291675 994. x = [0.9249206664961406, 0.8554782538821156], f([0.9249206664961406, 0.8554782538821156]) = 0.005636906319404978 995. x = [0.9251393605452825, 0.8554782496381296], f([0.9251393605452825, 0.8554782496381296]) = 0.0056204843867956635 996. x = [0.9251393686083441, 0.8558828662716627], f([0.9251393686083441, 0.8558828662716627]) = 0.005604114132379643 997. x = [0.9253573233284182, 0.855882861927143], f([0.9253573233284182, 0.855882861927143]) = 0.005587795391729842 998. x = [0.9253573311345317, 0.8562862047707357], f([0.9253573311345317, 0.8562862047707357]) = 0.0055715280153809405 999. x = [0.9255745493698055, 0.8562862005552137], f([0.9255745493698055, 0.8562862005552137]) = 0.005555311790944824 1000. x = [0.9255745569972949, 0.8566882745000424], f([0.9255745569972949, 0.8566882745000424]) = 0.005539146566168343 WARNING: maximum number of iterations reached
([0.9255745569972949, 0.8566882745000424], [1.0 0.0 0.0; 0.7711096853441531 0.1612620227407261 0.0; … ; 0.005555311790944824 0.9255745493698055 0.8562862005552137; 0.005539146566168343 0.9255745569972949 0.8566882745000424])
The minimizer is located at $(1,1)$. Indeed, $$ \nabla f(1,1) = \begin{pmatrix} 0 \\ 0 \end{pmatrix} $$ and $$ \nabla^2 f(1,1) = \begin{pmatrix} 802 & -400 \\ -400 & 200 \end{pmatrix} $$ The determinants of the principal minors are positive as they are respectively 802 and $802\times200-400^2= 400$, so the Hessian is positive definite.
However the steepest descent method converges very slowly.
plot!(iter[:,2], iter[:,3])
The exact minimization of the function along the search direction requires assumptions as unimodality or convexity, that are not necessarily satisfied. It is more practical to approximately minimize the function along the search direction using backtracking. This will be done more explicitely in the linesearch notebook.
For nonconvex functions, a first approach is to fix the step length.
function batchdescent(f::Function, fprime::Function, x0, α::Float64, verbose::Bool = true,
record::Bool = false, tol::Float64 = 1e-7, maxiter::Int64 = 1000)
function fsearch(α::Float64)
return(f(x-α*grad))
end
x = x0
k = 0
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx")
end
if (record)
iterates = [ fx x' ]
end
while ((k < maxiter) && (norm(grad) > tol))
x = x-α*grad
k += 1
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx")
end
if (record)
iterates = [ iterates; fx x' ]
end
end
if (k == maxiter)
println("WARNING: maximum number of iterations reached")
end
if (record)
return x, iterates
else
return x
end
end
We can get close too the solution if $\alpha$ is small enough.
sol, iter = batchdescent(f1, f1grad, [2.0,3.0], 0.1, true, true)
But if $\alpha$ is too large, it does not work at all!
ol, iter = batchdescent(f1, f1grad, [2.0,3.0], 2.0, true, true)
If $f \in C^1$, $f$ convex, and $\nabla f(\cdot)$ is Lipschitz continuous, i.e. $\exists L >0$ such that $$ \forall x, y,\ \| \nabla f(x) - \nabla f(y) \|_2 \leq L \| x - y\|_2, $$ we can recover the convergence by considering a decreasing sequence of step lengths $\alpha_k > 0$ staisfying $$ \sum_{k = 1}^{+\infty} \alpha_k = +\infty,\qquad \sum_{k = 1}^{+\infty} \alpha_k^2 < +\infty. $$ Example: $\alpha_k = \frac{\kappa}{k}$.
function rbdescent(f::Function, fprime::Function, x0, α0::Float64, verbose::Bool = true,
record::Bool = false, tol::Float64 = 1e-7, maxiter::Int64 = 1000)
function fsearch(α::Float64)
return(f(x-α*grad))
end
x = x0
k = 0
α = α0
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx")
end
if (record)
iterates = [ fx x' ]
end
while ((k < maxiter) && (norm(grad) > tol))
k += 1
α = α0/k
x = x-α*grad
grad = fprime(x)
if (verbose || record)
fx = f(x)
end
if (verbose)
println("$k. x = $x, f($x) = $fx", ", α = ", α)
end
if (record)
iterates = [ iterates; fx x' ]
end
end
if (k == maxiter)
println("WARNING: maximum number of iterations reached")
end
if (record)
return x, iterates
else
return x
end
end
ol, iter = rbdescent(f1, f1grad, [2.0,3.0], 2.0, true, true)
ol, iter = rbdescent(f1, f1grad, [10.0,10.0], 2.0, true, true)
ol, iter = rbdescent(f1, f1grad, [100.0,100.0], 2.0, true, true)
ol, iter = rbdescent(f1, f1grad, [100.0,100.0], 0.1, true, true)
This technique has been proposed by Robbins and Monro in 1951 in the context of stochastic approximation, where the objective is $$ f(x) = E[g(x,\xi)] $$ and at each iteration, the next iterate is computed as $$ x_{k+1} = x_k - \alpha_k \nabla g(x_k,\xi_k) $$ where $\xi_k$ is drawn from the distribution of $\xi$.
This technique, as well as some extensions (mini-batch, stochastic average gradient,...) is still very popular in machine learning.