三次样条拟合带来的奇怪问题
大家可以试一下A=;
B=; pp=spline(A,B); =unmkpp(pp)
y=ppval(pp,500);
得到得系数,代入拟合后得到得三次多项式中f(x)=a0*x^3+a1*x^2+a2*x+a3。
按道理f(500)应该等于y,但是就是不相等,不知道出现什么问题?难道是漏洞? 取其他值也不相等!
coefs =
-0.0000 0.0001 0.0019 0.4771
-0.0000 0.0000 0.0061 0.6021
0.0000 -0.0001 0.0055 0.7782
-0.0000 0.0002 0.0096 1.0000
0.0000 0.0000 0.0138 1.3010
-0.0000 0.0001 0.0158 1.7781
0.0000 -0.0002 0.0141 2.0000
0.0000 0.0007 0.0236 2.3010
0.0000 0.0016 0.0631 3.0000
f(500)= -0.0000*500^3+0.0001*500^2+ 0.0019 *500 +0.4771=26.4271并不等于y=ppval(pp,500)=0.47712
[ 本帖最后由 eight 于 2008-1-8 15:09 编辑 ] spline是三次样条插值,不同于f(x)=a0*x^3+a1*x^2+a2*x+a3三次多项式,如果按照你这样算,ppval函数就没有存在的价值了吧。看看三次样条的原理吧。我也曾经怀疑matlab某某函数有bug,其实都是自己bug。
页:
[1]