0
Scipy를 사용하여 후자의 두 가지 제약 기능이있는 첫 번째 기능을 최적화하려고합니다.Python Scipy 최적화 : 런타임 경고 로그에서 잘못된 값이 발생했습니다
def entropy(x):
entropy = 0
for i in range(6):
entropy = entropy + x[i]*np.log(x[i])
return entropy
def constraint_1(x):
validpmf = 0
for i in range(6):
validpmf = validpmf + x[i]
return validpmf - 1
def constraint_2(x):
mean = 0
for i in range(7):
mean = mean + (i*x[i-1])
return mean - 4.5
여기는 Scipy 코드입니다. 나는 그것이 오답 반환 된 간단한 최적화 문제와 전에이 문제를 가지고
[ 0.05447023 0.07863089 0.1140969 0.16556351 0.23970755 0.34753092]
RuntimeWarning: invalid value encountered in log
entropy = entropy + x[i]*np.log(x[i])
: 나는 다시 실제 정답을 수신하고,하지만 난 런타임 경고를 얻고있다
ans = sp.optimize.minimize(entropy, [.04,.08,.1,.15,.25,.35], \
constraints = cons, jac = False, method = 'SLSQP')
처음의 추측을 바꾸어 수정했습니다. 나는 그것이 왜 효과가 있었는지 이해하지 못한다. 그러나이 경우 초기 추측은 아주 좋은 근사값이므로 계속 유지하려고하며 런타임 경고를 완화하지 못했습니다.
요약하면 솔루션은 정확하지만 런타임 경고는 이해할 수 없습니다.