Я определил функцию, в которой вывод производится с помощью симуляции Монте-Карло.Когда я делаю вызов y(p,m,n,d)
, вывод всегда остается одинаковым "n" -> y = n
Что я делаю не так?
k = [0, 100]
for i in k:
p = np.random.normal(40,3,i)
m = np.random.normal(35,1,i)
n = np.random.normal(50,4,i)
d = np.random.normal(27,2.5,i)
def fct(p,m,n,d):
global u1
global u2
if np.any( n > 0):
return n
u1, u2 = np.asarray[np.log(0.6*n)], np.asarray[(math.e**d)**0.5]
if np.any(u1 != 0):
return u1
if np.any(u2 != 0):
return u2
if np.any( p > 0):
return p
G = np.log(p**2) + np.asarray(6*[math.e**(-m)]/u1) + 3/u2
return G
y = fct(p,m,n,d)