matlab多项式拟合体会,多项式拟合——用Matlab实现并分析

多项式拟合——用Matlab实现并分析

1、问题

编程实现多项式拟合例子,体会overfitting。

2、方法

可以使用matlab中的方法实现多项式拟合。polyfit(x,y,n),其中n表示预测的多项式为n次。[p,S] = polyfit(x,y,n),p返回的是多项式的系数,S返回的有R,df以及normr,分别代表triangular factor,  degrees of freedom,  the norm of the residuals

3、具体实现

Matlab代码:

x=[0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3.0000]

y=[2.0000 2.3780 3.9440 7.3460 13.2320 22.2500 35.0480 52.2740 74.5760 102.6020 137.0000]

%一次多项式模拟

P=polyfit(x,y,1);

xi=0:0.1:3.5;

yi=polyval(P,xi);

plot(xi,yi,x,y,'r*');

[a,b]=polyfit(x,y,1)

运行结果:

a =  42.4080  -22.4620

b =  R: [2x2 double]

df: 9

normr: 56.0082

0818b9ca8b590ca3270a3433284dd417.png

图1

%二次多项式模拟

Q=polyfit(x,y,2);

yi=polyval(Q,xi);

plot(xi,yi,x,y,'r*');

[a,b]=polyfit(x,y,2)

运行结果

a =  21.0000  -20.5920    5.8880

b =   R: [3x3 double]

df: 8

normr: 8.4886

0818b9ca8b590ca3270a3433284dd417.png

图2

%三次多项式模拟

W=polyfit(x,y,3);

yi=polyval(W,xi);

plot(xi,yi,x,y,'r*');

[a,b]=polyfit(x,y,3)

运行结果

a =  4.0000    3.0000   -0.0000    2.0000

b =  R: [4x4 double]

df: 7

normr: 6.6125e-14

0818b9ca8b590ca3270a3433284dd417.png

图3

4、结果分析

图1过于简单,属于under-fiting,图2正合适,存在恰当偏离曲线的点,图三所有点全部吻合,不符合实际,因为实际数据总有误差,属于over-fiting。综上,图2正合适,拟合的函数由运行结果可得:

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值