问题标签 [cubic-spline]
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-3.x - 插值函数卷积的数值积分
我有 x 和 y 数据点数组,用于创建插值函数func_spline
,如下所示。
代码成功地进行了集成但是我想修改代码以允许表单的集成
我在积分中卷积f1
的任何函数(函数ktsq
和其他不参与积分的变量)在哪里alphasinterp
。例如,对于特定的f1
我得到错误
TypeError: unsupported operand type(s) for *: 'function' and 'FunctionClass'
如何解决?谢谢!(从代码中可以看出,y 数组包含大约 21000 个点,因此在这里复制和粘贴我的数据可能是不允许或不可取的。我很高兴上传包含数据的文本文件 'Yvalues.txt' 但我还没有办法做到这一点)
python - 细化/最小化三次样条控制点(“自动平滑”)
简写
给定一组离散的 [x, y] 点,你能否推导出一个逼近 [x, y] 点并满足两个约束条件的连续函数:
- 它满足给定的(最大)均方误差。
- 它最大限度地减少了控制点的数量。
?
细节
这确实是一个嵌入式系统问题,但让我解释一下。我需要连接一个可以设计得更好的模拟硬件。但是——像往常一样——纠正硬件缺陷是嵌入式系统工程师的责任。
蓝点取自实际测量,红线是 scipy 在点之间的三次插值。
问题在于,由此产生的 82 多个控制点创建了太多的数据,无法填充到客户端极小的微控制器中。(我正在显示整个数据集的一个子集。)
所以我的问题是:如何最大限度地减少样条控制点的数量并保持在某个给定的 MSE 范围内?
对于有动机的
这是上图中使用的一组 x 和 y 点。
ps
请注意,我并不特别喜欢三次样条曲线。我愿意接受任何紧凑的表示来近似 [x, y] 函数,该函数在微控制器上扩展的计算成本并不高。
c++ - 使用三次样条计算点中的函数
我正在尝试使用三次样条计算一个点中的函数。
这是我的代码:
我希望(x-2)*8
函数在 2 点的结果是0
,但我得到的是-16
。
如果有人知道,请告诉我这里出了什么问题。如果有人知道,请告诉我这里出了什么问题。如果有人知道,请告诉我这里出了什么问题。如果有人知道,请告诉我哪里出了问题在这里。如果有人知道,请告诉我这里出了什么问题。如果有人知道,请告诉我这里出了什么问题。
实际上我从这里拿了代码。它仅用于学习目的。
plot - 如何在 GAM 中可视化自然三次样条 (ns)
按照上面的代码,我可以得到这样的图:在此处输入图像描述
现在,我想使用 GAM 中的 ns() 函数得到一个类似的图:
但是当我在 R 中运行代码时,它显示“没有要绘制的术语”,所以我想知道如何绘制这张图片?谢谢!
c - 如何精确计算双精度型数据以解决 C 中的三次样条插值?
这是我在 Visual Studio 2017 环境中编写的部分源代码。给定全局初始化数组 x,y 数据。我必须对这些数据进行三次样条插值。但是在执行之后,样条结果在给定点上的结果几乎没有什么不同。我认为样条和 TDMA 函数没有逻辑问题。也许这些问题来自存储无理数。你们能解释一下为什么会发生这个错误以及如何修复代码吗?
c - GSL:样条线之间共享加速器
我正在使用GSL进行很多三次样条插值。假设我有三个自变量和a
,它们都在相同的物理数据点上制表(它可能是以米、英尺和英里为单位测量的同一组位置),以及两个因变量和,都在相同的点上制表。也就是说,函数、 、 、和的数据被制成表格。我现在为这些函数制作 6 个三次样条,如下所示的样条:b
c
y
z
y(a)
y(b)
y(c)
z(a)
z(b)
z(c)
y(a)
其中size
是a
和y
数组的大小(所有六个数组的大小相同)。
我的问题:我真的需要为每个样条曲线单独的加速器吗?这种方式是否更快,跨多个样条线共享加速器是否安全?
python - 使用三次样条进行插值的运行时警告
我必须开发一个数据窥探功能,在其中我将我的数据集(在 pandas 数据框中)分成更小的部分,并在那里插入一个三次样条曲线(在我的例子中是 Z 值)。为此,我使用了 interpolate.interp2d
函数scipy
Then 我从估计的高度值中减去给定的高度值以获得残差,在这里我可以应用 3 sigma 阈值并删除具有最高异常值的行。
但是当我运行我的代码时,我收到以下警告:
这是我创建的代码:
我用于 sigme_size 3 和 step_size = 50 有足够的数据点用于样条计算。除了消除数据点之外,使用该函数后异常值仍然存在。
有人知道如何解决这个问题吗?
非常感谢!