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

0 投票
5 回答
17592 浏览

python - 带有 Python 的样条曲线(使用控制结和端点)

我正在尝试执行以下操作(从维基百科中提取的图像)

样条

代码的第一部分是从主要参考中提取的代码,但没有解释如何使用这些点作为控制结。

这段代码的结果如下图。

在此处输入图像描述

点是样本,蓝线是考虑到所有点的样条。红线是不适合我的。我试图将所有中间点考虑为控制结,但我不能。如果我尝试使用knots=x[1:-1]它就是行不通。我会很感激任何帮助。

简而言之:如何在样条函数中使用所有中间点作为控制结?

注意:这最后一张图片正是我需要的,它是我所拥有的(样条通过所有点)和我需要的(带控制结的样条)之间的区别。有任何想法吗? 在此处输入图像描述

0 投票
1 回答
502 浏览

javascript - 寻找三次贝塞尔控制点的算法(实现细节)

我用谷歌搜索了很多,但我发现的所有算法都使用方程式来寻找控制点。我认为有更简单的解决方案,并在 ExtJS 源代码中找到了一些实现:http: //docs-devel.sencha.com/extjs/4.1.2/source/Draw.html#Ext-draw-Draw-方法-getAnchors。它使用最近的线点之间的角度来检测控制点和一些技巧。

有人可以定义这是哪种搜索控制点的算法吗?我被困在 PI 和角度的操作中。对于这种解决问题的方式,是否有更详细和更清晰的解释或共同的想法?

0 投票
2 回答
1065 浏览

java - MPAndroid Chart如何获取Cubic LineChart上所有点的列表

我正在使用 MPAndroid 图表使用几个点绘制三次图。目前,该库连接这些点并绘制平滑图。我正在使用的代码是:

我想获取库在我给出的中间点之间绘制的所有中间点的列表,以便在数组中获得平滑曲线。有没有办法做到这一点?

谢谢

0 投票
2 回答
4127 浏览

python - 为什么 InterpolatedUnivariateSpline 返回 nan 值

我有一些数据yvs x,我想xx使用三次样条以更精细的分辨率对其进行插值。

这是我的数据集:

1.9.2
0.15.1

我正在尝试使用 scipyInterpolatedUnivariateSpline方法进行拟合,用三阶样条插值k=3,并外推为零ext='zeros'

Y 与 X

但是,正如您在这张图片中看到的那样,我的 Spline 返回NaN值 :( 有什么原因吗?我很确定我的 x 值都在增加,所以我很难理解为什么会发生这种情况。我还有很多其他数据集使用此方法进行拟合,并且仅在此特定数据集上失败。

任何帮助是极大的赞赏。感谢您的阅读。

编辑!

解决方案是我有重复的x值,但y值不同!

0 投票
1 回答
357 浏览

matlab - 样条插值 Matlab

我有以下内容:

我有 data T,它是 365 天的数据,missing是一个包含数据错误日期的向量。我需要在缺失的日子里生成估计值。但是,当我使用上述语法时,它会返回一个 0 的向量。我究竟做错了什么?

0 投票
1 回答
1397 浏览

c# - 给定点的样条法线

我已使用此链接上可用的代码来实现三次样条插值:

http://www.codeproject.com/Articles/560163/Csharp-Cubic-Spline-Interpolation

对于样条曲线中的每个点,我需要找到该点的样条曲线法线。有谁知道如何在给定点 P(x_0,y_0) 处获得样条曲线的法线?谢谢

0 投票
3 回答
15413 浏览

python - 三次样条插值获取系数

假设我在 python 中有两个数组,我希望获得(并实际使用)这些点之间的三次样条插值。(即:我希望集成该功能)。我非常喜欢使用 numpy scipy 的方法。

我知道scipy.interpolate.interp1d。但是,这只允许我评估要点,例如非常简单的功能:

现在我可以做一些简单的事情:

但是我希望进一步处理这个三次样条(即我需要得到积分)。对于手动操作我需要得到因素,所以:

(n = 元素的数量 - 这只是第 i 个三次的定义)

因此,我期望描述所有样条的元组(或二维数组)列表。- 或者一种获得第 i 个三次方的方法,并且真的,真的很想得到一个方便的“x-to-i”来找到我目前在哪个样条线。

(当然,后一个问题是在排序列表中简单地搜索大于引用的第一个值——如果需要,我可以很容易地手动完成)。

0 投票
1 回答
434 浏览

curve-fitting - 为什么 B 样条仅在基函数总和为 1 时定义?

我试图理解 b 样条。不清楚为什么<<曲线仅在阶基函数重叠的地方定义>>,其中阶数为度+1(对于三次,阶数为 4)。我还发现,当一个等于基函数阶数的数字重叠时,总和为 1,这可能与曲线从这里开始的事实有关。

第一个短语来自:http ://www-evasion.imag.fr/~Francois.Faure/doc/inventorMentor/sgi_html/ch08.html在“结序列”部分。我贴给你:

结序

0 投票
2 回答
685 浏览

matlab - 在 MATLAB 中添加分段多项式

我需要添加从多个数据集派生的分段多项式。有没有一种简单的方法可以在不插值的情况下将分段多项式相加?换句话说,给定 PP1 和 PP2,有没有办法生成 PP3(其中 PP3 保持分段多项式形式)?例如..

但不是tnew明确指定,我想要一个pp3有效的新分段多项式pp1+ pp2

示例问题的输出

0 投票
1 回答
1120 浏览

python - 如何在 scipy.interpolate 中设置三次样条插值的第一个和最后一个斜率?

我有一个包含n个二维点 (x 0 ,y 0 ),(x 1 ,y 1 ), ... (x n-1 ,y n-1 ) 的数据集,其中 x 0 < x 1 < .. . < x n-1 . 我想使用三次样条插值这个数据集,并在两个端点(x 0 ,y 0 ) 和 (x n-1 ,y n-1 ) 设置显式斜率值 S BEGIN和 S END。我的意思是,让产生的 n-1 个三次函数为 f 0 (x)=a 0 x 3 +b0 x 2 +c 0 x+d 0 , f 1 , ... , f n-2 , 然后 df 0 /dx(x 0 ) = S BEGIN , df n-2 /dx(x n-1 ) = S结束

我查看了scipy.interpolate但找不到如何将 S BEGIN和 S END设置为当前实例。

另外,我想知道如何获得每个三次样条的 4(n-1) 系数 a 0 ,b 0 ,c 0 ,d 0 ,a 1 ,...,d n-2应该全部建立在f.