コードメモ > 探索


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

最小点を探索。凸問題解きたい。

def half(function,start,end,nest=40):
  if nest==0:
    return function((end-start)/2.0+start)
  point0 = (end-start)/3.0 + start
  point1 = (end-start)*2/3.0 + start
  if function(point0) < function(point1):
    return half(function,start,point1,nest-1)
  else:
    return half(function,point0,end,nest-1)
    
print half(lambda x:(x-4)**2-20,-100,100)