用Scipy库中least_squares函数求解变量有界的非线性最小二乘问题

本文介绍了如何利用Scipy库中的least_squares函数解决有界非线性最小二乘问题。通过设置bounds参数限制函数的自变量范围,可以对数据进行更精确的拟合。示例中展示了定义拟合函数、残差函数的过程,以及如何调用least_squares进行拟合,并解释了关键参数的含义。最后,展示了拟合结果和图形,以验证拟合效果。
摘要由CSDN通过智能技术生成
最近接触到了 Scipy 中 optimize 模块的一些函数,optimize 模块中提供了很多数值优化算法,其中,最小二乘法可以说是最经典的数值优化技术了, 通过最小化误差的平方来寻找最符合数据的曲线。但是由于我这边的需求是一个有界函数的拟合,所以网上资料介绍比较多的 leastsq 函数就不太适用。

简介

首先来看一下least_squares入参:

def least_squares(
        fun, x0, jac='2-point', bounds=(-np.inf, np.inf), method='trf',
        ftol=1e-8, xtol=1e-8, gtol=1e-8, x_scale=1.0, loss='linear',
        f_scale=1.0, diff_step=None, tr_solver=None, tr_options={},
        jac_sparsity=None, max_nfev=None, verbose=0, args=(), kwargs={}):

入参相当的多,一般来说,使用least_squares函数只需要关注以下四个参数:

  • func残差 函数,即真实数据的y值与拟合得到的y值的差值
  • x0:表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值