【发布时间】:2019-02-23 17:02:28
【问题描述】:
我几乎是 Python 新手,我正在尝试使用 lmfit 拟合大学的数据。 Y 变量的变量误差为 3%。如何将该错误添加到拟合过程中?我正在改变 scipy 的曲线拟合,而在 scipy 中这样做真的很容易,只需创建一个包含错误值的数组并在拟合时通过添加文本“sigma = [yourarray]”来指定错误 这是我当前的代码:
from lmfit import Minimizer, Parameters, report_fit
import matplotlib.pyplot as plt
w1, V1, phi1, scal1 = np.loadtxt("./FiltroPasaBajo_1.txt", delimiter = "\t", unpack = True)
t = w1
eV= V1*0.03 + 0.01
def funcion(parametros, x, y):
R = parametros['R'].value
C = parametros['C'].value
modelo = 4/((1+(x**2)*(R**2)*(C**2))**1/2)
return modelo - y
parametros = Parameters()
parametros.add('R', value = 1000, min= 900, max = 1100)
parametros.add('C', value = 1E-6, min = 1E-7, max = 1E-5)
fit = Minimizer(funcion, parametros, fcn_args=(t,V1))
resultado = fit.minimize()
final = V1 + resultado.residual
report_fit(resultado)
try:
plt.plot(t, V1, 'k+')
plt.plot(t, final, 'r')
plt.show()
except ImportError:
pass
V1 是我测量的值,eV 是错误数组。 t 是 x 坐标。 感谢您的宝贵时间
【问题讨论】:
标签: python numpy curve-fitting data-fitting lmfit