Python 数组numpy中的二分法
我有一个等式,其中未知值是h,TR是一个数组(2D) 我想用对分法解下面的方程,结果得到一个新的数组(2D),它将代表我的h Tpow,k,t-常数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 = 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()
中,其余部分重复上述操作请阅读并确认。你有太多无关的代码,对你的期望和现实的解释太少。我担心这不起作用-结果我只得到一个值。如果没有一个值,我帮不了你更多。好吧,我阅读了最小的、完整的、可验证的示例,简化了我的代码,让问题更清楚