Podwójne sumowanie

0

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.

0

Jeżeli Wiesz, to mógłbyś opisać tę funkcję dokładniej? Rozbij ją na dwie, może więcej, będzie łatwiej czytać i debugować. Skąd ta pewność, że dziesięć iteracji wystarczy. Debugowałeś w ogóle?

1 użytkowników online, w tym zalogowanych: 0, gości: 1