问题标签 [bspline]
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.
r - 样条曲线拟合和平滑
我正在尝试使用样条曲线拟合曲线。
当我研究它时,结和控制点是制作曲线的重要因素。
然而,支持制作样条曲线的函数,没有关于控制点的参数。(包括关于结的论点......)
这是我想用于曲线拟合的函数。
bs
和smooth.spline
r 中的函数。
你能解释一下控制点和节点之间的关系吗?
以及如何为我的数据集确定合适的结数?(坐标数据,三次样条,想用样条做轨迹)
这个问题可能很幼稚,请为幼稚的工程师回答。
谢谢。
java - BSpline 导数At() 方法不返回正确的值
我在使用 BSpline 路径时遇到了导数At() 方法的问题,因为它没有返回正确的值,但是导数At() 方法适用于 CatmullRomSpline 路径,所以这是特定于 SPline 的东西。wiki 和 API 没有提到 SPline 需要与其他路径区别对待......我是否在 SPline 中缺少某些东西,或者这是 LibGDX 的错误?
我做了一个简单的程序来显示问题。它使用应该指向与路径相同方向的导数At() 方法绘制控制点(黄点)、路径本身(浅灰色线)和切线(绿线)。
这是它应该做的。CatmulRomSpline 工作正常,因为绿色切线指向与路径相同的方向:
这是 BSpline 的作用。切线指向不同的方向,这些方向不是路径的方向:
这是我的代码。任何帮助使其正常工作将不胜感激。
r - 使用约束 B 样条逼近形状轮廓
我正在寻找一种可能性来生成约束样条曲线以近似形状(在我的情况下,是足迹轮廓)。作为原始数据,我有一个包含数百个 xy 坐标对的表格,它们是从足迹边界收集的。样条应该只逼近数据点(样条不需要传递数据点)。我希望能够在一定程度上平滑样条曲线。此外,我需要能够约束样条:定义样条必须通过的几个关键数据点。
R 包“cob”(COnstrained B-Splines,https ://cran.r-project.org/web/packages/cobs/index.html )非常接近提供解决方案,提供参数以根据需要约束样条. 但是,此包不会通过有序的数据点序列进行样条曲线化,这在您希望样条曲线遵循形状边界时当然是至关重要的。我尝试分别对 x 和 y 坐标进行样条线,但是在将它们重新组合后,图中出现了两个不同的形状,所以这似乎不起作用(或者我有什么问题?)。有人知道解决方案吗?
更新:工作示例(恐龙足迹轮廓)
数据.txt:
结果图的图像
r - 纵向序列数据的三次样条法?
我有一个格式如下的串行数据:
一般有300只动物在短期内不同时间点有产奶记录。但是,如果我们将它们的数据连接在一起并且不关心不同的animal_ID,我们会在milk~time之间有一条曲线,如下图所示: 另外,在上图中,我们有1个示例动物的数据,它们是短的和高度可变的。我的目的是平滑每个动物数据,但如果模型允许从整个数据中学习一般模式,那就可以了。我使用了具有以下格式的不同平滑模型(ns、bs、smooth.spline),但它不起作用:
我希望如果有人已经处理过这个问题会给我一个建议。谢谢完整的数据集可以从这里访问: https ://www.dropbox.com/s/z9b5teh3su87uu7/dat.txt?dl=0
matlab - 如何使用 MATLAB 在断点(不仅结束)处制作具有特定一阶导数值的 B 样条曲线?
我csape
在曲线拟合工具箱中使用了函数,它使用户可以选择两端的导数值。
有没有办法控制特定断点的导数值?
我想在一个断点处将导数的值之一设置为零,以使其成为最大值。
这是代码:
在评论之后,%% Spline generation using cubic spline.
我有两个向量,一个用于时间,一个用于另一个随时间变化的值,我想制作三阶 b 样条。
我使用csape
它是因为它使用户能够确定端点的导数值。cs = csape(tt,zz,[1 0 0 0 1],[0 0 0 0 0])
那些是告诉工具在端点处进行一阶导数 = 0。
我希望时间 = tmaxh 出现的点是样条曲线上的最大值。
我尝试通过在其中放置 1 来实现这一点,[1 0 0 0 1]
因此[1 0 1 0 1]
我知道一阶导数最多为 0,但这种方法对我不起作用。
谢谢你。
r - 使用样条曲线的 bs() 函数时如何解释 lm() 系数估计
我正在使用一组点,它们从“对称 V 形”(-5,5)
到“对称 V 形”。我正在拟合一个模型以及拟合“V 形”样条的函数:(0,0)
(5,5)
lm()
bs()
predict()
当我预测结果并绘制预测线时,我得到了“V形” 。但是当我查看模型估计coef()
时,我看到了我不期望的估计。
我希望-1
第一部分有一个+1
系数,第二部分有一个系数。我必须以不同的方式解释估计吗?
lm()
如果我手动填充函数中的结,则得到这些系数:
这还差不多。Z(结点)与 x 的相对变化为 ~ +1
我想了解如何解释bs()
结果。我查过,手动和bs
模型预测值是完全一样的。
python - B-splines with Scipy : can I add a datapoint without full recompute?
I have a bspline created with scipy.interpolate.splrep with points (x_0,y_0) to (x_n,y_n). Usual story. But I would like to add a data point (x_n+1,y_n+1) and appropriate knot without recomputing the entire spline. Can anyone think of a way of doing this elegantly?
I could always take the knot list returned by splrep, and add on the last knot of a smaller spline created with (x_n-2, y_n-2) to (x_n+1,y_n+1) but that seems less efficient than it could be.