问题标签 [function-fitting]

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 回答
70 浏览

python - Symfit 在拟合矢量函数时遇到奇点 - 任何替代方案?

我正在尝试将 2 个图表拟合到 2 个共享参数的不同函数中。函数相当复杂,涉及 atan、ln 和分数。Symfit 似乎为这种拟合提供了功能,但这种拟合遇到了

RuntimeWarning:在 sqrt return np.sqrt(self.variance(param)) 中遇到无效值

并且没有完成。

是否有另一个拟合函数在数值上更有效,或者是否有一个 scipy 函数可以实现相同的功能?

虽然以下代码片段非常简单,因为可以快速发现并解决除以零(奇点),但它应该说明问题。相同的问题(除以零或可能为负根)也可能出现在标准中。开发。计算。使用许多参数,找到这些问题点变得更加复杂。

我希望拟合能够为我提供拟合参数。我假设,拟合运行到一个奇点。好的,我通过排除一些拟合变量 x 来避免被零除。然而,这需要检查拟合函数。我仍然想知道,是否存在一些软件包解决方案。

0 投票
1 回答
1580 浏览

python-3.x - RuntimeWarning:具有多个参数和自变量的无效值非线性拟合

几周前我刚刚学习了 python,目前在将数据拟合到给定函数时遇到了问题。我尝试了不同的方法来拟合我的数据,但我不断收到错误 RuntimeWarning: invalid value, or sth similiar (比如除以零)。我定义了我想要适合以下 python 函数的函数:

如您所见,我想拟合 7 个参数,并且该函数有 2 个自变量。这里给出了我的数据的摘录,我尝试过的任何方法都不起作用:

我尝试的第一个解决方案是 leastsq() 函数:

输出:

我尝试了几种启动参数下一个方法:curve_fit

它返回与前一个方法相同的错误消息。我试图定义 startparameter 并设置边界,但下一个方法不起作用:lmfit

输出:

我还尝试了另一种在网上找到的解决方案。那里使用了 Levenberg-Marquardt 算法,但它的代码很长,我认为我的问题已经足够长了。但如果需要,我也可以发布此解决方案。

我在优化运行时打印了一些值,并且一些值确实变成了 inf 或 -inf,但正如在设置边界之前所写的那样,它不起作用。

我希望你们中的任何人都有一个想法。预先感谢。如果您需要更多信息,我很乐意提供我的问题

0 投票
1 回答
63 浏览

gnuplot - 如何告诉 gnuplot 忽略非收敛拟合

我在为无法正常运行的拟合找到良好的初始条件时遇到了一些问题。所以我想通过将它插入一个循环中来蛮力它,告诉 gnuplot 继续拟合,直到他得到小于 100% 的相对偏差,同时在每次他重新运行循环时随机更改初始值,我写了类似的东西那:

我将 rand 函数相乘,以便得到接近我期望适合拟合的值的值。

这种方法显然会导致很多不收敛和停止脚本中间循环的拟合。如果拟合不收敛或给出奇异矩阵,我如何告诉 gnuplot 简单地忽略这一点并重新运行随机化和拟合循环?

0 投票
1 回答
162 浏览

r - 将模型拟合到 R 中的密度分布

我试图弄清楚如何将已发布的模型拟合到数据集。

模型和方程的详细信息如下所示1

我有一个来自1中的方程的表观扩散 (D*) 数据框以及步数 (n)。

我需要使我的数据分布适合这个模型2

这个等式中的 D 和 x 是否相同?这让我有些困惑。

数据框:

拟合应该看起来像伽马分布拟合。

任何有关用于创建拟合然后使用 ggplot 绘图的代码的建议都会有很大帮助。就像是??:

我当前的分布图代码:

0 投票
0 回答
82 浏览

python - 如何为数据集选择最佳拟合函数

我正在尝试为某些数据找到最佳拟合函数。
我试过了:

其中arr_xarr_y是原始数据。这就是结果: 蓝色的函数是原始函数,绿色的函数应该适合蓝色函数。 这些绿色函数保持不变,即使我将拟合函数的多项式梯度增加到高于 4 的数字 我如何计算函数以拟合原始数据(蓝色函数)? 我能找到合适的函数来很好地拟合数据吗? 感谢您花时间回答我的问题。 以下数据适用于右侧的功能(蓝色功能)。它可以帮助进行一些测试。

