请matlab高手过来看看 怎么用b样条曲线拟合离散点

请高手帮我写下程序 小弟不胜感激~~~~~~~~~~~~
x=1:20

y=[42 45 47 49 52 59 66 74 85 98 111 125 136 147 157 162 164 167 168 168]

一共20个 离散点 我想用 matlab 用b样条曲线拟合 并且得到这个函数 大家来帮我下 我看了下matlab的 语句 但是我自己做是错误的~

第1个回答  2021-03-01

73.Caxa中圆弧拟合样条曲线命令怎么使用?

第2个回答  2014-04-29
你没有附上你的matlab代码啊~你再检查下,也好让网友帮你解答,祝好追问

小弟就是不懂 才发的帖子 我在网上找的套没用

追答

我刚查了下,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

所以拟合结果是:

这是个人愚见,希望对你有帮助,有疑问请追问,若满意还望采纳,祝生活愉快!

追问

polyfit不是采用的最小二乘? 属于 b样条曲线的方法?

本回答被提问者采纳
相似回答