从R中的插值样条得到多项式系数
我有一组测量值,我想用三次样条插值从R中的插值样条得到多项式系数,r,interpolation,integral,splines,R,Interpolation,Integral,Splines,我有一组测量值,我想用三次样条插值R。因为这些都是分段多项式,所以我接下来想对插值函数进行代数积分。因此我需要系数。有办法获得这些吗? 调用spline::interspline(foo,bar)$coef似乎不会返回实际的多项式系数 样条函数的输出:spline::interspline(x,y)$coef给出了x(i)和x(i+1)之间部分的多项式系数,表示的是(x-x(i))的幂,而不是x的幂。这是有意义的,因为得到的系数大小合理,并且更容易解释:例如,每个常数项只是y(i),二次系数给出
R
。因为这些都是分段多项式,所以我接下来想对插值函数进行代数积分。因此我需要系数。有办法获得这些吗?调用
spline::interspline(foo,bar)$coef
似乎不会返回实际的多项式系数 样条函数的输出:spline::interspline(x,y)$coef
给出了x(i)和x(i+1)之间部分的多项式系数,表示的是(x-x(i))的幂,而不是x的幂。这是有意义的,因为得到的系数大小合理,并且更容易解释:例如,每个常数项只是y(i),二次系数给出x(i)处的凹度,等等
例如,此输出
> x <- c(1,3,6,9)
> y <- c(3,1,4,1)
> splines::interpSpline(x,y)$coef
[,1] [,2] [,3] [,4]
[1,] 3 -1.54054054 0.0000000 0.13513514
[2,] 1 0.08108108 0.8108108 -0.16816817
[3,] 4 0.40540541 -0.7027027 0.07807808
[4,] 1 -1.70270270 0.0000000 0.00000000
>x-y样条线::样条线间(x,y)$coef
[,1] [,2] [,3] [,4]
[1,] 3 -1.54054054 0.0000000 0.13513514
[2,] 1 0.08108108 0.8108108 -0.16816817
[3,] 4 0.40540541 -0.7027027 0.07807808
[4,] 1 -1.70270270 0.0000000 0.00000000
意味着
- 在区间[1,3]上,多项式是
3-1.54054*(x-1)+0.13513514*(x-1)^3
- 在区间[3,6]上,多项式是
1+0.08108108*(x-3)+0.8108108*(x-3)^2-0.16816817*(x-3)^3
- 在区间[6,9]上,多项式是
4+0.40540541*(x-6)-0.7027027*(x-6)^2+0.07807808*(x-6)^3
- 在区间[1,3]上,反导数是
3*(x-1)-1.54054*(x-1)^2/2+0.13513514*(x-1)^4/4
- 在区间[3,6]上,反导数是
。这里C1是x=3时先前反导数的值李>C1+1*(x-3)+0.08108108*(x-3)^2/2+0.8108108*(x-3)^3/3-0.16816817*(x-3)^4/4
- 在区间[6,9]上,反导数是
。这里C2是x=6时先前反导数的值李>C2+4*(x-6)+0.40540540541*(x-6)^2/2-0.7027027*(x-6)^3/3+0.07807808*(x-6)^4/4