通过数据插值与阵列值进行python fsolve



i从数据集创建插值。然后,我想找到与插值相对应的值。我可以得到一个值问题,而不能得到多个值问题,例如数组或矩阵。它只给我第一个值(8),而不是所有(8、4和2)

#Find time becoming 80% of CA0
import numpy as np
t = np.array([0,20,40,60,120,180,300])
CA = np.array([10,8,6,5,3,2,1])
#data to interpoldation function
from scipy.interpolate import interpld
g = interpld(t, CA)
#plotting function
import matplotlib.pyplot as plt
data=g(t)
plt.plot(t, data, 'b-')
plt.show()
#this only give me an ans for the first value, 8, not for other 4 and 2?
yvalue=np.array([8,4,2])
def func(x):
    return yvalue-g(x)
initial_guess = 2
ans, = fsolve(func, initial_guess)
print(ans)

那么,它只给我一个仅对第一值的答案,而不是全部。有人吗?

问题是您仅提供标量2来进行初始猜测。当我将初始猜测设置为一个值数组时,fsolve可以按预期工作。特别是当我设置

initial_guess = 2 * np.ones(3)

然后我得到的ans

np.array([  20.   90.  180.])

看来很正确。

最新更新