我刚查了下,b样条曲线拟合就是拟合成光滑曲线。这里可以尝试Matlab的polyfit命令,我尝试了好几个,发现在5阶的时候已经非常接近了,当然如果你需要更高精度,可以继续提高阶次。
代码:
x=[1:20];
y=[42 45 47 49 52 59 66 74 85 98 111 125 136 147 157 162 164 167 168 168];
plot(x,y,'r')
hold on
p=polyfit(x,y,5)
z=p(1)*x.^5+p(2)*x.^4+p(3)*x.^3+p(4)*x.^2+p(5)*x+p(6);
plot(x,z,'b')
legend('红色原来数据曲线','蓝色直接模拟曲线')
输出结果:
p =
0.0006 -0.0315 0.5628 -3.4653 10.5082 34.1178
所以拟合结果是: