def penalty( x ): global r xk, Fxk = lsgnonlin( F, gradF, H, x, 10**4, 0 ) if P( xk ) <= eps: return xk, f( xk ) r *= C return penalty( xk )
def penalty( x ): global r, mu xk, Lxk = lsgnonlin( L, gradL, H, x, 10**4, 0 ) if abs( P( xk ) ) <= eps: return xk, f( xk ) r *= C mu = [ max( 0, mi + r * gi( xk ) ) for mi, gi in zip( mu, g ) ] return penalty( xk )