问题标签 [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 回答
270 浏览

lmfit - 如何从 lmfit 模型中抽取样本?

我在 lmfit 中有一个适合我的数据的倾斜高斯模型。现在我想从中抽取一个样本,但我无法在文档中找到如何?在我的情况下,自己简单地实现模型函数的正确方法是偏态正态分布,还是 lmfit 中有一个函数可以解决这个问题?

我的代码:

0 投票
0 回答
454 浏览

python - Python 最小化器

我正在尝试在点云上拟合 3D 线。我正在使用 lmfit 的 minimzer。我将线点距离定义为np.linalg.norm(np.cross(p-v0,v1-v0))/np.linalg.norm(v1-v0)(来自http://www.qc 的方法 2。 edu.hk/math/Advanced%20Level/Point_to_line.htm)。问题是我不确定 minimer 做得好不好。我正在使用最小二乘法,对于较少的点数,拟合不正确。

事实上,np.linalg.norm(np.cross(p-v0,v1-v0))似乎做得更好。如果我理解正确,这将最小化平行四边形区域而不是点线距离。

问题:有没有比最小二乘法更好的算法来最小化距离?有比 lmfit 更好的库吗?为什么第二个方程会给出更好的结果,它只是除以一个标量?


使用 plotly 我可以看到拟合的质量:np.linalg.norm(np.cross(p-v0,v1-v0))/np.linalg.norm(v1-v0) vs np.linalg.norm(np.交叉(p-v0,v1-v0))

0 投票
1 回答
607 浏览

python - 使用 lmfit 在点云上拟合 3D 线时添加权重

我正在使用以下代码在 3D 点云上拟合 3D 线。我正在使用lmfit的最小二乘法来最小化。

我需要为不同的点添加权重,但在使用数组(而不是标量)距离输出时不知道该怎么做。使用标量时的问题是它不如使用数组时好。我假设是因为变量数量较多。

所以问题是 - 有没有办法将数组的每个元素的权重添加到最小化器?使用像 Nelder w/scaral 输入的东西不能很好地执行 3D 拟合。

0 投票
1 回答
114 浏览

python - 这个 numpy 错误是否归因于 Python 2.7 和 3.5 的差异?

以下代码来自http://cars9.uchicago.edu/software/python/lmfit/parameters.html上的示例。

我试图在 Canopy 中运行此代码。当为 Python 3.5 使用 Canopy 64 位时,它运行良好。我需要使用 Python 2.7 在 Canopy 32 中使用它。当我更改为使用其他编辑器时,它不再起作用。这是它给我的问题:

我很困惑,因为我唯一改变的是 Python 的版本和 Canopy 的版本。这可能是由 Python 2.7 和 Python 3.5 之间的差异引起的吗?

0 投票
2 回答
772 浏览

python - lmfit- 将拟合参数相互关联

我正在使用 python lmfit模块来拟合多个高斯。我想要的是通过数学表达式将一个参数与另一个参数结合起来,例如:

我想要的是绑定参数,例如。a1=a2/2。lmfit 包有办法解决这个问题吗?

0 投票
1 回答
2221 浏览

python - Scipy curve_fit 边界和条件

我正在尝试使用curve_fit来拟合一些数据。它工作得很好,我只想通过附加参数来改进拟合以匹配假设(例如机械效率不能大于 100% 等)

但我想另外指定参数之间关系的界限,例如。

确保配合具有水平屈折。有没有办法做到这一点? 在此处输入图像描述

编辑:我发现了这个,一旦我调查它可能会有所帮助:如何对 SciPy 曲线拟合施加约束?

如何按照建议使用 lmfit 来完成?

0 投票
1 回答
151 浏览

python - Python - 裁剪数据以适合配置文件

我有几组数据,我试图适应不同的配置文件。正如您在这张图片中看到的那样,在其中一个最小值的中心有污染,使我无法很好地适应:轮廓的配合

考虑到尖峰并不总是在同一个位置,我该如何剪掉数据底部的尖峰?或者你会如何处理这样的数据?我lmfit用来拟合轮廓,在这种情况下是洛伦兹和高斯。这是一个最小的工作示例,我使用初始值更接近地拟合数据:

0 投票
1 回答
491 浏览

python - 多个数据集的 lmfit 和最小化函数

我对用于同时描述具有一些常见参数的一组数据的脚本有疑问。该程序相当长且复杂,为了简单起见,我在这里报告基本部分。本文末尾提供了完整的脚本和一组数据。

第一步,我导入要拟合的数据。qexp 是我的自变量的值,RRexp 是我要建模的实验数据。RRerr 是他们的不确定性,qres 是我的自变量中的不确定性(此处未使用)。

我定义了计算理论曲线所需的所有参数(我只展示了其中的一些):

此函数将残差返回给由最小化调用的 f2min_inc 函数。data1 和 data2 由 calcRR 函数计算,使用数据数组中包含的 x 值 (qexp)、SLDx 数组和 GFP[] 中包含的一些参数。计算值存储在 data[:][:,4] 中。

这是一个中间函数(可能会被跳过),由最小化函数调用,返回残差。在第一行中,根据 fit_parameters 计算了四个数组 Phi_s1、Phi_s2、SLD1 和 SLD2。需要这些数组来计算理论曲线,这在 Resid_inc 函数中完成。

这里我调用 lmfit 最小化函数。out = 最小化(f2min_inc,fit_params,iter_cb=printout,方法='leastsq')

虽然我没有在minimize中定义args,但是软件运行流畅,没有出现任何错误信息,拟合过程运行了一段时间然后结束。但是,参数的变化很小,并且返回时没有标准偏差。该报告如下所示:

如您所见,参数略有变化,但变化不大。我认为这可能会导致模型的复杂性。但是,即使我尝试最小化一个参数,问题仍然存在。同样通过改变最小化算法对输出没有影响,输出总是非常接近猜测的参数。我也确信,我不是最低限度的,因为我可以通过改变初始参数得到更好的猜测。

我担心问题在于我是如何编写脚本的,即使我无法确定任何明显的问题(但我的编程技能非常有限)。

带有一组数据的完整脚本可以在这里下载: https ://tubcloud.tu-berlin.de/s/4oUzu6d5Mvwczle

提前感谢您的评论。

0 投票
1 回答
1636 浏览

python - 使用 LMFIT 将多峰函数拟合到数据集

我正在尝试使用 LMFIT 库进行多洛伦兹拟合,但它不起作用,我什至明白我所做的语法完全错误,但我没有任何新想法。

我的问题是:我的光谱很长,有多组峰,但这些组中的峰数不是恒定的,所以有时我只有 1 个峰,但有时我可能有 8 个甚至 20 个。

我已经开始尝试制作一个返回多洛伦兹函数的通用函数,但我正在努力解决如何使其工作......

我也在发送 x, y 数组的数据。

x 和 y 的数据集

这就是 x 和 y 的 DataSet 的样子。

0 投票
1 回答
1410 浏览

python - 我该如何解决这个''名称未定义''

我是python的新手我有这个代码我想使用子类lmfit.models并实现一个猜测方法,

我收到以下错误我收到 的错误我收到的错误图像在此地址中