python拟合曲线误差分析_python曲线拟合不能给出合理的拟合结果

在使用Python进行曲线拟合时,错误地调用`curve_fit`可能导致不合理的拟合结果。正确使用方法是提供函数、自变量数据、依赖变量数据以及初始参数猜测。如果没有正确设置`p0`,拟合可能不会执行。建议从数据中估计参数并创建合适的`p0`对象,以提高拟合质量。
摘要由CSDN通过智能技术生成

您错误地调用了curve_fit,下面是用法curve_fit(f, xdata, ydata, p0=None, sigma=None, absolute_sigma=False, check_finite=True, **kw)f是您的函数,它的第一个参数是一组自变量,其后续参数是函数参数(如振幅、中心等)

扩展数据是自变量

ydata是依赖变量

p0是对函数参数的初始猜测(对于Guassian,这是振幅、宽度和中心)

默认情况下,p0被设置为一个1的列表[1,1,…],这可能就是为什么您得到的结果是,fit永远不会执行,因为您调用不正确。在

尝试从数据中估计振幅、中心和宽度,然后制作一个p0对象(详见下文)

^{pr2}$

下面是一个简短的例子xdata = np.linspace(0, 4, 50)

mygauss = ( 10,2,0.5) #( amp, center, width)

y = func(xdata, *mygauss ) # using your func defined above

ydata = y + 2*(np.random.random(50)- 0.5) # add some noise to create fake data

现在我能猜出合适的参数了ai = np.max( ydata) # guess the amplitude

xi = xdata[ np.argmax( ydata)] # guess the position of center

猜测宽度是很棘手的,我首先会找到半最大值的位置(有两个,但您只需要找到一个,因为高斯是对称的):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值