Определите значение, которое минимизирует функцию с помощью итераций

В настоящее время у меня есть следующий код:

call = []
diff = []
def results(S0, K, T, r, sigma, k, N, M, Iteration):
    for i in range(1, Iteration):
       S0 = float(S0)
       d1 = (log(S0 / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * sqrt(T))
       d2 = (log(S0 / K) + (r - 0.5 * sigma ** 2) * T) / (sigma * sqrt(T))
       call1 = (S0 * stats.norm.cdf(d1, 0.0, 1.0) - K * exp(-r * T) * stats.norm.cdf(d2, 0.0, 1.0))
       call.append(call1) 
       dilution = N/(N +k*M)
       Value_2 = Value_1 + call*M
       diff1 = Value_1 - Value_2 == 0
       diff.append(diff1)
    return call    

print(results(100,100,1,0.1,0.2,1,100,10, 1000))

Я пытаюсь сделать итерации так, чтобы программа находила значение "call", которое дает минимальное значение "Value_1 - Value_2) на основе количества итераций. Не могли бы вы посоветовать мне, как усовершенствовать код? В частности, я не знать, как кодировать - "верните мне выходные данные" вызова ", так что"Value_1 - Value_2"является минимальным, который основан на количестве итераций"

0 ответов

Другие вопросы по тегам