基于lmfit-python的曲线拟合
我是python新手,尝试使用lmfit拟合数据。以下是lmfit教程: 这是我的代码(基于上面链接中解释的代码): 问题: 它为行返回model-y返回语法错误基于lmfit-python的曲线拟合,python,model,scipy,curve-fitting,lmfit,Python,Model,Scipy,Curve Fitting,Lmfit,我是python新手,尝试使用lmfit拟合数据。以下是lmfit教程: 这是我的代码(基于上面链接中解释的代码): 问题: 它为行返回model-y返回语法错误 如果您能告诉我正确的方向,我将不胜感激。您忘记了前一行中的右括号“)”(结果=…)。开始括号和结束括号不平衡,导致语法错误。我认为前一行中的括号有问题。这将导致返回值包含在公式中。我想结尾少了一个) import numpy as np import lmfit import matplotlib.pyplot as plt fro
如果您能告诉我正确的方向,我将不胜感激。您忘记了前一行中的右括号“)”(结果=…)。开始括号和结束括号不平衡,导致语法错误。我认为前一行中的括号有问题。这将导致返回值包含在公式中。我想结尾少了一个)
import numpy as np
import lmfit
import matplotlib.pyplot as plt
from numpy import exp, sqrt, pi
from lmfit import minimize,Parameters,Parameter,report_fit
data=np.genfromtxt('test.txt',delimiter=',')
x=data[:,][:,0]
y=data[:,][:,1]
def fcn2fit(params,x,y):
"""model decaying sine wave, subtract data"""
S1=params['S1'].value
t0=params['t0'].value
T1=params['T1'].value
S2=params['S2'].value
T2=params['T2'].value
model = 1-(1-S1)*exp(-(x-t0)/T1)+S2*(1-exp(-(x-t0)/T2)
return model - y
params = Parameters()
params.add('S1', value=0.85, min=0.8, max=0.9)
params.add('t0', value=0.05, min=0.01, max=0.1)
params.add('T1', value=0.2, min=0.1, max=0.3)
params.add('S2', value=0.03, min=0.01, max=0.05)
params.add('T2', value=0.3, min=0.2, max=0.4)
result = minimize(fcn2fit, params, args=(x,y))
final = y + result.residual
report_fit (params)
try:
import pylab
pylab.plot(x,y, 'k+')
pylab.plot(x,final, 'r')
pylab.show()
except:
pass