原始(蓝色)和拟合函数(绿色)


my_model = np.poly1d(np.polyfit(arr_x, arr_y, 4))








arr_x = [4641.00003052, 4641.09999084, 4641.19999695, 4641.30001831, 4641.40000916, 4641.50001526, 4641.59999084, 4641.70002747, 4641.80001831, 4641.8999939, 4642.00001526, 4642.10002136, 4642.19999695, 4642.29998779, 4642.3999939, 4642.50001526, 4642.60002136, 4642.70001221, 4642.79998779, 4642.8999939, 4643., 4643.10002136, 4643.20002747, 4643.30000305, 4643.40000916, 4643.50001526, 4643.6000061, 4643.69999695, 4643.80001831, 4643.8999939, 4644.00001526, 4644.09999084, 4644.20001221, 4644.30003357, 4644.40002441, 4644.5, 4644.6000061, 4644.69999695, 4644.80000305, 4644.8999939, 4645.00001526, 4645.10002136, 4645.20002747, 4645.30000305, 4645.40002441, 4645.50001526, 4645.59999084, 4645.69999695, 4645.80001831, 4645.90002441, 4646.00003052, 4646.1000061, 4646.20001221, 4646.30001831, 4646.40000916, 4646.5, 4646.60002136, 4646.70002747, 4646.80001831, 4646.90002441, 4647.00001526, 4647.1000061, 4647.20002747, 4647.30000305, 4647.40002441, 4647.5, 4647.6000061, 4647.69999695, 4647.80001831, 4647.8999939, 4648., 4648.10002136, 4648.20002747, 4648.30000305, 4648.3999939, 4648.50003052, 4648.6000061, 4648.70001221, 4648.80001831, 4648.90002441, 4649.00001526, 4649.1000061, 4649.20001221, 4649.29998779, 4649.40000916, 4649.50003052, 4649.59999084, 4649.69999695, 4649.80000305, 4649.90002441, 4650., 4650.10002136, 4650.20002747, 4650.30001831, 4650.3999939, 4650.50001526, 4650.6000061, 4650.69999695, 4650.80000305, 4650.90000916, 4651., 4651.10002136, 4651.19999695, 4651.30001831, 4651.3999939, 4651.5, 4651.59999084, 4651.69999695, 4651.80001831, 4651.8999939, 4652., 4652.10002136, 4652.19999695, 4652.30001831, 4652.40002441, 4652.50003052, 4652.6000061, 4652.70001221, 4652.80000305, 4652.90000916, 4653.00003052, 4653.10002136, 4653.19999695, 4653.30001831, 4653.40000916, 4653.50003052, 4653.6000061, 4653.70001221, 4653.80001831, 4653.90002441, 4654.00001526, 4654.09999084, 4654.20001221, 4654.30000305, 4654.3999939, 4654.50003052, 4654.6000061, 4654.70001221, 4654.80000305, 4654.90000916, 4655., 4655.09999084, 4655.20001221, 4655.30001831, 4655.40000916, 4655.5, 4655.60002136, 4655.70001221, 4655.80000305, 4655.90000916, 4656.00003052, 4656.09999084, 4656.20001221, 4656.30001831, 4656.40000916, 4656.5, 4656.60002136, 4656.70002747, 4656.80000305, 4656.8999939, 4657.00001526, 4657.1000061, 4657.19999695, 4657.30001831, 4657.3999939, 4657.5, 4657.60002136, 4657.70001221, 4657.80000305, 4657.90000916, 4658., 4658.10002136, 4658.19999695, 4658.30001831, 4658.40000916, 4658.50001526, 4658.59999084, 4658.69999695, 4658.79998779, 4658.90000916, 4659., 4659.1000061, 4659.20002747, 4659.29998779, 4659.40000916, 4659.5, 4659.6000061, 4659.70001221, 4659.80000305, 4659.90000916, 4660., 4660.1000061, 4660.19999695, 4660.30000305, 4660.40000916, 4660.5, 4660.6000061, 4660.70002747, 4660.80001831, 4660.90000916, 4661., 4661.10002136, 4661.20002747, 4661.29998779, 4661.3999939, 4661.50001526, 4661.60002136, 4661.70001221, 4661.80000305, 4661.90000916, 4662., 4662.09999084, 4662.19999695, 4662.30001831, 4662.40000916, 4662.50001526, 4662.60002136, 4662.69999695, 4662.80000305, 4662.8999939, 4663., 4663.1000061, 4663.19999695, 4663.30001831, 4663.40002441, 4663.50001526, 4663.60002136, 4663.69999695, 4663.80000305, 4663.90000916, 4664., 4664.1000061, 4664.20002747, 4664.30001831, 4664.40002441, 4664.50003052, 4664.6000061, 4664.70001221, 4664.80000305, 4664.90000916, 4665.00003052, 4665.10002136]

