2013-06-01 4 views
1

측정 한 두 점의 데이터가 있고 계산 한 두 점의 데이터가 있습니다. 나는이 데이터의 차이를 최소화하려고 노력하고있다. 예 :파이썬 최적화

점 1 (측정)과 점 1 (계산)의 차이를 최소화하십시오. 점 2 (측정)와 점 2 (계산)의 차이를 최소화하십시오.

포인트 1 (계산 된 값)과 포인트 2 (계산 된 값)는 2 차 분포의 일부로 연결됩니다. a * x^2 + b * x + c. 'a'매개 변수 만 변경하고 싶습니다.

따라서 하나의 매개 변수 만 변경하여 포인트 1과 포인트 2의 차이를 최소화하려고합니다.

어떻게 이것을 파이썬을 사용하여 수행 할 수 있습니까? 나는 scipy를 사용하려고 생각하고 있는데, 적합한 옵티 마이저는 무엇이 될까요?

답변

0

scipy.optimizefsolve, rootminimize 같은 몇 가지 좋은 방법이 있습니다. 문서가 어떻게 작동하는지 알아 보려면 여기를 참고하십시오. 그러나 선형 함수의 근원을 찾는 간단한 예가 있습니다 :

import scipy 
from scipy.optimize import fsolve 

def function_to_find_root_of(x, slope, yintercept): 
    ''' x is a list of all the variables you need to minimize 
     the other variables will be passed in as constants ''' 

    return slope*x + yintercept 

m = 4 
b = 7 
print fsolve(function_to_find_root_of, x0=[10], args=(m, b), xtol=1e-10) 
#prints [-1.75], which is the root of y=4x+7