问题标签 [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 拟合了一条曲线,但趋势线/曲线很短。请我如何在两个方向上扩展趋势线/曲线,因为趋势线/曲线是悬挂的。示例代码热忱欢迎我的资深程序员。谢谢。
python - 某些组之间变化的参数,而其他参数适合所有组?
如何允许函数的一个参数在组之间变化而其他参数适合所有组?
我正在使用 lmfit 来拟合疾病传播的模型。我希望函数的指数适合所有数据点,但是比例因子需要在不同组之间有所不同(作为不同年份繁殖率不同的疾病的代表)。
请参阅下面的代码:
按照 M Newville 的建议,我得到了合适的工作。下面的代码:
python - 使用 lmfit 未定义的参数
我试图用给定的数据将曲线拟合到下面的等式。方程是Rate=k*Concentration^n
。我n
在安装时遇到了麻烦-6
,这是不可能的,所以我试图设置一个界限min=0
。但是,我收到未定义的术语参数错误。任何帮助都会非常感谢。
python - Python:导入 lmfit.models 失败
这篇文章与我被告知使用 lmfit 解决我的问题的另一篇文章有关。
我使用 conda install --channel "conda-forge" lmfit 在 anaconda Prompt 中安装了 lmfit ,它起作用了。但是现在当我尝试在我的程序中使用它时,我收到以下错误:
ModuleNotFoundError:没有名为“lmfit.model”的模块;'lmfit' 不是一个包
这就是我的程序开头的样子:
我还尝试单独导入 lmfit,例如:
但它也不起作用......
我尝试了lmfit 网站上的所有内容,但是在 Anaconda Prompt 中使用“git”-thing 给我一个错误(类似命令的东西不存在)
我还找到了这篇文章,并且从 lmfit import * 导入有效。现在我有一个问题,我需要导入 GaussianModel,我不知道该怎么做。如果我只是从 lmfit import GaussianModel添加,我会得到错误
ImportError:无法导入名称“GaussianModel”
我还阅读了一些关于导入包和模块的顺序很重要的内容——这就是问题所在吗?我怎样才能解决这个问题?
我使用 anaconda/spider 在 Windows 上工作。
lmfit - lmfit:定义一个参数以遵循高斯分布
我注意到可以使用最小值、最大值和/或使用表达式来约束 LMFIT 中的参数。我想知道是否有一种方法可以使用表达式来约束参数以遵循由均值和标准差定义的正态分布。例如,我的参数之一介于 -3000 和 5000 之间,如果我将它们指定为最小值和最大值,优化器会认为它们同样可能(均匀),但我希望它考虑远离平均值的值不太可能(即普通的)。谢谢你。
python - Lmfit 给出 -1 相关性和较大的不确定性(python)
我正在尝试使用 lmfit 模块将模型函数拟合到曲线。
我拟合的曲线设置如下:
对于 x 大于或等于 X,e(x) = exp(-(xX)/x0),否则为 0。
G(x) = (1/sqrt(2*pi)*sigma) * exp(-x^2/2*sigma^2)
模型拟合 M(x) = E * conv(e,G)(x) + B
其中 e 是截断指数,G 是高斯,E 和 B 是常数。e 和 G 之间的算子是卷积。
当我尝试将此函数拟合到我的数据时,我得到了很好的拟合。但是,拟合对我为 X 提供的初始值非常敏感。这也反映在参数的不确定性中:
我怀疑这与 E 和 X 之间的相关性为 -1.00 相关,这没有任何意义。我试图找出为什么会出现此错误,并且我相信它可能在模型的定义中:
虽然我相信模型是我无法找到错误来自哪里的原因。也许你们中的某个人可以帮助我!
python - 使用 lmfit 最小化默认最小化方法获得的令人惊讶的结果
我正在使用 lmfit 来寻找优化模型与分子光谱的拟合的参数。残差程序调用一个 Fortran 代码,该代码计算能级并将它们与可用的实验数据匹配,提供作为 lmfit-minimize 输入的残差集。
有两种可能的情况:线性分子和非线性分子。我为他们每个人准备了一个例子。使用线性分子,输出是我所期望的,达到与我以前使用 Minuit 的 Fortran 版本进行参数优化的代码相同的最小值。这是一个示例,其中打印的值是每次调用函数时获得的卡方值。
到目前为止,一切都很好。一旦我尝试拟合来自非线性分子种类的数据,就会出现问题。然后,经过很少的评估,程序似乎收敛到提供的初始值。如果我们将此示例称为 1:
如果我们使用更详细的输出重复示例 1,除了之前的 Chi^2 之外,还包括我们获得的参数值和残差:
如示例(示例 2)所示,显然有一个更好的最小值:
但是,如果在这种弯曲的情况下,我将最小化方法更改为 nelder,则结果与预期的一样,即使我开始最小化距离示例 1 中的最小值很远:
在这种情况下,一些迭代的更详细的输出如下
………………………………………………………………………………
我将不胜感激任何解释或猜测默认(Levenberg-Marquardt 方法)可能失败的原因,或者是否有办法对其进行调整以克服这个问题。
python - 如何用两组自变量拟合数据
我有这个方程 a*(t^alpha)*(p_p^beta) 我想拟合得到 t 和 p_p 是自变量的 alpha 和 beta 值。我的问题是如何编写最终的拟合模型(结果)表达式。
我尝试了类似上面的表达式,但我收到了这个错误:
python - lmfit 最小化加权初始数据
我对python相当陌生,我正在尝试使用lmfit进行一些曲线拟合。该代码运行良好,但我想通过原点(0,0)强制拟合。我在 stakoverlow 中看到,使用“curve_fit”可以添加和属性“sigma”来解决问题,但这在“最小化”中不起作用。你有什么解决方法吗???
到目前为止,这是我的代码:
如您所见,拟合不是从 (0,0) 开始,而是在 (0,10) 左右开始,我想总是强制它从 (0,0) 开始......看起来我还没有能够上传图片(还没有权限)......无论如何,我认为你可以明白这一点。
还有另一个问题,是否有另一种方法来存储参数并绘制结果?现在要存储模型返回的参数,我将它们存储在一个名为“model_data”的全局变量中。然后,在绘图部分,我使用 linspace 创建了一个名为“t”的新“x”数组,然后使用“model_data”中存储的参数绘制 t 与 BMP_Gompertz(myfunction)的关系。效果很好,但看起来应该是其他更好的方法来做到这一点。
非常感谢您的帮助