Hej muszę zaprogramować następującą funkcję (zdjecie). Pozostale funkcje mam juz zaprogramowane (i sa na 100% dobrze) ale z ta jest problem bo zwraca ona niepoprawny wynik. Oto kod:
def Y(mu,sigma,lam,p, n_1, n_2, a ,T):
n=1
suma1=0
suma2=0
while n<=10:
k=1
suma_1=0
while k<=n:
suma_1=suma_1+P(n,k)*(sigma*np.sqrt(T)*n_1)**k*I(k-1,a-mu*T,-n_1, -1/(sigma*np.sqrt(T)), -sigma*n_1*np.sqrt(T))
k+=1
suma1=suma1+Pi(n)*suma_1
n+=1
n=1
while n<=10:
k=1
suma_2=0
while k<=n:
suma_2=suma_2+Q(n,k)*(sigma*np.sqrt(T)*n_2)**k*I(k-1,a-mu*T,n_2, 1/(sigma*np.sqrt(T)), -sigma*n_2*np.sqrt(T))
k+=1
suma2=suma2+Pi(n)*suma_2
n+=1
return np.exp((sigma*n_1)**2*T/2)/(sigma*np.sqrt(2*np.pi*T))*suma1+np.exp((sigma*n_2)**2*T/2)/(sigma*np.sqrt(2*np.pi*T))*suma2+Pi(0)*scs.norm.cdf(-(a-mu*T)/(sigma*np.sqrt(T)))
Moglby ktos zerknac czy czasem czegos nie pomieszalem? Bo wpatruje sie w to juz ktorys raz i nie moge znalezv bledu. Funkcja zwraca wynik nieoprawny wiec cos musi byc robione w zlej kolejnosci. UWAGA! na zdjeciu pierwsza suma jest do nieskonczonosci ale ja potrzebuje tylko do 10 stad taki kod.