2016-03-19 84 views
-1

我正試圖編寫代碼,在這個方程中找到n。使用python查找方程的零點

function

,其餘爲用戶定義的變量。

from scipy.optimize import fsolve 
from scipy.stats import t 

def f(alpha, beta, sigma, delta, eps): 
    n = ((t.ppf(1-alpha,2*n-2) + t.ppf((1-beta)/2,2*n-2))**2*sigma**2)/(2*  (delta-abs(eps))**2) 

我還希望能夠建立的參數不同的場景,然後把它輸出的參數和結果的表(例如,輸入α1,α2,β1,β2等,並獲得out [alpha1,beta1,...,n],[alpha1,beta2,...,n])。我不太確定如果有人能夠正確指出我的方向,那麼最好的方法是什麼。

回答

0

通過您的方程的外觀,您試圖找到滿足統計測試方程的觀測值數目(n)。如果是這種情況,那麼n是自然數(0,1,2等),並且很容易迭代。

你可以建立一個求解自己,在那裏你有n個作爲迭代與結果的公式爲你的方程的「結果」:

for n in range(0, 1000): 
    result = your_function(n, other_parameters) 

然後你只需要檢查方程通過設置滿足:

if n >= result: 
     print "result:", n 
     break # This will exit the loop 

什麼來測試不同的用戶給出的參數,你可以設置另一個循環迭代alpha,beta等不同的值。