curve_fit python函数调用不是正确的浮点数组
当我尝试在Python中运行curve_fit时,我收到下面代码的以下错误。“函数调用不是正确的浮点数组”。我读到这可能是由于没有输入数组造成的,所以我将我的列表转换为数组,但仍然得到相同的错误curve_fit python函数调用不是正确的浮点数组,python,Python,当我尝试在Python中运行curve_fit时,我收到下面代码的以下错误。“函数调用不是正确的浮点数组”。我读到这可能是由于没有输入数组造成的,所以我将我的列表转换为数组,但仍然得到相同的错误 #Calculate initial price def initial_price(stocks, V, T, M, N, K, r): dt = float(T)/M for i in range(M - 1, 0, -1): #Define x data xdat
#Calculate initial price
def initial_price(stocks, V, T, M, N, K, r):
dt = float(T)/M
for i in range(M - 1, 0, -1):
#Define x data
xdata = list()
for k in range(0, N):
xdata.append(stocks[k * M + (i - 1)])
#Convert list into array
xdata = np.asarray(xdata)
#Define y data
ydata = list()
for k in range(0, N):
ydata.append(exp(-r * dt) * V[k * M + i])
#Convert list into array
ydata = np.asarray(ydata)
#get optimal values
popt, pcov = curve_fit(cubic, xdata, ydata)
for k in range(0, N):
V[k * M + (i - 1)] = \
max(C_payoff(stocks[k * M + (i - 1)],
cubic(stocks[k * M + (i - 1)], popt[0],
popt[1], popt[2], popt[3])))
#Compute initial price as discounted weighted average
#over initial prices for all paths
sum = 0.0
for k in range(0, N):
sum = sum + V[k * M]
V0 = exp(-r * dt) * (1.0/N) * sum
return V0
#Define a cubic polynomial function
def cubic(x, a0, a1, a2, a3):
return a0 + a1*x + a2 * x ** 2 + a3 * x ** 3
请修复缩进并提供
cubic
功能您还需要从asarray
分配返回的对象:ydata=np.asarray(ydata)
。@xnx我按照您的建议编辑了它。@xnx,我已经完成了分配,但它仍然不起作用。下一步要做的是发布错误的完整回溯,并检查xdata
和ydata
进入曲线拟合
调用的形状。