我现在在互联网上搜索了一个小时没有成功,但在我的生活中,我找不到使用splinefun
时method='fmm'
如何使样条精确拟合一组点的解释(由于Forsythe,Malcolm和Moler的方法。我知道以下内容:
使用N节点拟合三次样条是(N-1)* 4个未知数的问题。通过假设样条在结处是平滑的(精确地说:它的一阶和二阶导数是连续的),假设样条经过所有结和(N-2)* 2条件,得到(N-1)* 2个等式。这留下了两个条件来确定样条曲线。通过假设二阶导数在端点处为零来找到自然立方。但fmm
做了不同的事情。据我所知,它适合一个精确的立方体到一个结的子集(哪个结?)然后在样条上施加这个立方的某些导数(这些导数在哪里评估?)。
答案 0 :(得分:7)
正如您已正确指出的那样,完全定义样条曲线还需要两个条件。在splinefun
的R文档中,引用了以下书籍:
获得本书中描述的剩余两个条件的方法使用顺序数据每一端的最后和前四个点来拟合三次多项式。这很容易实现,因为四点足以完全定义立方体。从这些多项式中的每一个,使用三阶导数(立方体的常数)作为边界条件。对于顺序数据x_1,... x_n,样条函数为s(x),并且在c_1(x),c_n(x)两侧都有拟合的立方体,因此剩下的两个边界条件
s''(x_1)= c_1'''
''(x_n)= c_n'''
答案 1 :(得分:0)
根据以下网站上的文档,splinefun可用于评估插值三次样条(deriv = 0)或其衍生物(deriv = 1,2,3)到数据每端的四个点。 http://stat.ethz.ch/R-manual/R-patched/library/stats/html/splinefun.html http://www.astropa.unipa.it/CF/DOC/R/vol2.pdf
答案 2 :(得分:0)
最有可能是使用四个最低x点和四个最高x点来估计边界导数,而不是假设它们为零,尽管如果你有很多数据点那么边界应该不重要尽可能多。如果你想要一个更具体的答案,也许举例说明你想要做什么。