问题标签 [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 - 使用 LMFIT 中的不确定性进行误差加权拟合
我正在尝试使用 LMFIT 拟合模型,我可以轻松地执行以下操作:
并得到非常合理的结果
现在我还有一些与我的measured
变量相关的不确定性(例如测量误差),所以我想通过与之相关的标准误差对残差中的点进行加权(假设它始终是测量值的 20%)。代码现在变成了这样:
问题是现在我得到完全不可靠的拟合结果。为什么?我怎样才能解决这个问题?
python - 如何区分lmfit中的已知局部参数和全局参数?
我正在使用 lmfit python 包https://lmfit.github.io/lmfit-py/在某些参数的某些允许变化范围内将数据拟合到指定的非线性函数(这主要是我发现 lmfit 有吸引力的原因)。
通常,lmfit 的两行重要代码是:
我的应用程序是对 36 个数据图执行全局拟合。问题是一些参数没有被拟合(vary=None),是已知的数量,并且在所有 36 个图表中都不同,但在它们自己的图表中保持不变。目前,我正在尝试实现以下语法,以便将这些已知参数与其关联的 x_data 和 y_data 点一起传递。
这里 x_data、y_data 和 known_params 是长度相同的数组。x_data 和 y_data 由所有 36 个图的单个数组组成,并且 known_params 是一个三列数组,其中包含在每个图中固定的那些参数的重复条目。
目前程序运行速度很慢(直到执行完成 30 分钟)。同样,目前所有图的拟合曲线都是相同的,而我希望它用已知参数拟合每个局部图并仅拟合全局参数。
我想问一下我这样做是否正确?我明白为什么 minimize() 需要引用要拟合的 y_data,但为什么 fcn2min() 需要 y_data 作为输入?我的拟合程序是否会混淆它是否拟合 y_data 或 known_params 数组?有没有更好的方法通过 lmfit 做到这一点,或者我应该寻找另一个数字包?
python - 拟合后如何获取lmfit参数?
我编写了一个程序来拟合一些拉曼光谱峰。我需要返回拟合参数(位置、幅度、HWHM)。
我使用了 modul lmfit 来创建一个带约束的洛伦兹峰。
根据我的图形图,我在拟合峰值和原始数据之间有很好的一致性。但是在拟合后提取参数时,我有一个问题,程序只返回初始值。
我绑定了“report_fit 模块”并更改了初始参数但没有成功。参数值不会演变。
困扰我的是,这个程序可以在我同事的电脑上运行,但不能在我的电脑上运行。所以问题可能来自我的python版本。
我正在使用 spyder 2.3.9,以及在 windows 10 下安装了 anaconda 的 python 3.4。lmfit 模块 0.9.3 似乎可以部分工作,因为我可以获得一个很好的拟合协议(来自图 plt.plot)。但是我无法在拟合后返回参数值。
这是我的代码:
谢谢你的帮助 :)
一个工作适合的例子
请将您的回复发送至 deniz.cakir@etu.umontpellier.fr
python - ValueError:输入包含 nan 值 - 尽管输入不包含 NaN,但来自 lmfit 模型
我正在尝试使用 lmfit (链接到文档)构建模型,但我似乎无法找出为什么我ValueError: The input contains nan values
在尝试拟合模型时不断得到一个。
产生以下错误:
但是,以下对 NaN 的检查结果证实我的数据中没有 NaN 值:
到目前为止,我已经尝试将 1 和/或两者data
从time
列表转换为numpy ndarrays
,删除第 0 个时间步(以防除以 0 错误),明确指定t
为独立并允许所有变量变化。然而,这些都抛出相同的错误。
有谁知道是什么导致这个错误被抛出?谢谢。
python - 如何拟合具有共享和非共享参数组合的多个数据集
我正在尝试拟合多个数据集,这些数据集应该有一些变量在数据集之间共享,而其他变量则不是。但是我不确定我需要采取哪些步骤来做到这一点。下面我展示了我正在尝试使用的方法(从“问题从这里开始”不起作用,它只是为了说明目的)。
在这个答案中,有人能够共享参数arcoss数据集是否有某种方式可以调整,以便我也可以拥有一些非共享参数?
有人知道我如何实现这一目标,或者有人可以提出更好的方法来实现相同的结果吗?谢谢。
python - 使用 LMFIT Python 进行三边测量
我正在尝试出于三边测量的目的执行非线性最小二乘拟合 LMFIT:
- LMFIT
- 信标包括信标位置 x,y,z
Parameters()
包括Xinit
要估计的位置。tag_distances[i]
包括测量值(从标签到 的距离beacon[i]
)
我收到此错误:
raise TypeError('Improper input: N=%s must not超过 M=%s' % (n, m)) TypeError: Improper input: N=3 must not超过 M=1
python - 曲线拟合参数的约束
我试图在我的二次曲线拟合过程中施加界限和约束。目标是找到系数a,b
和c
。对 b: 施加约束delta-2*a*x
是我的疑问。如何x
在我的约束中添加变量。可操作的代码:
谢谢 !
编辑:我改变了变量,使这个程序工作。但不确定这是否是应用约束的正确方法。
编辑 2:添加了必要的约束: c <=0, a>0 和 2*a*x+b >= 0 ;
python - Python, Lmfit, globalfit
我正在尝试使用 1 个共享参数和 6 个其他参数进行全局拟合。dataComplete 是我从文本文件和剂量 = x 值解析的数据。在这里,bValue 随浓度变化而其他保持不变。在进行全局拟合之前,会使用参数进行一些计算。我收到两个错误
1:nan 值和 2:TypeError:输入不当:N=35 不得超过 M=22
我检查了各个元素,它们似乎有效,但不是全局适合。任何帮助都感激不尽。我尝试使用此处先前解决的示例中的代码,但显然有问题。