问题标签 [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 投票
1 回答
507 浏览

python - lmfit,result.plot_fit(ax) 没有在 pyqt 中绘制所有 3 个图

我有一个 pyqt5 小部件

当我尝试使用 result.plot_fit(ax=ax) 使用拟合时,它只绘制绘图拟合的数据列。不是 init_fit 或 best_fit。

如果我不使用 (ax=ax) 而只使用 plot_fit(),那么 plt.show() 它会很好地绘制所有三个轴,但会打开一个新窗口。我希望情节显示在程序内的小部件中。

带有 ax=ax 的内部小 带有 plot_fit(ax=ax) 的内部小部件 部件 带有刚好合适的外部小部件 带有 plot_fit() 的外部小部件; plt.show()

0 投票
1 回答
1610 浏览

python - 在 lmfit 中访问 params 属性

我正在尝试使用文档网站中的 lmfit 来完成一个示例:

当我执行最后一个命令时,出现以下错误:

似乎 params 不是 Model 的属性。有人可以解释为什么这段代码不起作用吗?我在多台计算机和 Python 版本上试过这个。在 Python 2.7.9 32 位、Windows 7 上运行。

0 投票
1 回答
200 浏览

python - 通过 LMFIT 中的函数分配参数提示

我想为字典中保存的模型设置参数提示。我创建了一个用于设置提示的函数。首先,创建一个主模型,然后我想创建不同的模型,与主模型相同,但前缀不同。set_hints 函数接受一个参数 comp,它定义了将设置的提示。这是我的代码的简化部分:

输出:

这对我来说没有任何意义!在这两种情况下,值和变化提示应分别为 0 和 False。就像在循环的第二次迭代中,set_hints 函数的条件 comp == "2" 对于循环的第一次迭代不满足,并且提示被追溯更改!如果我取消注释注释行并且不迭代设置提示,结果很好。但是现在发生的事情我觉得完全荒谬。请帮助我了解发生了什么!

0 投票
1 回答
433 浏览

lmfit - 如何在每次迭代而不是每次函数评估时调用 iter_cb?

lmfit 中的最小化函数允许使用关键字 iter_cb 指定每次迭代调用的函数。这个函数被称为每个函数评估(所以不是最小二乘过程中的每次迭代)。我想要做的是在参数更新后每次迭代最小二乘过程调用一个函数。例如,使用 3 个参数,对残差进行 4 次评估以获得 3 个导数(4 个函数评估)。更新参数后,我需要在下一次迭代之前调用一个函数(再次进行 4 次函数评估)。那可能吗?

0 投票
1 回答
336 浏览

python - 使用 lmfit v0_9_3 时出错

我对使用 python 进行数据分析以及使用 lmfit 进行非线性方程拟合有些陌生。我正在尝试模拟一个复杂的半解析函数,该函数描述污染物羽流在 1D 通道中随时间的运动。我正在使用 lmfit v0.9.3。我已经成功完成了 lmfit 教程中的几个示例,但似乎无法让我自己的模型正常工作。下面的脚本可以tsm_mod.fit()调用,但随后返回错误:

文件“C:\Anaconda\lib\site-packages\lmfit\model.py”,第 501 行,适合 params.values()] 中的 p

TypeError:“numpy.ndarray”对象不可调用

代码如下:

这可能是 lmfit 中的错误吗?或者,您认为我使用 lmfit 设置问题的方式有误吗?

编辑: 拟合中使用的数据如下:

时代

7787.628 8330.04 8640 8756.244 8988.696 9143.676 9337.392 9492.372 9724.86 9918.576 10034.784 10228.536 10383.516 10577.232 10770.948 11003.4 11119.644 11313.36 11468.34 11700.792 11855.772 12010.752 12204.468 12359.448 12630.672 12824.388 13173.084 13483.044 13793.004 14412.924 14955.336 15575.256 16195.14 17357.472

0.00944669 0.0850202 0.236167 0.576248 1.00135 2.01215 2.84345 3.51417 4.53441 5.21457 5.59244 5.74359 5.88529 6.0081 5.75304 5.61134 5.20513 4.95007 4.41161 3.74089 3.46694 3.07962 2.80567 2.41835 2.1444 1.74764 1.47368 1.20918 0.935223 0.661269 0.406208 0.132254 0.11336 0.151147

