我需要对一组数据进行拟合,但是curve_fit的返回值为
[nan nan nan nan nan nan]
[[inf inf inf inf inf inf]
[inf inf inf inf inf inf]
[inf inf inf inf inf inf]
[inf inf inf inf inf inf]
[inf inf inf inf inf inf]
[inf inf inf inf inf inf]]
我的数据情况:
我使用的代码:
# 定义拟合函数
def myfun(X, k1, a1, b1, c1, c2, c3):
f, Bm, T = X[0], X[1], X[2]#f为频率 Bm为磁通密度 T为温度
F = k1 * f**a1 * Bm**b1 * (c1 + c2 * T**1 + c3 * T**2)
return F
X1 = np.array(X_data.iloc[:, 0:1])
X1 = X1.flatten()
X2 = np.array(X_data.iloc[:, 1:2])
X2 = X2.flatten()
X3 = np.array(X_data.iloc[:, 2:3])
X3 = X3.flatten()
new_Y_data = np.array(Y_data)
p0 = [0.000001, 1, 1, 1, 1, 1] # 初始参数值
print(X1,X2,X3)
# 拟合
parmer, covp = op.curve_fit(myfun, (X1,X2,X3) ,np.log(new_Y_data), p0)
print(parmer)
print(covp)
相似问题