function [Bx_n, By_n] = E_MIN_EVOLVE(Ax, Ay, Bx, By, KV, Vo, KL, Lo, N_steps)

Bx_n = Bx; By_n = By;

for n_steps=1:N_steps,
   
    % Calculate the gradient
    [Gx, Gy] = CALC_GRADIENT_FULL(Ax, Ay, Bx_n, By_n, KV, Vo, KL, Lo);
    
    % Move Until energy minimum
    
    Bx_tmp = Bx_n; By_tmp = By_n;
    EMIN_FUN = @(p) CALC_ENERGY(Ax, Ay, Bx_tmp + p*Gx, By_tmp + p*Gy, KV, Vo, KL, Lo);
    
    beta = fminsearch(EMIN_FUN, 0);
    Bx_n = Bx_tmp + beta*Gx; By_n = By_tmp + beta*Gy;
    
end



end