! H_1 =H +(s -H*y)*sT*H/sT*H*y
! H_1 =H_k+1; H=H_k
! s =x_k+1 -x_k; y =f_k+1 -f_k

subroutine Broyden_Update_2(n, H, s, y, H1)
real(4) H1(n,n), H(n,n)
real(4) s(n), y(n), s_hy(n), s_hy_s(n,n), scal_num, DH(n,n)

s_hy =s -matmul(H, y)
call col_line_prod(n, s_hy, s, s_hy_s)

scal_num =DOT_PRODUCT( s, matmul(H,y) )
DH =matmul(s_hy_s, H)/scal_num

H1 =H +DH

END