arr_y = [0.01210571, 0.01447399, 0.0101318, 0.01009226, 0.01006458, 0.01004521, 0.01003164, 0.01002215, 0.01301551, 0.01211085, 0.0144776, 0.01313432, 0.01219402, 0.01153582, 0.01107507, 0.01075255, 0.01052678, 0.01336875, 0.01235812, 0.01465069, 0.01325548, 0.01527884, 0.01369519, 0.01258663, 0.01181064, 0.01726745, 0.01508721, 0.01056105, 0.01039273, 0.01327491, 0.01229244, 0.00860471, 0.0120233, 0.01141631, 0.01399141, 0.00979399, 0.00985579, 0.00689906, 0.00482934, 0.00638054, 0.01046638, 0.01632646, 0.02042852, 0.02929997, 0.03250998, 0.03775698, 0.03242989, 0.02870092, 0.02609065, 0.02426345, 0.02598442, 0.02418909, 0.02893236, 0.02925265, 0.03247686, 0.0317338, 0.03421366, 0.03594956, 0.04316469, 0.05721529, 0.0730507, 0.09313549, 0.11619484, 0.14433639, 0.17303547, 0.19912483, 0.22938738, 0.25357117, 0.27049982, 0.28534987, 0.30174491, 0.31622144, 0.32935501, 0.3355485, 0.33988395, 0.35191877, 0.35734314, 0.3671402, 0.36499814, 0.3574987, 0.35824909, 0.35577436, 0.35104205, 0.35072944, 0.34751061, 0.35125742, 0.3538802, 0.34971614, 0.3408013, 0.32256091, 0.32479264, 0.32635484, 0.33344839, 0.34741387, 0.34818971, 0.3247328, 0.28731296, 0.24011907, 0.19208335, 0.14645834, 0.11752084, 0.10926459, 0.10948521, 0.10363965, 0.08454775, 0.05918343, 0.0444284, 0.02809988, -0.01033008, -0.04323106, -0.08726174, -0.13308322, -0.18615825, -0.24131078, -0.29791754, -0.34954228, -0.3736796, -0.37857572, -0.385003, -0.3955021, -0.40585147, -0.41009603, -0.40706722, -0.39894705, -0.39026294, -0.38418406, -0.38292884, -0.38505019, -0.38653513, -0.38757459, -0.38830221, -0.37981155, -0.37086809, -0.37060766, -0.37042536, -0.37329775, -0.37230843, -0.3746159, -0.37623113, -0.35636179, -0.31245325, -0.25771728, -0.21640209, -0.17548147, -0.12283703, -0.07698592, -0.04189014, -0.0173231, 0.00587383, 0.03411168, 0.05087818, 0.05661472, 0.06063031, 0.06344121, 0.06240885, 0.0676862, 0.06838034, 0.07486624, 0.08540636, 0.09578446, 0.10604912, 0.11323438, 0.10926407, 0.11248485, 0.11473939, 0.11031758, 0.1102223, 0.11015561, 0.11010893, 0.09507625, 0.06655337, 0.03158736, -0.01388885, -0.06072219, -0.09950553, -0.10565387, -0.09795771, -0.0805704, -0.06239928, -0.0526795, -0.04887565, -0.05521295, -0.05664907, -0.04865435, -0.04005804, -0.03404063, -0.03282844, -0.03197991, -0.03138594, -0.02797016, -0.01957911, -0.01370538, -0.01559376, -0.01691563, -0.01484094, -0.01038866, -0.00727206, -0.00509044, -0.00956331, -0.01269432, -0.00888602, -0.00622022, -0.00435415, -0.00304791, -0.00213353, -0.00149347, -0.00104543, -0.0007318, 0.00248774, 0.00174142, -0.00178101, -0.00124671, -0.00087269, -0.00361089, -0.00252762, -0.00176933, -0.00123853, -0.00086697, 0.00239312, 0.00167518, 0.00417263, 0.00292084, 0.00204459, 0.00143121, 0.00100185, 0.00070129, 0.00049091, 0.00334363, 0.00234054, 0.00163838, 0.00414687, 0.00290281, 0.00203196, 0.00142238, 0.00399566, 0.01179696, 0.02025787, 0.02618051, 0.03032636, 0.02722845, 0.02205992, 0.02444194]


