问题标签 [splines]

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

r - MGCV 获取设计矩阵

以样条为基础的 GAM 回归由以下成本函数定义:

cost = ||y - S \beta ||^2 + scale * integral(|S'' \beta|^2)

其中S是由样条定义的设计矩阵。

在 RI 中可以gam使用以下代码进行计算:

我想获得由函数S生成的设计矩阵。s()

我怎样才能做到这一点?

0 投票
0 回答
140 浏览

c - 整数算术中的样条?

样条曲线(分段三次多项式形式)可以写成:

其中x[k] < x < x[k+1],曲线通过每个(x[k], y[k])点,a,b,c 是描述斜率和形状的系数数组。这一切都可以在浮点数中正常工作,并且有很多方法可以为不同种类的样条计算 a、b、c。然而...

这如何用整数算术近似?

棘手的部分之一是,理想情况下,任何近似值都应该是连续的,换句话说,使用x=x[k+1]来自第 k 段的系数,结果应该是y[k+1]舍入误差除外。换句话说,对于直线段,y[k+1] == y[k] + a[k]*(x[k+1] - x[k])和弯曲段仅在中间偏离此,而在两端均不偏离。在浮点的情况下,这是通过构造来保证的,但即使是舍入后的很小的系数变化也可能会使其偏离很多。

另一个棘手的部分是,一般来说,高阶系数的幅度要小得多——但并非总是如此,尤其是。不在尖锐的“角落”。将它们按 s 的典型大小放大到它们的任何顺序的幂仍然是有意义的,因此它们不会作为整数四舍五入到零,但这似乎会以曲率分辨率换取最大可能的角锐度.

首先尝试整数版本:

然后使用整数乘法(用于 16 位值,32 位算术):

这在理论上看起来不错,但我不确定这是最好的方法,或者如何系统地告诉最好的方法是什么。

0 投票
1 回答
148 浏览

matlab - 使用实验数据进行双重积分

我需要使用实验数据执行双重积分,但我的积分限制对于每个积分都是相同的,在这种情况下是时间。数学上我需要计算:

E [ a 0 + ∫<sub>0 T a(t)dt ] = a + lim Tx → ∞</sub> (1/T) ∫<sub>0 T ∫<sub>0 t a dt dT

经过一番搜索,我到达了:

代码需要很长时间才能运行并提供巨大的价值。我认为我的问题是 Matlab 可能无法处理样条曲线,但我不知道如何解决。

0 投票
2 回答
1629 浏览

python - Python/Scipy 中的分段常数或 0 度样条插值

尽管 scipy 的文档表明scipy.interpolate.UnivariateSpline将以 k<=5 的顺序运行,但实际上,对于 >=1 的顺序还有一个额外的约束。有谁知道用 Numpy/Scipy 实现 0 度样条或分段常数插值的方法?

0 投票
1 回答
1034 浏览

graphviz - 使用端口graphviz时的折线边缘

我正在使用 Graphviz 创建一个带有类似 HTML 标签的节点的图形。我的点文件:

我正在使用端口来定义节点上我想与其他节点连接的位置。附上dot生成的图片。

我想将边缘绘制为折线而不是曲线。我试图修改图形的 splines 属性,但它不起作用,实际上从 graphviz 文档中我发现了这一点:“值 ortho 指定边缘应路由为轴对齐段的折线。目前,路由不处理端口或以点表示的边缘标签。”

您能否帮助找到使用端口的折线(或更好看的边缘)的解决方案?

谢谢。

0 投票
1 回答
75 浏览

r - 如何制作分段常数公式项?

我可以为这样的分段线性样条生成模型矩阵:

但 0 度样条(即阶跃函数)是不允许的:

是否有一种正统的方法可以在 R 中构建这些,最好是可以用作模型公式术语的方法?我敢肯定我可以破解一些东西,但我想要惯用的方式,如果它存在的话。

0 投票
0 回答
113 浏览

r - 如何将 ns/bs 的输出列放入 R 中的 data.table 中?

我有一个data.table功能,例如:

通常,如果我想对其中的一个功能进行自然样条基础扩展,lm我可以执行以下操作:

但是,如果我只想将样条基础列添加到我的 data.frame 以供以后使用,则以下内容不起作用:

有没有一种优雅的方式来分配它们?无需手动提取这样的列:

0 投票
0 回答
104 浏览

genetic-algorithm - 关于 BSplines 和 Beziers

我正在做一个小型绘图测试程序,我正在绘制曲线。

虽然贝塞尔曲线很容易,但我还是坚持使用样条曲线。与第一个一样,当我在窗口中单击时,我添加了一个结,但老实说,我不知道如何从这里绘制曲线:如何像使用 Beziers 一样计算值(见下文)?

0 投票
0 回答
181 浏览

html - SVG keySplines 动画问题/错误

在 keySplines 的情况下,SVG 动画似乎存在问题。我正在使用谷歌浏览器 v46.0

svg代码,

如您所见,它是一个简单的矩形动画,它沿着标记中定义的路径进行动画处理,其中定义了 2 段 keySplines,其中第 1 段 0 1 0 1 是非线性的,而第二段 0 0 1 1 给出线性插值。我已经可视化了路径,它是一条白色和黄色的直线,分别表示第一段和第二段。

对于第一段,矩形应该从白线的起点到白线的终点(作为其中心)。对于第二段,它应该从黄线的起点到黄线的终点(作为其中心)。

但在这种情况下并没有发生这种情况。当我将第一段 keySpline 从 0 1 0 1 更改为 0 0 1 1 时,动画按预期运行。

我在某个地方出错了还是这可能是 chrome 中的错误?

谢谢 !

0 投票
0 回答
1753 浏览

r - 在 R 中绘制 B 样条曲线

我正在尝试为具有 40 个内部结的 106 数据集创建 4 阶 B 样条基础。到目前为止,我所看到的所有绘制的基函数都由非常平滑且分布良好的曲线组成,而我的曲线很尖,通常看起来很丑。与结相比,这是数据点比率如此之低的特性,还是我做错了什么?

如果它是一个属性,我应该在创建样条基础之前生成更多数据吗?

更多尖峰基函数