最小二乘法线性和非线性拟合55页PPT文档
- 格式:ppt
- 大小:7.41 MB
- 文档页数:55
---------------------------------------------------------------最新资料推荐------------------------------------------------------1 / 11数学建模课件--最小二乘法拟合4. 最小二乘法线性拟合 我们知道, 用作图法求出直线的斜率a 和截据b , 可以确定这条直线所对应的经验公式, 但用作图法拟合直线时, 由于作图连线有较大的随意性, 尤其在测量数据比较分散时, 对同一组测量数据, 不同的人去处理, 所得结果有差异, 因此是一种粗略的数据处理方法, 求出的 a 和 b 误差较大。
用最小二乘法拟合直线处理数据时, 任何人去处理同一组数据,只要处理过程没有错误, 得到的斜率 a 和截据 b 是唯一的。
最小二乘法就是将一组符合 Y=a+bX 关系的测量数据, 用计算的方法求出最佳的 a 和 b 。
显然, 关键是如何求出最佳的 a 和b 。
(1) 求回归直线 设直线方程的表达式为:(2-6-1) 要根据测量数据求出最佳的 a 和 b 。
对满足线性关系的一组等精度测量数据(xi , yi ),假定自变量xi 的误差可以忽略, 则在同一 xi 下, 测量点 yi 和直线上的点a+bxi 的偏差 di 如下:显然最好测量点都在直线上(即 d1=d2==dn=0), 求出的 a 和 b 是最理想的, 但测量点不可能都在直线上, 这样只有考虑 d1、 d2、 、dn 为最小, 也就是考虑 d1+d2++dn 为最小, 但因 d1、 d2、 、 dn有正有负,加起来可能相互抵消,因此不可取;而| d1| + | d2| ++ | dn| 又不好解方程,因而不可行。
现在采取一种等效方法:当 d1对 a 和 b 为最小时, d1、 d2、、 dn也为最小。
取(d12+d22++dn22+d22++dn2)为最小值,求 a和 b 的方法叫最小二乘法。
---------------------------------------------------------------最新资料推荐------------------------------------------------------最小二乘法线性与非线性拟合最小二乘法线性与非线性拟合最小二乘法实现数据拟合最小二乘法原理函数插值是差值函数 p(x)与被插函数 f(x)在节点处函数值相同,即 p( )=f( ) (i=0,1,2,3,n),而曲线拟合函数不要求严格地通过所有数据点( ),也就是说拟合函数在处的偏差= 不都严格地等于零。
但是,为了使近似曲线能尽量反应所给数据点的变化趋势,要求| |按某种度量标准最小。
即ab 中输入以下程序x=[0,0.2,0.4,0.7,0.9,0.92,0.99,1.2,1.4,1.48,1.5]’;y=[2.88;2.2576;1.9683;1.9258;2.0862;2.109;2.1979;2.5409;2.9627;3.155;3.2052]; A=[ones(size(x)) exp(-3*x),cos(-2*x).*exp(-4*x) x.]; c=A\y; c’ 运行结果为ans = 1.2200 2.3397 -0.6797 0.8700 下面画出由拟合得到的曲线及已知的数据散点图x1=[0:0.01:1.5]’; A1=[ones(size(x1)) exp(-3*x1),cos(-2*x1).*exp(-4*x1) x1.]; x 0 0.2 0.4 0.7 0.9 0.92 0.99 1 .2 1 .4 1 .48 1 .5 y 2.88 2.2576 1 .9683 1 .9258 2.0862 2.1 09 2.1 979 2.5409 2.9627矩阵,表示因变量矩阵,是输出的系数矩阵,即多项式的系数。
多项式在自变量 x 处的函数值 y 可用以下命令计算:y=polyval(A,x) 例题对下面一组数据作二次多项式拟合,即1 / 6要求出二次多项式中的,使最小。
最小二乘法线性与非线性拟合最小二乘法实现数据拟合最小二乘法原理函数插值是差值函数p(x)与被插函数f(x)在节点处函数值相同,即p( )=f( ) (i=0,1,2,3……,n),而曲线拟合函数不要求严格地通过所有数据点( ),也就是说拟合函数在处的偏差=不都严格地等于零。
但是,为了使近似曲线能尽量反应所给数据点的变化趋势,要求| |按某种度量标准最小。
即=为最小。
这种要求误差平方和最小的拟合称为曲线拟合的最小二乘法。
(一)线性最小二乘拟合根据线性最小二乘拟合理论,我们得知关于系数矩阵A的解法为A=R\Y。
例题假设测出了一组,由下面的表格给出,且已知函数原型为y(x)=c1+c2*e^(-3*x)+c3*cos(-2*x)*exp(-4*x)+c4*x^2试用已知数据求出待定系数的值。
在Matlab中输入以下程序x=[0,0.2,0.4,0.7,0.9,0.92,0.99,1.2,1.4,1.48,1.5]';y=[2.88;2.2576;1.9683;1.9258;2.0862;2.109;2.1979;2.5409;2.9627;3.155;3.2052];A=[ones(size(x)) exp(-3*x),cos(-2*x).*exp(-4*x) x.^2];c=A\y;c'运行结果为ans =1.22002.3397 -0.6797 0.8700下面画出由拟合得到的曲线及已知的数据散点图x1=[0:0.01:1.5]';A1=[ones(size(x1)) exp(-3*x1),cos(-2*x1).*exp(-4*x1) x1.^2];y1=A1*c;plot(x1,y1,x,y,'o')事实上,上面给出的数据就是由已知曲线y(x)= 0.8700-0.6797*e^(-3*x)+ 2.3397*cos(-2*x)*exp(-4*x)+ 1.2200*x^2产生的,由上图可见拟合效果较好。