Convergence rate vs Hessian condition number using a Pluto.jl notebook: using Plots, LinearAlgebra, PlutoUI begin f(x) = x[1]^2 + γ*x[2]^2 ∇f(x) = [2*x[1], 2*γ*x[2]] opt_step(x, Δ) = - (x[1]*Δ[1] + γ*x[2]*Δ[2])/(Δ[1]^2 + γ*Δ[2]^2) function grad_desc(; n_itermax = 40, x0 = [10, 1], ϵ = 1e-1) x = zeros(2, n_itermax) x[:,1] = x0 k = 1 while (norm(∇f(x[:,k])) > ϵ) && (k < n_itermax) Δ = - ∇f(x[:,k]) x[:, k+1] = x[:, k] + opt_step(x[:,k], Δ)*Δ k += 1 end x, k end end @bind γ Slider(1:0.