2016-03-19 86 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等不同的值。