0 投票
1 回答
207 浏览

python-3.x - 在 python 中使用 levenberg-marquardt 算法对数据应用幂拟合

大家好!我是 python 和数据分析的初学者,在为我的数据拟合幂函数时遇到了一个问题。 在这里,我将我的数据集绘制为散点图

我想用指数 arround -1 绘制一个幂函数,但是在我应用 levenberg-marquardt 方法后,在 python 中使用 lmfit 库,我得到以下错误图像。我试图修改初始参数,但没有帮助。

这是我的代码:

我不太明白这是什么问题,所以如果您有任何意见,非常感谢您。

0 投票
1 回答
3215 浏览

python - LMFIT置信区间不确定性估计python上的错误

输出错误是:MinimizerException:在没有合理的不确定性估计的情况下无法确定置信区间

为什么我得到这个错误?如何计算不确定性估计并解决这个问题?

0 投票
1 回答
521 浏览

python - python 2峰值洛伦兹拟合问题使用lmfit

我有这个程序来使用洛伦兹函数来拟合两个峰值。但是,我没有得到最合适的。谁能帮我这个。这是我用来拟合的文件。数据文件可以从此链接下载

0 投票
1 回答
301 浏览

python-2.7 - 峰值拟合 lmfit nan 结果

试图为这样的一些数据拟合一个峰值:

虽然如果我生成数据,我可以做到这一点,但如果我尝试从另一个来源读取它们,它就不起作用了。我不太擅长这一点,也不知道问题是什么。这是输出:

[x,y] [(34.145490000000002, 3.4599999999999999e-08), (29.286449999999999, 4.8399999999999997e-08), (25.118860000000002, 0.026773140000000001), (21.544350000000001, 0.068791409999999997), (18.4785, 0.083200979999999994), (15.848929999999999, 0.02123179), (11.659139999999999 , 0.01551077), (10.0, 0.084493879999999993), (6.3095739999999996, 2.0899999999999998e-07), (5.4116949999999999, 0.045209140000000002), (4.6415889999999997, 0.054789360000000002), (3.4145489999999996, 8.9399999999999993e-08), (2.9286449999999999, 0.01100814), (2.5118860000000001, 0.088990659999999999 ), (1.84785, 3.5799999999999995e-07), (1.5848930000000001, 0.099999009999999999), (1.359356, 0.075139280000000003), (1.1659139999999999, 0.167379), (1.0, 0.57693050000000001), (0.85769590000000007, 1.8658159999999999), (0.73564230000000008, 8.4961369999999992), (0.6309574, 25.299099999999999), (0.54116949999999997, 21.413350000000001), (0.46415889999999999, 13.408829999999998), (0.39810719999999999, 8.3584750000000003), (0.34145490000000006, 5.3982010000000002), (0.29286440000000002, 3.7518540000000002), (0.25118859999999998, 2.5325389999999999), (0.21544349999999998, 1.7722470000000001), (0.18478499999999998, 1.445808), (0.15848929999999997, 1.182083), (0.13593559999999999, 0.94957730000000007), (0.1165914, 0.67620849999999999), (0.10000000000000001, 0.46631620000000001), (0.085769590000000007, 0.41001890000000002), (0.07356422, 0.30625920000000001), (0.063095730000000003, 0.24040219999999998) , (0.054116949999999997, 0.1942596), (0.046415890000000001, 0.11306760000000002), (0.039810720000000001, 0.099998470000000006), (0.034145490000000001, 0.099998470000000006), (0.029286449999999999, 0.02246857), (0.025118870007940001999)]

0 投票
1 回答
274 浏览

python - 使用三维数据的非线性最小二乘最小化

我有一个 3D 数据,我想使用lmfit. 这是我编写的代码,但它不起作用。

我收到以下错误:

这是我想要拟合的模型:

在此处输入图像描述

其中A0,Balpha是模型的自由参数。我也有错误mr我想知道如何将它们包括在拟合过程中?谢谢。