2016-06-07 39 views
0

我挺東西方婦女網絡這個根,但我需要解決mathemathical問題,這包括尋找一個功能,即包括累積性密度函數(數)的根。 爲了簡單起見,我嘗試編寫類似程序,但是儘可能簡單的功能,但即使這樣也行不通。 有人會告訴我,我做錯了什麼?(蟒蛇)求解方程,包括概率分佈

from scipy.optimize import fsolve 
    import sympy as sy 
    import numpy as np 
    from scipy.stats import norm 
    y=sy.Symbol('y') 

    def cdf(x): 
    cdf_norm=norm.cdf(x,100,20) 
    return cdf_norm 

    result=fsolve(y**2-14*y+7-cdf(y)) 
    print(result) 

回答

2

問題似乎是fsolve要求第一個參數是函數。但是,通過它一個表達得到評價爲某個值,然而,表達具有變量名Y,它是未定義的,因此解釋將引發NameError。此外,它還需要一個參數,一個包含對根的估計的ndarray。所以,一個簡單的解決方案是定義另一個函數:

def f(y): 
    return y**2 - 14*y + 7 - cdf(y) 
result = fsolve(f, np.array([1,0]) 
print(result) 

我得到以下結果:

array([ 0.51925928, 0.51925928])