我试着把这个x数据:[0.4,0.165,0.165,0.585,0.585],这个y数据:[.45,.22,.63,.22,.63],这个z数据:[1,0.99,0.98,0.97,0.96]拟合成抛物面。我正在使用scipy的曲线拟合工具。这是我的代码:doex = [0.4,0.165,0.165,0.585,0.585]
doey = [.45, .22, .63, .22, .63]
doez = np.array([1, .99, .98,.97,.96])
def paraBolEqn(data,a,b,c,d):
if b < .16 or b > .58 or c < .22 or c >.63:
return 1e6
else:
return ((data[0,:]-b)**2/(a**2)+(data[1,:]-c)**2/(a**2))
data = np.vstack((doex,doey))
zdata = doez
opt.curve_fit(paraBolEqn,data,zdata)
我试着把抛物面放在0.16到.58(x轴)和.22到.63(y轴)之间。如果b或c在这个范围之外,我会返回一个很大的值。在
不幸的是,fit是wayyy off,我的popt值都是1,我的pcov是inf
任何帮助都会很好。在
谢谢你