谢谢你。
0 投票
1 回答
75 浏览

curve-fitting - 拟合曲线

我希望这是提出这个问题的正确地方。

我有一条想要拟合的曲线,但我不知道究竟哪种拟合合适。

曲线如下:

在此处输入图像描述

当 x 增长到无穷大时,y 向 1 收敛。

我尝试了类似 f : x -> 1-k*exp(-l*x) 但结果远非令人信服。

我不知道从哪里开始,有人有想法吗?

这是用于构建上图的数据。我需要 1.5 分钟来计算我的函数的一个点。

x = [0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 0.32, 0.36, 0.4]

y = [0.71368682, 0.79734766, 0.83832184, 0.86394632, 0.8818312, 0.89515722, 0.90553446, 0.91387899, 0.92075551, 0.92653329]

非常感谢!

0 投票
2 回答
140 浏览

java - AnyLogic sims 的函数拟合和数据拟合

在模拟中,我得到一些看起来像 arctan 或 tanh 函数的数据。

我想实现一个适合Java的函数来获取该函数的参数以进行优化。对于其他函数,我使用了例如多项式和高斯函数的函数拟合的 Apache 代码,但找不到切线的解决方案。

老实说,我不知道如何编写这样的函数 fit 所以也许有人可以帮助我解决这个问题,或者确实知道是否已经存在适合此类函数的函数。

0 投票
2 回答
73 浏览

python - 如何将数据拟合到 octave/python 中的给定理论模型?

我有一个包含一列数值数据的文件,我想将这些数据拟合到应该描述它们的理论函数中。我要查找数据的功能是:

要拟合的参数是 (n,a) 有没有办法使用八度音程或 python 将一组数据拟合到定义的函数?
通常我使用 gnuplot 来做,但由于我必须做更多的数据分析,所以我想学习如何用编程语言来做。谢谢你。

0 投票
1 回答
55 浏览

python - 是什么导致“TypeError:只有 size-1 数组可以从 scipy.optimize.least_squares 的实现转换为 Python scalars least_squares”

我正在尝试将正态分布拟合到 seaborn 的直方图值。我正在使用以下代码:

其中 data 是一个数据框,其列是浮点值的“visitor_prop1”。当我运行它时,我得到TypeError: only size-1 arrays can be converted to Python scalars. 我尝试将打印语句放在上述函数中,但它们显然从未运行过。

我已经测试过 u 和 y 是浮点数组。一个例子是:

我检查了type(model_residual(x,u[5],y[5]))返回numpy.float64似乎是 python 标量是什么导致了这个错误?

0 投票
0 回答
64 浏览

matlab - 使用 Matlab 估计 sigmoid 函数的参数

我希望将 sigmoid 曲线拟合到一些数据点并使用 MATLAB 计算中心点。

我要遵循的具体等式是:

Sigmoid 方程

Xc是sigmoidX的斜率。Y = (Ymin+Ymax)/2b

示例数据为:

在这种情况下Ymin = 0.272Ymax = 0.442

我怎样才能拟合方程?