Python 数组numpy中的二分法

Python 数组numpy中的二分法,python,arrays,numpy,bisection,Python,Arrays,Numpy,Bisection,我有一个等式,其中未知值是h,TR是一个数组(2D) 我想用对分法解下面的方程,结果得到一个新的数组(2D),它将代表我的h Tpow,k,t-常数 h = np.empty_like(TR) def f(h): return (-TR+(Tpow-T1)*(1-exp((h**2*alfa*t)/k**2)*(1.0-erf(h*sqrt(alfa*t)/k)))) for i in range(len(TR)): for j in range(len(TR[0])):

我有一个等式,其中未知值是h,TR是一个数组(2D)

我想用对分法解下面的方程,结果得到一个新的数组(2D),它将代表我的h

Tpow,k,t-常数

h = np.empty_like(TR)
def f(h):
     return (-TR+(Tpow-T1)*(1-exp((h**2*alfa*t)/k**2)*(1.0-erf(h*sqrt(alfa*t)/k))))


for i in range(len(TR)):
    for j in range(len(TR[0])):    
        h[i][j] = scipy.optimize.bisect(f,0,600)
np.any()
接受布尔数组并返回单个布尔值

传递一个浮点数组,然后对单个布尔输出进行比较。这几乎肯定不是你想要的。因此,与此相反:

if np.any(f(a)*f(b))>0:
这样做:

if np.any(f(a) * f(b) > 0):

i、 例如,将您的比较放在
np.any
np.all()
中,其余部分重复上述操作

请阅读并确认。你有太多无关的代码,对你的期望和现实的解释太少。我担心这不起作用-结果我只得到一个值。如果没有一个值,我帮不了你更多。好吧,我阅读了最小的、完整的、可验证的示例,简化了我的代码,让问题更清楚