问题标签 [polynomial-approximations]

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

python - Python中的峰值曲线拟合

我正在尝试获得 y 所附图片中所示的 x 函数。由于峰值行为,我无法使用多项式拟合获得此函数。拟合曲线以获得输出将是 x 的显式函数的方程的最佳方法是什么?在此处输入图像描述

0 投票
1 回答
229 浏览

maxima - Maxima中函数的多元多项式逼近

我在千里马有很长的象征性功能,比如说

我想计算这个函数的多项式逼近,比如说

在已知范围内x并且y具有最大误差e

我知道,Maxima 中有一个功能,例如plsquares,但它需要一个输入矩阵,而我只有功能fn(x,y)。我不知道如何从我的函数中生成这个矩阵。genmatrix创建不能被 使用的矩阵plsquares

这在千里马可能吗?

0 投票
0 回答
554 浏览

python - N维高阶多项式插值

我正在寻找一些关于我面临的复杂问题的线索,关于 4D 空间中的插值。

我有一个由 3 维空间中的 340 个点组成的数据集(我有三个变量 - A、B、C - 每个由 340 个元素定义)。每个点由输出变量的某个值标识。所以,一般我有

f(A,B,C) = D

我需要对数据集进行插值,以预测设计空间中每个点的 D 值。我所做的是编写一个小脚本,通过numpy方法linalg.lstsq获取多项式m的系数

然后,我使用一个评估函数来获得设计空间所有点的函数值。

由于我的设计空间是 3 维的,我将设计空间的所有点 X、Y、Z 传递给 polyval 函数三个 3D 矩阵。f是输出 D 的 3D 矩阵。该矩阵中的每个点都是 D 的值,该值是通过 polyfit 在设计空间的每个点中计算得出的评估多项式的​​值(抱歉,这句话很棘手)。

然后我要做的是绘制这个 3D 设计空间切片的等高线图。我选择 Z 的一个值,并根据 D 的值绘制由 X、Y 形成的 2D 平面和等高线水平。问题是结果不是我所期望的。等高线图的颜色几乎相同,一个角落有一些变化。

我在互联网上到处搜索,Python wiki 还建议了仅适用于 2D 案例的函数。有没有人遇到过这种问题?我在这个 N 维多项式的评估/定义中遗漏了什么吗?

非常感谢您的关注。

费德里科

0 投票
1 回答
614 浏览

matlab - 在 Julia(或 MATLAB)中创建完整切比雪夫多项式的向量?

假设我们有一个二维函数 f(x,y),我们想用一组切比雪夫多项式进行逼近,直到 2 次。设 j 次切比雪夫多项式为 T j (x) 或 T j (y)。我们通常通过构造一个函数 g(x,y) 来近似 f(x,y),它是一维多项式的张量积,

        

我想要做的是生成一个完整的 N 级切比雪夫多项式。这只是上面的张量积,但是索引 k+l 的总和必须小于或等于 N。所以如果 N 为 3,那么我们将得到除 T 2 (x)*T 2 (y) 之外的所有项,因为 2+2=4 > 3。随着函数维数的增加,更多项会被删除。

最终,如果我使用超过 2 或 3 个维度,我希望通过灵活的级别选择来做到这一点,并且不必写出一堆嵌套循环。这似乎@nloops是要走的路,但我无法弄清楚。

例如,假设我想在 (.5,.5) 处评估二维切比雪夫多项式。我可以编写一个内联函数,它在点 x 处返回 N 级的一维切比雪夫多项式。

在 2 维(甚至更多)中创建完整的张量积多项式很容易。例如:

但是以一般方式创建完整的多项式有点棘手。我希望它以一种我不通过构造完整张量积然后删除度数总和大于水平的多项式开始的方式来完成。如果维度的数量和级别都很大,这将占用大量的内存。

0 投票
2 回答
461 浏览

python - 删除 SymPy 级数展开中的混合变量项

考虑 SymPy 符号e和的两个函数i

这将产生

但是,假设ei都很小,我们可以忽略三阶或更高阶的两项。使用 Sympy 的系列工具或简单地添加一个 O-notationOrder类可以处理这个问题:

看起来很棒。但是,我仍然有好坏参半e**2 * i**2。这些术语中的单个变量小于所需的截止值,因此 SymPy 保留它们。然而,数学上小²·小² = 小⁴。同样,e·i² = small·small² = small³。

