本帖最后由 alabosanhao 于 2013-11-25 12:42 编辑
各位大神,在一系列数据点用多项式拟合不能满足要求,局部偏差较大,如何实现分段连续光滑拟合或者用样条拟合?
PS:我试过从CAD中拉样条然后根据控制点或拟合点在matlab中进行样条拟合,但是这样偏差也比较大,求解决办法。
要求:matlab样条总体光滑,与多段线数据差别不大
数据如下:
cad中多段线数据
447.9357 694.4331
480.4015 738.9890
513.6212 781.2207
543.8210 806.8614
571.0008 836.2727
614.4952 863.0471
642.7115 880.4945
692.1812 897.6993
721.1962 905.2598
770.3956 912.4003
808.2412 912.4003
854.4971 908.2000
904.9580 896.8592
973.3713 875.6337
1151.6618 795.1153
1289.3522 713.4119
1435.2221 627.6234
CAD中样条控制数据:
控制点数目: 8
控制点: X = 447.9357 , Y = 694.4331 , Z = 0.0000
X = 485.1294 , Y = 745.4632 , Z = 0.0000
X = 561.8896 , Y = 850.7789 , Z = 0.0000
X = 803.6645 , Y = 951.0181 , Z = 0.0000
X = 1094.8641, Y = 829.0891 , Z = 0.0000
X = 1429.0779, Y = 637.3463 , Z = 0.0000
X = 1656.5056, Y = 477.0057 , Z = 0.0000
X = 1790.6583, Y = 382.4257 , Z = 0.0000
拟合点数目: 6
用户数据: 拟合点
X = 447.9357 , Y = 694.4331 , Z = 0.0000
X = 571.5790 , Y = 835.2698 , Z = 0.0000
X = 755.9593 , Y = 911.1050 , Z = 0.0000
X = 1087.8439, Y = 824.4362 , Z = 0.0000
X = 1385.0216, Y = 657.5989 , Z = 0.0000
拟合点 X = 1790.6583, Y = 382.4257 , Z = 0.0000
公差: 1.0000E-10