问题标签 [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.
python - Python 和 lmfit:如何使用共享参数拟合多个数据集?
我想使用lmfit模块将函数拟合到可变数量的数据集,其中包含一些共享参数和一些单独参数。
这是一个生成高斯数据并分别拟合每个数据集的示例:
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 在为它提供雅可比函数时不能正常工作,但我建议谨慎对待这种情况。到目前为止,我还没有时间深入研究造成这种情况的原因。
python - lmfit -py 使用数组进行参数优化
情况:
我正在尝试根据合理建立的方程式优化天然小溪的参数,其中气体以一定的速率脱气或加气。我们在下游特定距离处测量了浓度,并希望使用优化技术来确定模型中某些未知参数的值。
我正在尝试使用 lmfit lmfit-py (github)使用下面粘贴的代码优化参数。
我希望允许一些未知参数对于流中的每个不同采样点具有不同的值(这反映了实际情况)。在脚本中,这些被称为“本地参数”。因此,这些参数的结果应该是流中每个位置的列表。
其他参数应优化为沿流的所有位置具有相同的值,称为“全局参数”。因此,这些参数的优化结果应该是单个值。
我正在使用 Python 3.2。
问题:
- 目前我只得到所有参数的单值结果。
- 可以
lmfit
用来产生优化的数组吗? - 我真的认为我没有正确设置脚本,可能没有正确调用边界和初始猜测或其他什么???
我正在使用的脚本:
我正在使用的数据:
多谢!
相关背景资料: http:
//lmfit.github.io/lmfit-py/
https://pypi.python.org/pypi/lmfit/
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) 等等。请任何人帮助我解决此问题或提出任何建议,在此先感谢您。
python - 使用 Python 和 lmfit 拟合复杂模型?
我想使用 LMFit将椭偏数据拟合到复杂模型中。两个测量参数psi
和delta
是复函数 中的变量rho
。
我可以尝试使用共享参数或分段方法将问题分离为实部和虚部,但是有没有办法直接使用复杂函数来解决问题?仅拟合函数的实部可以很好地工作,但是当我定义复杂的残差函数时,我得到:
TypeError:没有为复数定义排序关系。
下面是我的真实函数拟合代码和我解决复杂拟合问题的尝试:
编辑: 我解决了虚部和实部分离变量的问题。数据的形状应为 [[imaginary_data],[real_data]],目标函数必须返回一维数组。
python - 在python中通过lmfit模型最小化拟合两个洛伦兹
也许有人可以帮助我。我花了几天的时间,但我无法解决这个问题。提前致谢。
我想将 2 个洛伦兹拟合到我的实验数据中。我将我的方程分解为两个洛伦兹lorentz1
和lorentz2
函数的简单形式。然后我定义了另外两个函数L1
,并且L2
只将一个常数乘以cnst
它们。我要适应所有 4 个参数:cnst1
, cnst2
, tau1
, tau2
.
我使用lmfit
:建模和最小化(可能都使用相同的方法)。
初始拟合参数以视觉上更接近精细拟合的方式设置。但是使用 lmfit 最小化会丢失(下面的第一张图片):
使用这些参数:
但错误百分比很低:
另一方面,将参数包含在非常接近初始值(强制类似于初始值):
使用参数:
fit 在视觉上更好,但误差值很大:
这是总代码:
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 函数:
python - 导入 lmfit 成功但从 lmfit 导入模型不
我已经通过 PIP 安装了 lmfit
在 ipython notebook 中导入 lmfit 似乎可行。也就是说,导入不会给出任何错误消息,我可以从 lmfit 调用一堆函数。
但是,当我尝试从 lmfit 导入模型时,它给了我一个导入错误:
导入错误。
我认为这与安装失败有关,但不知道如何进一步诊断和/或如何修复它。有人有建议吗?
python - lmfit:超出最大递归深度
我正在使用 lmfit 将“复杂”模型拟合到实验数据中。
我这样定义模型的参数:
我使用 spinBoxes 来获取将用作初始值的值(我的程序是 GUI)。
我对 A1、A2、A3 和 A4 有疑问。它们是依赖的,它们的总和必须等于 1。
如果我评论
参数在 0 和 1 之间变化(我在定义参数时定义了这个范围),但它们的总和永远不会等于 1。
当这些行没有被注释时,我有以下异常:
我真的不知道这意味着什么。我试图增加最大递归深度,但没有任何改变。
您对问题所在有任何想法吗?
python - 使用lmfit python进行曲线拟合
我是 python 新手,正在尝试使用 lmfit 拟合数据。我在这里关注 lmfit 教程:http://lmfit.github.io/lmfit-py/parameters.html 这 是我的代码(基于上面链接中解释的代码):
问题:它返回 line return model-y 的语法错误
如果你能让我朝着正确的方向前进,我将不胜感激。