至少出于我的目的,我希望删除这些混合术语。添加混合Order不会产生预期的结果(它似乎忽略了前两个订单)。

问题: SymPy 是否有一个简单的系统可以快速删除 n 阶项,以及 (e^a)·(i^b) 其中 a+b > n 的项?

凌乱的解决方案:我找到了解决这个问题的方法,但它很凌乱并且可能不通用。

生产

这正是我想要的。所以要具体说明我的问题:有没有一种方法可以在一个步骤中做到这一点,并且可以推广到任何 n?此外,我的解决方案丢失了表示混合项丢失的大 O 符号。这不是必需的,但会很好。

0 投票
2 回答
960 浏览

python - 多项式回归度增加后,训练分数降低

我正在尝试使用线性回归将多项式拟合到来自正弦信号的一组点,并添加了一些噪声,使用linear_model.LinearRegressionfrom sklearn

正如预期的那样,训练和验证分数随着多项式次数的增加而增加,但在大约 20 次之后,事情开始变得奇怪并且分数开始下降,并且模型返回的多项式看起来一点也不像我用来训练它。

下面是一些可以看到这一点的图,以及生成回归模型和图的代码:

在 degree=17 之前,事情如何运作良好。原始数据 VS 预测:

在那之后它变得更糟:

验证曲线,增加多项式的次数:

我知道预期的是,当模型的复杂性增加时,验证分数会下降,但为什么训练分数也会下降呢?我在这里能错过什么?

0 投票
0 回答
51 浏览

r - 在 r 中隔离多项式拟合的公式

这是Isolating coefficients from polynomial fit in r的概括(不包括多项式的情况)和(在某种意义上)Isolating coefficients from polynomial fit in r的副本(4 年后,只有部分答案/“解决方法”;见我raw = TRUE下面的评论)。

假设我有一个多项式拟合:

有没有一种简单的方法来获得它背后的多项式公式?

我知道这poly适用于正交多项式,并且该选项raw = TRUE适用于单项式。因此,raw = TRUE提取公式要容易得多。但是,有人告诉我raw = TRUE,一般来说,会给出不同的(更糟的?)适合。

0 投票
1 回答
147 浏览

matlab - 使用 fminunc 拟合度数 > 2 的多项式

我正在尝试使用 找到度数多项式的n系数fminunc。我知道polyfit,但我必须使用 fminunc(或 lsqnonlin),因为我需要稍后扩展我的模型。无论如何,我的目标函数只是非线性最小二乘问题,我应用了相同的居中和缩放方法polyfit

然后我根据我的目标测量数据集得出的一些启发式方法生成了一些测试数据:

在这里可以找到著名的randraw脚本。

到目前为止一切都很好,这适用于次数高达 2 的多项式(即length(pars) <= 3)。有了上面的测试数据,它甚至polyfit在准确率上都超过了。但是,一旦我尝试拟合度数高于 2 的多项式,就会fminunc在初始迭代后立即停止说

优化停止,因为目标函数不能在当前搜索方向上减小。要么是目标函数的预测变化,要么是线搜索间隔小于 eps。

然而,polyfit仍然能够拟合多项式,尽管误差越来越大。有人知道如何拟合更高次多项式fminunc吗?

我的感觉是一些数字问题阻止fminunc了它的工作。也许梯度太高了,我也需要一些 y 轴缩放?

0 投票
0 回答
517 浏览

python - 根据来自另一列 Pandas 的多项式进行插值

我有一个 pandas 数据框,我知道所有列的起始值都相同,最终值是 100% 结束值的 90% 和 80%。我需要在起始值和结束值之间进行插值,并遵循 100% 值的趋势(这不是线性的)。附带说明:我尝试在开始和结束之间进行线性插值,但这不起作用,它返回了完全相同的数据帧,没有填充 NaN。

解决方案:我的问题是数据类型是对象而不是浮点数。转换为浮点数并将 100% 设置为索引后,我使用以下内容来实现所需的结果:

0 投票
0 回答
16 浏览

tensorflow - 6 阶多项式回归无结果

我刚刚了解了张量流。为了更熟悉语法,我构建了一个玩具模型来执行多项式回归。

我创建的玩具数据集是

我建立的模型是

但是,在我运行模型之后,我得到的结果是:

为什么模型什么也没学到?我已将学习率更改为更小的数量级,但结果仍然相同。