问题标签 [symfit]

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 投票
0 回答
66 浏览

python - 具有两个参数共享的全局拟合

我正在尝试通过两个参数共享来执行全局拟合。现在我收到一条消息'AttributeError:'float'对象没有属性'exp'。

代码如下:

我使用这个在线资源作为参考。我不知道我的代码有什么问题。这可能是一个基本问题。指出我的代码中的错误将有很大帮助。

0 投票
1 回答
159 浏览

python - 用 symfit 计算的傅里叶级数

我正在使用https://symfit.readthedocs.io/en/master/examples/ex_fourier_series.html上提供的示例代码来计算给定函数的傅立叶级数。但是,在我成功安装包symfit并开始运行示例代码后,出现错误:ImportError: cannot import name 'parameters'在代码的第一行from symfit import parameters, variables, sin, cos, Fit。显然'parameters'是symfit包中的一个对象,但我不知道为什么它告诉我'parameters'找不到对象。示例代码如下:

感谢您阅读我的问题!

0 投票
1 回答
138 浏览

python - 同时优化两种不同的功能,为两者提供通用的解决方案

我在一月份问了一个类似的问题,@Miłosz Wieczór 很友好地回答了这个问题。现在,我面临着类似但不同的挑战,因为我需要在两个数据集(和)上同时拟合两个参数(和fc)。我基本上需要找到最适合数据和的和的值。alphae_expiq_expfcalphae_expiq_exp

einf,ezerof_exp都是常数加上我需要优化的变量是ig_fcand ig_alpha,其中ig代表初始猜测。在上面的代码中,我得到了两个不同的fcalpha值,因为我独立解决了它们。fc但是,我需要同时解决它们,以便alpha通用。

  • 有没有办法解决两个不同的函数来为fc和提供通用解决方案alpha
0 投票
1 回答
157 浏览

python - 使用共享参数拟合多个数据集

我正在尝试使用共享一些参数的不同非线性函数来拟合不同的数据集,它看起来像这样:

问题是如何使用 optimize.leastsq 或其他包来使数据适合适当的函数,知道它们共享多个参数?

0 投票
0 回答
73 浏览

python - 评估 symfit 模型中的参数

我正在使用 symfit 同时拟合两个 NMR 数据集。我在其中一个参数上定义了截止高斯分布。我在下面的简化示例中总结了我的解释:

我需要检查“atemp”是否为正,因为负值没有任何物理意义。我知道“atemp”是一个参数并且是一个表达式,但我需要获取这个参数的值。我试过 atemp.evalf() 但它不起作用。我收到这样的错误:“TypeError:无法确定关系的真值”

0 投票
0 回答
104 浏览

python - Python Symfit:链式最小化中的绑定问题

我正在处理一个优化问题,为此我链接了 3 个优化器。Symfit 导入为 sft,sympy 导入为 sy:[编辑] 下面的代码是我的情况的一个最小示例,产生相同的错误消息。

弹出以下错误消息:

正如这个(长)消息中所提到的,它是第二个最小化器 lbfgsb造成麻烦,但我根本不知道如何克服这个问题。在我的完整代码中,当我尝试只放置一个最小化器时,程序会永远运行,我无法找出原因。这就是为什么一个最小化器似乎是不够的,我想把它们链接起来。我认为这是由于问题的复杂性:两个耦合的 ODE,需要优化 7 个参数,以及使用 InteractiveGuess 执行的初始猜测(顺便说一下非常棒的工具)。

提前感谢您的帮助!

0 投票
0 回答
31 浏览

python - 在 Python 中使用共享参数和单独参数拟合大量(可变)数据集

我有 N 个(大约 1000 个)数据集,我想用相同的多项式模型拟合,其中二阶和更高阶应该是共享参数,而一阶对于每个集合都是单独的。数据集的数量并不总是相同,但可能会有所不同。

为此,我有一个形状为 x 的矩阵和一个形状Nlengthx 的向量length,这对所有数据集都有效。

通过寻找解决方案,我遇到了 symfit,但显然似乎不可能将矩阵中的所有数据集都提供给 symfit。相反,symfit 要求分别给出每个向量,这对我来说似乎很难。

你做过类似的事情吗?或者一个想法如何解决它?

0 投票
0 回答
140 浏览

python - 当我尝试将傅里叶级数拟合到我的数据时,为什么 symfit 会给我带来糟糕的结果?

我试图找到一个适合这个情节的傅立叶级数: 在此处输入图像描述

首先我使用了这个网站,我发现了以下傅立叶系数

产生了以下结果 在此处输入图像描述

这很好,但后来我决定尝试在 python 中编写我自己的曲线拟合器,并发现库 symfit 似乎是最好的选择。我什至重新利用了文档中的一个示例,但几乎没有改变。

果然,当我运行代码时,直接使用 fit 对象制作的图表中的 fit 似乎非常好:

plt.plot(xdata, fit.model(x=xdata, **fit_result.params).y, color='green', ls=':')

在此处输入图像描述

但后来我决定直接使用傅立叶系数,而不是依赖拟合对象来尝试重现函数。这就是代码打印这些系数的方式:

标准差是一个巨大的危险信号,它们大得离谱,果然,这就是结果

在此处输入图像描述

这似乎是一个糟糕的笑话。

这是使用 10 个系数完成的,如果我只使用 6 个,我得到的东西几乎不能接受。

在此处输入图像描述

最糟糕的是,直接用 fit 对象制作的图表必须意味着代码确实产生了很好的拟合,但由于某种原因,它给我的傅立叶系数只是谎言。

这是我的代码。

首先,这就是我适合功能的方式

这就是我采用这些系数并尝试重现图表的方式。我有不同的 ab 和 omega 数据集来尝试重现其他傅立叶级数。阶梯楔(文档中的示例)是唯一有效的。

0 投票
1 回答
44 浏览

python - symfit 上的 Scipy 分布?

我认为标题是自我解释的。

我真的想使用已经在 scipy.stats 上实现的几个 pdf 作为 symfit 模型的模型,例如CrystalBallJohnson函数。我尝试过使用以下代码的高斯分布:

但我得到以下TypeError

TypeError:无法确定关系的真值

我相信这是因为 scipy 分发需要数字(或带有数字的可迭代对象)而不是 sympy 产生的符号。是否有可能使用此发行版而不是手动实现它们?

0 投票
0 回答
39 浏览

python - 使用 Symfit 进行 ODE 拟合 - ValueError:操作数无法与重新映射的形状一起广播

我正在尝试用 Symfit求解和拟合这些耦合的微分方程。我尝试遵循ODE 拟合的文档,查看了类似问题的答案,并在其他上下文中搜索了错误,但没有任何运气。我的代码应该用于实验数据,但作为开始,我刚刚创建了一些类似的数据。相关代码为:

但我收到以下错误:

我在使用 Symfit 方面相当缺乏经验,但我想错误所指的两个数组是五个变量和每个变量都有的 100 个数据点。我不知道是什么导致了这个错误,除了可能缺乏初始猜测和错误生成的数据。问题只是我使用了错误的时间数组

编辑:正如用户 mikuszefski 指出的那样,我使用tdatat_vals应该使用的地方。这解决了我最初的错误。同一用户还正确预测了数值问题,因为一些拟合值的大小为 10^300。找到解决方案后,我将编辑我的帖子。我还编写了我的导入并定义了g.