2017-04-18 7 views
0

매우 복잡한 최소화 문제에 제약 조건을 추가하려고하는데 문서를 읽은 후에도이를 구현하는 방법을 모르겠습니다.iminuit fitter에 제약 조건 추가

간단한 예를 들어 대답하면 원래 문제가 해결됩니다. 다음은 코드입니다.

from iminuit import Minuit 
def f(x,y,z): 
    return (x-1.)**2 +(y-2*x)**2 + (z-3.*x)**2 -1. 

    m=Minuit(f, x=.5, error_x=0.2, limit_x=(0.,1.), y=0.,limit_y= 
    (0.,1.), print_level=1) 

m.migrad(); 

x + y = 1과 같은 제약 조건을 추가하고 싶습니다.

덕분에 내 자신의 질문에

+0

저는 x와 y를 간격 (0,1)으로 제한하고 각각의 변수에 1/(x + y)의 인자로 가중치를 주면 가정합니다. 그것은 효과가 있지만 절름발이가 아닌가? 더 복잡한 제약은 어떨까요? 나는이 특정 조련사에 대해 알지 못하는 구조가 있는지 궁금합니다. – Canuck

답변

0

대답은 MINUIT를 사용하여 귀찮게하지 않습니다. SLSQP 메소드로 scipy.optimize를 사용하십시오. 그것은 평등과 불평등 제약 방법이 내장되어 있습니다.