Hermite样条的求根

Hermite样条的求根,r,spline,R,Spline,Hermite样条的求根 我有一个关于StackOverflow中已经讨论过的问题 他们告诉我们,对于stats::splinefun使用“fmm”、“natural”、“periodic”和“hyman”方法返回的三次插值样条,函数RootSpline3提供了稳定的数值解。现在,如果我使用“monoH.FC”,RootSpline3函数会工作吗?我确实试过了,但似乎不起作用。您能告诉我的代码有什么错误吗(为什么长度参数无效)?要么我的代码是错误的,要么它对这个特定的方法不起作用?如果是,我需

Hermite样条的求根 我有一个关于StackOverflow中已经讨论过的问题

他们告诉我们,对于stats::splinefun使用“fmm”、“natural”、“periodic”和“hyman”方法返回的三次插值样条,函数RootSpline3提供了稳定的数值解。现在,如果我使用“monoH.FC”,RootSpline3函数会工作吗?我确实试过了,但似乎不起作用。您能告诉我的代码有什么错误吗(为什么长度参数无效)?要么我的代码是错误的,要么它对这个特定的方法不起作用?如果是,我需要做什么?)


kne根据您使用的样条线方法,您将获得不同的
环境
。在
方法='monoH.FC'
的情况下,没有默认样条线方法(
'fmm'
)中可用的环境变量(如
$z
$c
$d

但是,仍然有一个
x
y
参数可以用monoH.FC
splinefun()
调用,这两个参数都将生成向量,并可用于绘制样条曲线拟合

使用您的数据:

s(kne)
# -1870 -14201  -3542  -3751  -2915  -2706  -2497  -3333  -2288  -4169  -5214 
# -7931 -10648 -13156 -14410 -13574 -11693  -8140  -4378  -2079
s(t)
# 10 69 18 19 15 14 13 17 12 21 26 39 52 64 70 66 57 40 22 11

plot(t, kne)
curve(s(x), add = TRUE)

根据使用的样条线方法,您将获得不同的
环境。在
方法='monoH.FC'
的情况下,没有默认样条线方法(
'fmm'
)中可用的环境变量(如
$z
$c
$d

但是,仍然有一个
x
y
参数可以用monoH.FC
splinefun()
调用,这两个参数都将生成向量,并可用于绘制样条曲线拟合

使用您的数据:

s(kne)
# -1870 -14201  -3542  -3751  -2915  -2706  -2497  -3333  -2288  -4169  -5214 
# -7931 -10648 -13156 -14410 -13574 -11693  -8140  -4378  -2079
s(t)
# 10 69 18 19 15 14 13 17 12 21 26 39 52 64 70 66 57 40 22 11

plot(t, kne)
curve(s(x), add = TRUE)

请提供一份详细的报告。例如,
Data
kne
未定义。你是否可能有一些
n\u片段
,它们是
NA
?@andrew\u reece,我已经做了一个简单的随机示例来编辑这个问题,我认为n\u片段应该是一个数字。虽然如果你试图打印它,它会给出NA,但我不明白为什么。请提供一个。例如,
Data
kne
未定义。你是否可能有一些
n\u片段
,它们是
NA
?@andrew\u reece,我已经做了一个简单的随机示例来编辑这个问题,我认为n\u片段应该是一个数字。虽然如果你试着打印它,它会给出NA,但我不明白为什么。实际上我的问题是如何找到x代表y(函数值),比如10?我试过“x[which(s(x)==10)]”,但它给出了NULL。我的意思是它给出了我们已经拥有的点的值,但没有给出其他点的值(实际上完全有意义,因为我们没有做逆插值)。我只是想知道有什么方法可以对这种特殊的方法进行逆插值。我是R方面的新手,无法编写自己的逆插值函数。实际上,我的问题是如何找到y的x(函数值),比如10?我试过“x[which(s(x)==10)]”,但它给出了NULL。我的意思是它给出了我们已经拥有的点的值,但没有给出其他点的值(实际上完全有意义,因为我们没有做逆插值)。我只是想知道有什么方法可以对这种特殊的方法进行逆插值。我是R方面的新手,无法编写自己的逆插值函数。