Разобраться с переполнением в exp, используя numpy
Используя Numpy, у меня есть это определение функции:
def powellBadlyScaled(X):
f1 = 10**4 * X[0] * X[1] - 1
f2 = numpy.exp(-numpy.float(X[0])) + numpy.exp(-numpy.float(X[1])) - 1.0001
return f1 + f2
Эта функция оценивается огромное количество раз в процедуре оптимизации. Это часто вызывает исключение:
RuntimeWarning: overflow encountered in exp
Я понимаю, что операнд не может быть сохранен в выделенном пространстве для поплавка. Но как я могу преодолеть проблему?