【Matlab】线性最小二乘拟合

什么是拟合?

简单来说:拟合就是用一个函数,尽量“逼近”一组数据点。

比如:

有一天早上,小明饿坏了,开始狂吃包子。

你在旁边默默记录了他每分钟吃的包子总数:

时间(分钟)吃的包子总数
12
25
39
415
522

这些点不完全在一条直线上,但你知道小明吃包子的速度是越来越快的。
你想找一个函数(比如一个二次函数)来“表示”这些数据。

于是,你选择一个函数,然后让它“尽可能靠近”这些点,这个过程就叫拟合。

线性最小二乘拟合

什么是线性最小二乘拟合?

全称叫:

最小化误差平方和的方法,来拟合一条最优的线性函数

简单解释就是,我们要进行拟合,但是拟合后的结果会有误差,我们通过让误差平方和最小来找到最优的线性函数。这就是最小二乘法。

这是最基本的一种数据拟合方法,其核心思想是:

用一条“最接近”数据点的直线(或函数)去拟合这些数据,使得所有点到这条线的“垂直距离的平方和”最小。

通俗来说,就是你给我一堆点,我想画一条线穿过这些点,但点未必都能刚好落在线上,于是我尽量让这些点“平均离线近一点”。

MATLAB的线性最小二乘拟合中,用的比较多的就是多项式拟合

多项式拟合

什么是多项式拟合

当你用的“函数”不仅是一条直线,而是高次多项式函数时,就叫多项式拟合。

比如:

拟合二次函数y=a_{2}x^{2}+a_{1}x+a_{0}

命令为:

A=polyfit(x,y,m)

其中x=(x_{1},x_{2},...,x_{n}),y=(y_{1},y_{2},...,y_{n}),A=(a_{1},a_{2},...,a_{m+1})

含义为对数据 (x,y) 拟合一个m次多项式,返回一个多项式的系数向量 A。

用你刚才拟合出来的多项式 A,在 x 处求对应的 y,用下面这个命令:

y=polyval(A,x)

练习1

对下面一组数据作二次多项式拟合:

xi00.10.20.30.40.50.60.70.80.91
yi-0.4471.9783.286.167.087.347.669.569.489.3011.2

代码:

x=0:0.1:1;%x从0到1变化,每次增加0.1
y=[-0.047 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
A=polyfit(x,y,2);%对数据(x,y)进行2次项的多项式拟合
z=polyval(A,x);
plot(x,y,'k+',x,z,'r');%做出数据点和拟合曲线的图形

结果展示:

A=
   -9.1115
   19.2482
    0.2005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值