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.])
看来很正确。