Scipy에 포함 된 curve_fit 함수를 사용하는 데 약간의 문제가 있습니다. 내가 맞추고 싶은 기능은 다음과 같습니다.
def funclog(x, a, b, c, d):
return a * np.log(b * x + c) + d
내가 가진 문제는 fit 함수가 일부 포인트 (y (min) = 0 및 y (max) = 1)에 특정 값을 갖기를 원한다는 것입니다. curve_fit으로이 점들을 어떻게 강제 할 수 있습니까?
감사합니다
에서 특정 값을 갖는 피트의 요구는 x=0
, x=1
파라미터는 것을 의미한다 a
, b
, c
, d
두 방정식 세트에 따라 제한된다 :
funclog(0, a, b, c, d) = 0
, funclog(1, a, b, c, d) = 1
funclog
고려 중인 형태에 대해이 연립 방정식을 다음과 관련하여 풀 수 a
있으며 d
그 결과 (고유 한) 솔루션을 얻을 수 있습니다.
a = 1/(-log(c) + log(b + c))
과 d=log(c)/(log(c) - log(b + c))
(즉, 가정 b
및 c
분모가 0이 아닌되도록이다).
이러한 표현을 교체 a
하고 d
에 funclog
새로운 피팅 기능의 결과, 즉,
(log(c) - log(b*x + c))/(log(c) - log(b + c))
,
기본적으로 제약 조건을 충족합니다. b
및 의 값은 c
에서 찾을 수 있습니다 curve_fit
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다