R 带方法='的splinefun;fmm&x27;

R 带方法='的splinefun;fmm&x27;,r,spline,R,Spline,我已经在互联网上搜索了一个小时没有成功,而且我一生都找不到一个解释,说明在使用method='fmm'时,splinefun如何准确地将样条曲线拟合到一组点(该方法由福塞斯、马尔科姆和莫勒提出)。我知道: 拟合具有N个节点的三次样条曲线是一个具有(N-1)*4个未知量的问题。通过假设样条曲线通过所有节点得到(N-1)*2方程,并通过假设样条曲线在节点处平滑得到(N-2)*2条件(精确地说:其一阶导数和二阶导数是连续的)。这将留下两个条件来固定样条曲线。通过假设二阶导数在端点处为零,可以找到一个自

我已经在互联网上搜索了一个小时没有成功,而且我一生都找不到一个解释,说明在使用
method='fmm'
时,
splinefun
如何准确地将样条曲线拟合到一组点(该方法由福塞斯、马尔科姆和莫勒提出)。我知道:


拟合具有N个节点的三次样条曲线是一个具有(N-1)*4个未知量的问题。通过假设样条曲线通过所有节点得到(N-1)*2方程,并通过假设样条曲线在节点处平滑得到(N-2)*2条件(精确地说:其一阶导数和二阶导数是连续的)。这将留下两个条件来固定样条曲线。通过假设二阶导数在端点处为零,可以找到一个自然立方。但是
fmm
做了一些不同的事情。据我所知,它将一个精确的三次曲线拟合到一个节点子集(哪个节点?),然后将该三次曲线的某些导数施加到样条曲线上(哪些导数在哪里计算?)。

从以下网站上的文档中,splinefun可用于计算插值三次样条曲线(deriv=0)或其导数(deriv=1,2,3)通过数据两端的四个点。

正如您正确指出的,完全定义样条曲线还需要另外两个条件。在
splinefun
的R文档中,引用了以下书籍:

福赛斯,G.E.,马尔科姆,M.A.和莫勒,C.B.(1977)数学计算的计算机方法。威利

本书中描述的获得剩余两个条件的方法使用序列数据两端的最后和前四个点拟合一个三次多项式。这很容易实现,因为四个点足以完全定义一个三次多项式。从这些多项式中的每一个,三阶导数(三次多项式的常数)用作边界条件。对于具有样条函数s(x)的序列数据x_1,…x_n和c_1(x),c_n(x)两侧的拟合立方体,剩余的两个边界条件如下所示

s''(x_1)=c_1''


s''(x_n)=c_n''

我不确定这对我有什么帮助。手册上说“通过数据两端的四个点拟合一个精确的立方,这用于确定结束条件”,但没有确切说明施加了什么结束条件。