我试图求解一个三次方程并适合我的实验数据集。但是我的代码中存在一些关于curve_fit
. 尽管功能f
和del_y
定义都完美(使用参数值检查),但curve_fit无法正常工作并向我显示错误:
ValueError:使用序列设置数组元素。
有人可以帮我解决这个问题吗?
import numpy as np
from scipy.optimize import curve_fit
def f(G0,H0,k1,k2):
a=(k1+2*k1*k2*H0-k1*k2*G0)/(k1*k2)
b=(1+k1*H0-k1*G0)/(k1*k2)
c=-G0/(k1*k2)
cf=[1,a,b,c]
k=np.roots(cf)
return abs(k[2])
def del_y(G0,H0,A,k1,k2,n):
return A*(0.04*k1*f(G0,H0,k1,k2)**n)
popt, pcov = curve_fit(del_y,x_data,y_data)