问题标签 [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.

0 投票
1 回答
977 浏览

graphics - 使用 Spline 表示曲线有什么好处?

经常听到关于使用样条曲线建模的曲线。使用样条有什么好处?

0 投票
1 回答
148 浏览

math - 控制点的数量是否总是比拟合点的数量多 2?

我想知道控制点的数量是否总是比拟合点的数量多 2。特别适用于三次样条。

0 投票
1 回答
647 浏览

math - 结点和拟合点有什么区别?

对于样条曲线,节点和拟合点有什么区别?

我知道拟合点总是在曲线上,结有什么用?

0 投票
2 回答
1408 浏览

r - R中非线性最小二乘内的样条

考虑 R 中的非线性最小二乘模型,例如以下形式):

(我真正的问题有几个变量,外部函数不是逻辑的,而是涉及更多;这个更简单,但我认为如果我能做到这一点,我的案例应该几乎立即跟进)

我想用(比如说)自然三次样条代替术语“alpha + beta * x”。

这是一些代码,用于在逻辑中创建一些具有非线性函数的示例数据:

不需要围绕它的逻辑,如果我在 lm 中,我可以很容易地用样条项替换线性项;所以一个线性模型是这样的:

然后变成

生成拟合值很简单,借助 rms 包(例如)获取预测值似乎很简单。

确实,用基于 lm 的样条拟合来拟合原始数据并不算太糟糕,但我在逻辑函数中需要它是有原因的(或者更确切地说,是我的问题中的等价物)。

nls 的问题是我需要为所有参数提供名称(我很高兴将它们称为 (b1, ..., b5) 用于一个样条拟合(并且说 c1, ... , c6 用于另一个变量- 我需要能够制作几个)。

是否有一种相当简洁的方法可以为 nls 生成相应的公式,以便我可以用样条曲线替换非线性函数中的线性项?

我能想到的唯一方法是有点笨拙和笨拙,并且如果不编写一大堆代码就不能很好地概括。

编辑澄清)对于这个小问题,我当然可以手工完成 - 为ns生成的矩阵中每个变量的内积写一个表达式, 乘以参数向量。但是然后我必须为每个其他变量中的每个样条再次逐项编写整个内容,并且每次我更改任何样条中的 df 时,如果我想使用 cs 而不是 ns,则再次编写。然后当我想尝试做一些预测(/插值)时,我们会遇到一系列全新的问题需要处理。我需要一遍又一遍地继续这样做,并且可能需要大量的结和多个变量,以便在分析后进行分析 - 我想知道是否有比写出每个单独的术语更简洁、更简单的方法,无需编写大量代码。我可以看到一种相当牛逼的方法来做到这一点,这需要相当多的代码才能正确,但是作为 R,我怀疑有一种更简洁的方法(或者更可能是 3 或 4 种更简洁的方法) ' 只是在躲避我。因此问题。

我以为我过去曾看到有人以相当不错的方式做这样的事情,但是对于我的生活,我现在找不到它;我已经尝试了很多次才能找到它。

[更具体地说,我通常希望能够尝试拟合每个变量中的几个不同样条曲线中的任何一个 - 尝试几种可能性 - 以查看我是否可以找到一个简单的模型,但仍然是一个适合的模型足以达到目的(噪音真的很低;拟合中的一些偏差可以达到很好的平滑结果,但只能达到一定程度)。它比任何接近推理的方法都更“找到一个好的、可解释的但足够的拟合函数”,而数据挖掘对于这个问题来说并不是一个真正的问题。]

或者,如果这在 gnm 或 ASSIST 或其他软件包之一中会更容易,那将是有用的知识,但是关于如何使用它们处理上述玩具问题的一些指示会有所帮助。

0 投票
1 回答
637 浏览

c++ - 带有 SIMD 指令的平滑样条曲线

我在我的代码中使用这种类型的样条曲线,我想知道该算法是否可以从使用 SIMD 指令中受益。(ARM 上的 NEON)使用的代码是以下源代码的 C 翻译(在 Fortran 中):

根据您的经验,您能否判断此代码​​是否有机会通过使用 SIMD 指令进行优化?

是否有使用 SIMD 指令将代码从“普通”代码转换为代码的指南?

谢谢

0 投票
3 回答
4862 浏览

algorithm - 样条曲面插值

假设我有 n 个点定义 z 轴上的表面

现在我希望能够近似 f(x,y)。我正在寻找一种线性算法,尤其是样条近似算法。一个示例算法或至少一些指针会很棒。

0 投票
2 回答
11202 浏览

r - 使用 glm() 内 splines 包中的 ns() 函数

我正在尝试将splinesns()包中的函数与我用来测试颗粒物浓度 ( ) 对健康结果 ( ) 的显着性的泊松 GLM 一起使用:pm.lag0Freq

我得到了这些错误:

这不是有效的使用ns()吗?有人可以帮我解码此错误消息吗?R 提供的样条曲线文档似乎与此错误不匹配(?ns)。

0 投票
2 回答
10582 浏览

python - 三次样条 Python 代码生成线性样条

编辑:我不是在找你调试这段代码。如果您熟悉这个众所周知的算法,那么您可能会有所帮助。请注意,该算法会正确生成系数。

三次样条插值的这段代码正在产生线性样条,我似乎无法弄清楚为什么(还)。该算法来自 Burden 的数值分析,与此处的伪代码几乎相同,或者您可以从评论中的链接中找到该书(参见第 3 章,无论如何都值得拥有)。该代码正在产生正确的系数;我相信我误解了实施。非常感谢任何反馈。另外,我是编程新手,所以也欢迎任何关于我的编码有多糟糕的反馈。我尝试用 h、a 和 c 上传线性系统的图片,但作为新用户,我不能。如果您想要算法求解的三对角线性系统的视觉效果,并且由 var alpha 设置,请参阅本书评论中的链接,请参阅第 3 章。该系统是严格对角占优的,所以我们知道那里存在唯一解 c0,...,cn。一旦我们知道了 ci 值,其他系数就会随之而来。

对于无聊的人,或成绩优异的人...

下面是测试代码,区间为 x: [1, 9], y:[0, 19.7750212]。测试函数是 xln(x),所以我们从 1 开始并增加 0.1 直到 9。

...并用于绘图:

0 投票
1 回答
1457 浏览

math - 如何在自然三次样条中找到时间 t 的切线

我使用 Tim Lamber 的算法绘制了一条自然样条三次曲线。

NatCubic

NatCubic 类计算点数组的三次方 (abcd) 系数。

a + b*u + c*u^2 + d*u^3 0<=u <1

和 Cubic 类计算 [0-1] 中时间 t 处曲线上的点。

三次类中的 b 是 i 处节点处的导数

我的问题是:如何找到 t >0 <1 处的切线

谢谢!

PS:

为了澄清我的问题,我搜索时间 t 的切线,例如使用每个控制点的预先计算的系数 (abcd) 的 0.5。这是为了避免计算点 (t+1) 以通过 y(i +1) - y(i-1) 找到切线

对不起我糟糕的英语。

你可以在这张照片中看到我想做的事

0 投票
1 回答
175 浏览

math - 从一组点计算样条的最佳计数

此任务类似于 Photoshop 中的 FreePen 等工具。

需要将一组点(我们从鼠标输入中获取)插入到最佳样条数中。

我只是不知道在哪里看。