问题标签 [lmfit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
15520 浏览

python - Python 和 lmfit:如何使用共享参数拟合多个数据集?

我想使用lmfit模块将函数拟合到可变数量的数据集,其中包含一些共享参数和一些单独参数。

这是一个生成高斯数据并分别拟合每个数据集的示例:

0 投票
1 回答
1510 浏览

python - 通过雅可比矩阵进行 lmfit 最小二乘法

我正在使用 lmfit python 包进行非线性优化(网址:http ://lmfit.github.io/lmfit-py/ )。我想知道在使用最小二乘拟合方法时是否可以通过雅可比函数?如果是,是否可以为我提供一个最小的例子?

谢谢!卡布瑞普

PS:代码如下:

PPS:我在 github 上找到了这个有价值的示例:https ://github.com/lmfit/lmfit-py/blob/master/examples/example_derivfunc.py

注意:在设法将 Jacobian 函数传递给 lmft.leastsq 之后,我意识到,在我的测试用例中,由 lmfit 返回的优化解决方案不再收敛到真正的解决方案。但是,当使用实际的 scipy.optimize.leastq 函数(由 lmfit 调用)时,一切正常,即返回的解决方案收敛,也包括适合的雅可比行列式。我并不是说 lmfit.leastsq 在为它提供雅可比函数时不能正常工作,但我建议谨慎对待这种情况。到目前为止,我还没有时间深入研究造成这种情况的原因。

0 投票
1 回答
1081 浏览

python - lmfit -py 使用数组进行参数优化

情况:
我正在尝试根据合理建立的方程式优化天然小溪的参数,其中气体以一定的速率脱气或加气。我们在下游特定距离处测量了浓度,并希望使用优化技术来确定模型中某些未知参数的值。

我正在尝试使用 lmfit lmfit-py (github)使用下面粘贴的代码优化参数。

  • 我希望允许一些未知参数对于流中的每个不同采样点具有不同的值(这反映了实际情况)。在脚本中,这些被称为“本地参数”。因此,这些参数的结果应该是流中每个位置的列表。

  • 其他参数应优化为沿流的所有位置具有相同的值,称为“全局参数”。因此,这些参数的优化结果应该是单个值。

我正在使用 Python 3.2。

问题:

  1. 目前我只得到所有参数的单值结果。
  2. 可以lmfit用来产生优化的数组吗?
  3. 我真的认为我没有正确设置脚本,可能没有正确调用边界和初始猜测或其他什么???

我正在使用的脚本:

我正在使用的数据:

多谢!

相关背景资料: http:
//lmfit.github.io/lmfit-py/

https://pypi.python.org/pypi/lmfit/

https://github.com/lmfit/lmfit-py

http://cars9.uchicago.edu/software/python/lmfit/

0 投票
1 回答
1168 浏览

python - 在 python 中使用 lmfit 将数据拟合到 2D 函数

我希望用 2D 函数拟合数据,以便使用 lmfit 包提取参数 (a) 和 (b)。基本上作为一维函数拟合,我试图将每个数据点拟合到相同坐标(x,y)的二维函数。这意味着每个数据点都有其与另一个数据点不同的初始猜测值,因为每个数据都有不同的坐标(x,y)。这是我的代码:

但是,我收到此错误消息:

很明显,x和y的维度和data不一样,但是我不知道怎么让data[0]取(x1,y1),data[1]取(x1,y2)...,data[ 5] 取 (x2,y1) 等等。请任何人帮助我解决此问题或提出任何建议,在此先感谢您。

0 投票
1 回答
5036 浏览

python - 使用 Python 和 lmfit 拟合复杂模型?

我想使用 LMFit将椭偏数据拟合到复杂模型中。两个测量参数psidelta是复函数 中的变量rho

我可以尝试使用共享参数分段方法将问题分离为实部和虚部,但是有没有办法直接使用复杂函数来解决问题?仅拟合函数的实部可以很好地工作,但是当我定义复杂的残差函数时,我得到:

TypeError:没有为复数定义排序关系。

下面是我的真实函数拟合代码和我解决复杂拟合问题的尝试:

编辑: 我解决了虚部和实部分离变量的问题。数据的形状应为 [[imaginary_data],[real_data]],目标函数必须返回一维数组。

0 投票
1 回答
1368 浏览

python - 在python中通过lmfit模型最小化拟合两个洛伦兹

也许有人可以帮助我。我花了几天的时间,但我无法解决这个问题。提前致谢。

我想将 2 个洛伦兹拟合到我的实验数据中。我将我的方程分解为两个洛伦兹lorentz1lorentz2函数的简单形式。然后我定义了另外两个函数L1,并且L2只将一个常数乘以cnst它们。我要适应所有 4 个参数:cnst1, cnst2, tau1, tau2.

我使用lmfit:建模和最小化(可能都使用相同的方法)。

初始拟合参数以视觉上更接近精细拟合的方式设置。但是使用 lmfit 最小化会丢失(下面的第一张图片):


无约束参数

使用这些参数:

但错误百分比很低:


另一方面,将参数包含在非常接近初始值(强制类似于初始值):

在此处输入图像描述

使用参数:

fit 在视觉上更好,但误差值很大:

这是总代码:

0 投票
2 回答
4814 浏览

python - Python lmfit:拟合二维模型

我正在尝试将 2D-Gaussian 拟合到由一个 2D 数组给出的一些灰度图像数据。lmfit 库实现了一个易于使用的模型类,它应该能够做到这一点。不幸的是,文档(http://lmfit.github.io/lmfit-py/model.html)只提供了一维拟合的示例。就我而言,我只是用 2 个自变量构建 lmfit 模型。

以下代码对我来说似乎有效,但会导致 scipy 抛出“minpack.error:函数调用的结果不是正确的浮点数组”。

Tom 总结一下:如何将 2D (x1,x2)->(y) 数据输入到 lmfit 的模型中?

这是我的方法:一切都打包在一个 GaussianFit2D 类中,但这里是重要的部分:这就是高斯函数。该文档说明了用户定义的功能

当然,模型函数必须返回一个与被建模数据大小相同的数组。通常,这也通过指定一个或多个自变量来处理。

我真的不明白这应该是什么意思,因为对于给定的值 x1,x2,唯一合理的结果是标量值。

这里生成模型:

这是获取数据、构建模型和参数并调用 lmfit fit() 的函数:

Anf 终于在这里调用了这个 fit 函数:

0 投票
1 回答
1020 浏览

python - 导入 lmfit 成功但从 lmfit 导入模型不

我已经通过 PIP 安装了 lmfit

在 ipython notebook 中导入 lmfit 似乎可行。也就是说,导入不会给出任何错误消息,我可以从 lmfit 调用一堆函数。

但是,当我尝试从 lmfit 导入模型时,它给了我一个导入错误:

导入错误。

我认为这与安装失败有关,但不知道如何进一步诊断和/或如何修复它。有人有建议吗?

0 投票
1 回答
341 浏览

python - lmfit:超出最大递归深度

我正在使用 lmfit 将“复杂”模型拟合到实验数据中。

我这样定义模型的参数:

我使用 spinBoxes 来获取将用作初始值的值(我的程序是 GUI)。

我对 A1、A2、A3 和 A4 有疑问。它们是依赖的,它们的总和必须等于 1。

如果我评论

参数在 0 和 1 之间变化(我在定义参数时定义了这个范围),但它们的总和永远不会等于 1。

当这些行没有被注释时,我有以下异常:

我真的不知道这意味着什么。我试图增加最大递归深度,但没有任何改变。

您对问题所在有任何想法吗?

0 投票
2 回答
2987 浏览

python - 使用lmfit python进行曲线拟合

我是 python 新手,正在尝试使用 lmfit 拟合数据。我在这里关注 lmfit 教程:http://lmfit.github.io/lmfit-py/parameters.html 是我的代码(基于上面链接中解释的代码):

问题:它返回 line return model-y 的语法错误

如果你能让我朝着正确的方向前进,我将不胜感激。