曲线拟合(curve-fitting):工程实践中,用测量到的一些离散的数据求一个近似的函数来拟合这组数据,要求所得的拟合曲线能最好的反映数据的基本趋势(即使最好地逼近,而不必满足插值原则
因此没必要取=,只要使尽可能地小)
原理:给定数据点
并且使得近似曲线与的偏差最小
近似曲线在该点处的偏差,i=1,2,
常见的曲线拟合方法: 1
使偏差绝对值之和最小 2
使偏差绝对值最大的最小 3
使偏差平方和最小 最小二乘法: 按偏差平方和最小的原则选取拟合曲线,并且实行二项式方程为拟合曲线的方法,称为最小二乘法
推导过程: 1
设拟合多项式为: 2
各点到这条曲线的距离之和,即偏差平方和如下: 3
问题转化为求待定系数
对等式右边求偏导数,因而我们得到了:
4、 把这些等式化简并表示成矩阵的形式,就可以得到下面的矩阵: 5
将这个范德蒙得矩阵化简后可得到: 6
也就是说 X*A=Y,那么 A = (X’*X)-1*X'*Y,便得到了系数矩阵 A,同时,我们也就得到了拟合曲线
MATLAB 实现:MATLAB 提供了 polyfit()函数命令进行最小二乘曲线拟合
调用格式:p=polyfit(x,y,n) [p,s]= polyfit(x,y,n) [p,s,mu]=polyfit(x,y,n)x,y 为数据点,n 为多项式阶数,返回 p 为幂次从高到低的多项式系数向量 p
x 必须是单调的
矩阵 s 包括 R(对 x 进行 QR 分解的三角元素)、df(自由度)、normr(残差)用于生成预测值的误差估量
[p,s,mu]=polyfit(x,y,n)在拟合过程中,首先对 x 进行数据标准化处理,以在拟合中消除量纲等影响,mu 包含标准化处理过程中使用的 x 的均值和标准差
polyval( )为多项式曲线求值函