请教,三次样条插值,节点若是等间距的话,节点间距对插值点的结果是不是不影响? 比如,我有0~10,11个节点,这些地方的值知道。现在要插值得出0~1之间点的值,那我把0和1处的x值看成1或2,也就是x0=0,x1=1或是x0=0,x1=2,得出他们中间的插值点的值是一样的吗?
求三次样条插值程序,是知道一系列等间距点和该出的值,求这些点中间处的插值点的值。
X=0:1:10;
Y=[1.5, 2.0 ,-4.6 ,6.3, 2.9, 5.5, -2.4, 3.8, 4.1, 6.6, 5.3]
你有三次样条插值程序吗?这上面一组数,在中点处(0.5,1.5~8.5,9.5)插值,边界条件是两端点2次导数为0,得到的值(10个数)是多少?
还有,插值节点有个数限制吗? 为什么看到有些程序要求插值点不能超过多少个?
不管什么程序任何东西的个数都是有上限的。。计算机的存储空间又不是无穷大。。。
而且计算机自身还有舍入误差问题,每计算一次都会有一个机器精度级别的误差,计算量高到一定程度之后,舍入误差的累积会超出人们可接受的范围,所以平常任何计算量较大的程序都可能会对点的个数进行限制。这个跟三次样条插值方法自身没有很大的关系。
所以才有要考虑误差的范围的专门的误差分析的学科。
你没有这方面的书吗?书上都有很直接的公式,才10个点你自己手动算一下那个矩阵(10个点的话只要算大约30多个式子的值)到Matlab里直接求逆乘上右边的就可以了。你要完整的程序的话直接抄别人的好了,我这里没有。
额... 回答得很详细啊,thks.
直接点吧。我的这个插值节点接近100个。我自己编了个程序,感觉没问题,但用matlab检查时发现有些小差别。然后看网上的几个程序,他们的程序里要求插值节点最多不超过60个,也有的人定义不超过20个。我只想问,他们为什么把插值节点定这么小?