Я хотел бы минимизировать следующую функцию (16)
Обратите внимание, что функция фи определяется следующим образом:
Моя проблема
Затем я пытаюсь использовать
from scipy.optimize import minimize
для минимизации функции (16). Однако (16) имеет бесконечную сумму из (15). Как я могу реализовать это в Python? Может ли функция оптимизации минимизировать бесконечную сумму? Прямо сейчас я только что определил формулу, установил бесконечную сумму на сумму только до n = 10.
def formula(x):
return -sum(math.log(sum(1/math.sqrt(
2*math.pi*(x[1]**2/252+n*x[4]**2))*math.exp(
-(y-(x[0]/252+n*x[3]))**2/(2*(x[1]**2/252
+n*x[4]**2)))*math.exp(
-x[2]/252)*(x[2]/252)**n/math.factorial(n)
for n in range(1,10))) for y in difference)
guess = np.array([0.1,0.1,0.1,0.1,1])
results = minimize(formula, guess, method = 'Nelder-Mead', options={'ftol':0.01, 'xtol':0.01})