我一直在尝试通过最小化卡方来将线性模型拟合到一组应力/应变数据。不幸的是,使用下面的代码并不能正确地最小化该chisqfunc函数。它正在寻找初始条件下的最小值 ,x0这是不正确的。我已经查看了scipy.optimize文档并测试了最小化其他工作正常的功能。您能否建议如何修复下面的代码,或者建议我可以使用另一种方法通过最小化卡方来将线性模型拟合到数据?
import numpy
import scipy.optimize as opt
filename = 'data.csv'
data = numpy.loadtxt(open(filename,"r"),delimiter=",")
stress = data[:,0]
strain = data[:,1]
err_stress = data[:,2]
def chisqfunc((a, b)):
model = a + b*strain
chisq = numpy.sum(((stress - model)/err_stress)**2)
return chisq
x0 = numpy.array([0,0])
result = opt.minimize(chisqfunc, x0)
print result
Run Code Online (Sandbox Code Playgroud)
感谢您阅读我的问题,任何帮助将不胜感激。
干杯,威尔
编辑:我当前使用的数据集:链接到数据