1、11 1、曲线拟合的概念、曲线拟合的概念2 2、曲线拟和的方法、曲线拟和的方法3 3、解矛盾方程组、解矛盾方程组2 设已知某个函数关系设已知某个函数关系 在某些离散点上的函数值:在某些离散点上的函数值:根据这些已知数据来构造函数根据这些已知数据来构造函数 的一种简单的近似表达式的一种简单的近似表达式, ,以便于计算点以便于计算点 的函数值的函数值 ,或计算函数的一阶、,或计算函数的一阶、二阶导数值。二阶导数值。( )f xx0 x0yy1y1nyny1x1nxnx,0,1,ixx in( )yf x( )yf x3 在前面所讨论的各种插值方法中,始假设数据点是精确的,在前面所讨论的各种插值方法
2、中,始假设数据点是精确的,准确的,不可修改的,所要求出的插值曲线必须通过每一个准确的,不可修改的,所要求出的插值曲线必须通过每一个数据点。数据点。但在实际工作中由于各随机因素的干扰,所得到的但在实际工作中由于各随机因素的干扰,所得到的数据往往不同程度存在着误差。数据往往不同程度存在着误差。因此,插值方法只能适用那因此,插值方法只能适用那些误差可以忽略不记的情况,当误差较大而不能忽略时,又些误差可以忽略不记的情况,当误差较大而不能忽略时,又如何通过这些观测数据确定其内在的变化规律呢?曲线拟合如何通过这些观测数据确定其内在的变化规律呢?曲线拟合就是解决这一问题的主要方法之一。就是解决这一问题的主要
3、方法之一。 4如图所示,常常需要从一如图所示,常常需要从一组获得的数据点中,寻找组获得的数据点中,寻找变量与变量之间的变化规变量与变量之间的变化规律用几何方法来解释,律用几何方法来解释,就是用已知平面内的一组就是用已知平面内的一组点,来确定一条曲线,点,来确定一条曲线,使使该曲线能在整体上刻画这该曲线能在整体上刻画这组点的变化趋势而不需通组点的变化趋势而不需通过每个点,过每个点,我们称这种方我们称这种方法为曲线拟合,所求出的法为曲线拟合,所求出的曲线称为拟合曲线。曲线称为拟合曲线。 xy5 将上述问题抽象为数学问题为:设有一组数据将上述问题抽象为数学问题为:设有一组数据对对 , ,求连续变量的
4、一个函数,求连续变量的一个函数,它在它在 处误差为处误差为 ,使总体误差按某种算法,使总体误差按某种算法达到最小常用的三种准则是达到最小常用的三种准则是:( ,)iix y(1,2,)imiS( ,)iix y6()使得误差的最大的绝对值为最小,即()使得误差的最大的绝对值为最小,即()使误差的绝对值和最小,即()使误差的绝对值和最小,即()使误差的平方和为最小,即()使误差的平方和为最小,即 由于准测()、()含有绝对值不便于处理,由于准测()、()含有绝对值不便于处理,通常采用准测(),并称基于准则()来选取通常采用准测(),并称基于准则()来选取拟合曲线的方法,为曲线拟合的最小二乘法。拟
5、合曲线的方法,为曲线拟合的最小二乘法。min( max )iSSmin( )iiSS2min( )iiSS太复杂太复杂不可导,求解困难不可导,求解困难7 一般而言,所求得的拟合函数可以是不同的函数一般而言,所求得的拟合函数可以是不同的函数类,其中最简单的是多项式,此时称为多项式拟类,其中最简单的是多项式,此时称为多项式拟合,具体定义如下:合,具体定义如下: 8定义定义 设有给定的数据设有给定的数据 ,假设其拟,假设其拟合函数形式为合函数形式为 , 求系数求系数 ,使得,使得 取最小值称取最小值称 次多项式次多项式为为 次最小二乘拟合多项式次最小二乘拟合多项式(或或 次最小平方逼近次最小平方逼近
6、多项式多项式)。特别地,当特别地,当 时,称时,称 为线性最小为线性最小二乘拟合。二乘拟合。 ( ,),(1,2, )iix yin01( )mmmpxaa xa x(1)mn*01,ma aa2201100(,)()nnmkmimiikiiikaaaypxya x*01( )mmmpxaa xa xmmm1m *01( )p xaa x9 容易看出容易看出 是系数是系数 的的 元二元二次多项式次多项式(二次型二次型),所以可以用多元函数求极值,所以可以用多元函数求极值的方法求其最小值点和最小值。将的方法求其最小值点和最小值。将 对对 求偏导数得到驻点方程组:求偏导数得到驻点方程组: , 即即
7、 01(,)ma aa01,ma aa1m,(0,1,)kakm0,(0,1,)kkma10()0,(0,1,)nmjkijiiijya xxkm10问题问题 对于给定的数据点对于给定的数据点( ,)1,2, ,iix y iN,求作一次式,求作一次式yabx,使总误差为最小,即在二元函数式中,使总误差为最小,即在二元函数式中 为最小。为最小。 这里这里Q是关于未知数是关于未知数a和和b的二元函数,这一问题就是要的二元函数,这一问题就是要确定确定a和和b取何值时,二元函数取何值时,二元函数21( , )()NiiiQ a byabx的值最小的值最小? ?11 由微积分的知识可知,这一问题的求解
8、,由微积分的知识可知,这一问题的求解,可归结为求二元函数可归结为求二元函数( , )Q a b的极值问题,即的极值问题,即a和和b应满足:应满足:1213 例例1 已知观测数据如下所示,求它的拟合曲线。已知观测数据如下所示,求它的拟合曲线。 解:根据所给数据,在直角坐标下画出数据点,解:根据所给数据,在直角坐标下画出数据点,从图中可以看出,各点从图中可以看出,各点在一条直线附近,故可在一条直线附近,故可取线性函数作为拟合取线性函数作为拟合曲线曲线 1234544.5688.5ixiy14 令令 将数据带入公式得,将数据带入公式得, 解得解得 。因此而得所求拟合曲线。因此而得所求拟合曲线为为 。
9、101( )p xaa x5 .1055515311551010aaaa25. 1;45. 210aaxxp25. 145. 2)(115例例2 2 有一滑轮组,要举起有一滑轮组,要举起W公斤的重物需要用公斤的重物需要用F公斤的力,实验所得的数据如下表。公斤的力,实验所得的数据如下表。求适合上述关系的近似公式。求适合上述关系的近似公式。16解解 首先,将这些数据画在直角坐标系中,从图形上首先,将这些数据画在直角坐标系中,从图形上 看,数据点的分布大致呈一条直线,所以设所求看,数据点的分布大致呈一条直线,所以设所求 的拟合直线为的拟合直线为 , yabx得关于得关于a和和b的线性方程组的线性方程
10、组17 最小二乘法并不只限于多项式,也可用于任最小二乘法并不只限于多项式,也可用于任何具体给出的函数形式。特别重要的是有些非线何具体给出的函数形式。特别重要的是有些非线性最小二乘拟合问题通过适当的变换可以转化为性最小二乘拟合问题通过适当的变换可以转化为线性最小二乘问题求解。线性最小二乘问题求解。18例例2 2 已知数据表已知数据表ixiy12347111727求一形如求一形如BxyAe解:所求拟合函数是一个指数函数,对它两边取自然对数,得解:所求拟合函数是一个指数函数,对它两边取自然对数,得lnlnyBxA的经验公式与已知数据拟合的经验公式与已知数据拟合19于是对应于上述数据表得到一个以应数据
11、表:于是对应于上述数据表得到一个以应数据表:12341.952.402.833.3001ln,ln,yp aA aB若记若记则则ixlniy01paa x从而将原问题转化为由新数据表所给出的线性拟合问题从而将原问题转化为由新数据表所给出的线性拟合问题易知其求解方程组为:易知其求解方程组为:20010141010.48,10328.44,aaaa解之得解之得011.50,0.448aa于是于是ln1.500.448yx故所求经验公式为故所求经验公式为1.50 0.4480.4484.48xxyee21通过上述两例可知,用多项式作曲线拟合的计算步骤可分为通过上述两例可知,用多项式作曲线拟合的计算步
12、骤可分为如下几步:如下几步:()根据已给的数据()根据已给的数据( ,),(1,2, )iix yin作草图,由草图估计出多项式的次数作草图,由草图估计出多项式的次数(m次次)并令并令01( )mmp xaa xa x,其中,其中01,ma aa()求解由最小二乘原理得到的方程组;()求解由最小二乘原理得到的方程组;()将所得的解作为拟合多项式的相关项的系数,则()将所得的解作为拟合多项式的相关项的系数,则此多项式即为所求。此多项式即为所求。 为待定系数;为待定系数;22试求下列矛盾方程组的解:试求下列矛盾方程组的解:很显然,直接求解是不行的,因为满足方程组的很显然,直接求解是不行的,因为满足
13、方程组的精确解是不存在的!只能求出尽量满足方程组的精确解是不存在的!只能求出尽量满足方程组的近似解。近似解。23运用最小二乘法,要求满足方程组的解,运用最小二乘法,要求满足方程组的解,即求使下列值即求使下列值 最小的解最小的解 ,就是方程组的,就是方程组的近似解:近似解:222(15.5)(6.1)(20.9)uxyxyu, x y242(15.5)2(20.9)02(6.1)2(20.9)0uxxyxuyxyy15.266675.86667xy得解:得解:xdata = 0 5 10 15 25;ydata = 0.001 0.881 2.1637 3.1827 4.961;degree =
14、 1; % Linear relationshipcoef = polyfit(xdata, ydata, degree);xx = -5 : 0.5 : 30; % Range for plotting yy = polyval(coef, xx); plot(xdata, ydata, o, xx, yy);2526定义定义权函数:权函数: 离散型离散型 /*discrete type */根据一系列离散点根据一系列离散点 拟合时,在每一误拟合时,在每一误差前乘一正数差前乘一正数wi ,即,即 误差函数误差函数 ,这个,这个wi 就称作权就称作权/* weight*/,反映该点的重要程度。
15、,反映该点的重要程度。),., 1(),(niyxii niiiiyxPw12)( 连续型连续型 /*continuous type */在在a, b上用广义多项式上用广义多项式 P(x) 拟合连续函数拟合连续函数 f(x) 时,定义权函时,定义权函数数 (x) Ca, b,即误差函数,即误差函数 = 。权函数权函数 (x)必须必须满足:非负、可积,且在满足:非负、可积,且在a, b的任何子区间的任何子区间上上 (x) 0。dxxyxPxba2)()( )( the LSCOV function can perform weighted-least-square regression), 1
16、, 0)(,(miyxii对于一组给定的数据点中在拟合的数据点), 1 , 0)(,(miyxii各点的重要性可能是不一样的各点的重要性可能是不一样的的重度表示数据点假设),(iiiyx重度重度: 即权重或者密度,统称为权系数即权重或者密度,统称为权系数mk, 1 ,0 定义加权定义加权平方误差为平方误差为miii0222miiiiyxy02)(28来自函数类设拟合函数)(xS), 1 , 0)(nixi的基函数为函数类)(,),(),(10 xxxspannmiiiiyxS02)(*()(xS)()()(1100 xaxaxann为拟合系数), 1 ,0(njaj), 1 ,0(*njaj组
17、拟合的目标仍然为找一22*miiiixSyxS02)()(min22)(minxS使得使得29),(10naaa求miinjijjiyxa020)(的问题点极小值的最小值*,*,*,)(10naaa由多元函数取极值的必要条件由多元函数取极值的必要条件0),(10knaaaank, 1 , 0)()(200ikmiinjijjixyxaka0得得即即 miikiimiiknjijjixyxxa000)()()(0)()()(00ikmiiinjikijjixyxxa30 miikiimiiknjijiixyxxa000)()()( miikiinjjikmiijixyaxx000)()()(nk
18、, 1 , 0元线性方程组的是一个关于显然1,)10(10naaan引入记号引入记号)(,),(),(10mrrrxxxr),(10myyyf定义加权内积定义加权内积31)()(),(0ijmiikijkxximiikikyxf0)(),(),(),(),(),(1100faaaknknkknk, 1 , 0矩阵形式矩阵形式(法方程组法方程组)为为naaa10),(),(),(10fffn),(),(),(01000n),(),(),(11101n),(),(),(10nnnn方程组式化为方程组式化为32平方误差为平方误差为miiiiyxS02)(*(22*作为特殊情形作为特殊情形, ,用多项
19、式作拟合函数的法方程组为用多项式作拟合函数的法方程组为miiniimiiiimiiinimiinimiinimiinimiiimiiimiinimiiimiimiiyxyxyaaaxxxxxxxx00010201001020000033Subject:What Weighted-Least-Squares Fitting capabilities are available in MATLAB 6.1 (R12.1) and the Toolboxes?Problem Description:Currently, the presence of data outliers can create
20、 an undesirable fit. Because the outlier lies far away from the true pattern of data, it induces error to the true fit. A workaround to this problem would be to minimize the weight(s) of such outlier(s). Solution:In MATLAB, the LSCOV function can perform weighted-least-square regression. x = lscov(A
21、,b,w)where w is a vector length m of real positive weights, returns the weighted least squares solution to the linear system A*x = b, that is, x minimizes (b - A*x)*diag(w)*(b - A*x). w typically contains either counts or inverse variances. In addition, there are three toolboxes you can use to imple
22、ment weights for your fits:=1. Statistics Toolbox:=Weighted linear regression in the Statistics Toolbox is part of the ROBUSTFIT function,B = ROBUSTFIT(X,Y,WFUN,TUNE,CONST) uses the weighting function WFUN and tuning constant TUNE. WFUN can be any of andrews bisquare, cauchy, fair, huber,logistic, t
23、alwar, welsch.As an alternative to specifying one of the named weight functions shown above, you can also write your own weight function (wfun) that takes a vector of scaled residuals as input and produces a vector of weights as output. For documentation on ROBUSTFIT, you can type doc robustfit (wit
24、hout quotes) at the MATLAB command prompt or view the online documentation found at the URL below:http:/ MATLAB versions prior to 7.1 (R14SP3), we do not support a non-linear weighted least-square fit in the Statistics Toolbox.In MATLAB 7.1 (R14SP3), the demo Weighted Nonlinear Regression, addresses
25、 this and is also available on the web at the following linkhttp:/ Curve Fitting Toolbox=We have a more general weighted least square regression capability in the Curve Fitting Toolbox that supports any fit, linear and non-linear.The weight is part of the options to the Fit, and is supplied using th
26、e function FITOPTIONS. Go to the following URL for documentation on FITOPTIONS:http:/ the Curve Fitting Toolbox, the weight can actually be any vector of weights associated with the response data.Follow this link for more information about this Toolbox:http:/ Optimization Toolbox.=LSQNONLIN and LSQC
27、URVEFIT are least-squares solvers in the Optimization Toolbox that can be used to fit equations to your data.In order to use LSQNONLIN to do a weighted least square fit, you will need to have an equation into which you want to fit your data. For an example on weighted least squares fitting using LSQNONLIN, see the Related Solution listed below.