3组数据拟合 matlab,[讨论]用matlab对一组数据拟合
在本论坛乱逛,无意间发现一道题目,对初学matlab拟合者或许有参考意义。我们现在来做其中的第一道拟合的题。题目重述如下:用表所给数据做2次和3次多项式拟合。试结合多项式拟合曲线对所得结果进行比较分析! z2 a$ G/ e; g8 I: Q' f% I( sL" n9 ]. C6 H, E拟合数据& L+ m$ C4 h; h; C5 j5 I" h% ?) v+ r% {Xi-10..
在本论坛乱逛,无意间发现一道题目,对初学matlab拟合者或许有参考意义。
我们现在来做其中的第一道拟合的题。
题目重述如下:
用表所给数据做2次和3次多项式拟合。试结合多项式拟合曲线对所得结果进行比较分析
! z2 a$ G/ e; g8 I: Q' f
% I( s L" n9 ]. C6 H, E
拟合数据
& L+ m$ C4 h; h; C5 j
5 I" h% ?) v+ r% {
Xi-10-9-8-7-6-5-4
Yi-1324-994-724-508-340-214-124
Xi-3-2-10123
Yi-64-28-10-4-4-42
Xi45678910
Yi2056116206332500716
8 A9 t6 T3 s( R$ H9 h O+ E
我们需要观察数据的变化趋势,用matlab画出散点图来。
先对数据进行处理得到:
x=-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
y=-1324 -994 -724 -508 -340 -214 -124 -64 -28 -10 -4 -4 -4 2 20 56 116 206 332 500 716
绘制散点图。
程序如下:
clear all
x=[-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10];
y=[-1324 -994 -724 -508 -340 -214 -124 -64 -28 -10 -4 -4 -4 2 20 56 116 206 332 500 716];
plot(x,y,'+')
运行后得到的图像:
7 i2 q7 S( d* g$ O% p# ?
可见,图像的变化趋势是一个比较理想的3次函数图像。对此,我们用3次函数进行拟合。
程序如下:
clear all
format long
x=[-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10];
y=[-1324 -994 -724 -508 -340 -214 -124 -64 -28 -10 -4 -4 -4 2 20 56 116 206 332 500 716];
[p,r]=polyfit(x,y,3)
运行后的结果为:
p =
1.00000000000000 -3.00000000000000 1.99999999999999 -4.00000000000000
r =
R: [4x4 double]
df: 17
normr: 3.184820221315369e-013
故,拟合的三次函数为:
y1=x.^3-3*x.^2+1.99999999999999*x-4
我们再做出拟合后的函数图像与原来的散点图进行比较,看看拟合的效果;
程序如下:
clear all
x=[-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10];
y1=x.^3-3*x.^2+1.99999999999999*x-4;
y2=[-1324 -994 -724 -508 -340 -214 -124 -64 -28 -10 -4 -4 -4 2 20 56 116 206 332 500 716]
plot(x,y1,x,y2,'r+')
运行后得到的图像如下:
# M, y, Q8 s8 a* @3 K$ B" o8 o
结果非常的理想。
4 D5 s0 ?3 P/ t( x0 u5 w
[此贴子已经被作者于2008-2-11 13:09:11编辑过]
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)