Определите значение, которое минимизирует функцию с помощью итераций
В настоящее время у меня есть следующий код:
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"является минимальным, который основан на количестве итераций"