第三章 插值法和最小二乘法 3.7 数据拟合 (最小二乘法 )§ 3.7 数据拟合 (最小二乘法 )§ 实例 : 考察某种纤维的强度与其拉伸倍数的关系 ,下表 是实际测定的 24个纤维样品的强度与相应的拉伸倍数 是记录 : 编 号 拉伸倍数 强 度 编 号 拉伸倍数 强 度 1 1.9 1.4 13 5 5.5 2 2 1.3 14 5.2 5 3 2.1 1.8 15 6 5.5 4 2.5 2.5 16 6.3 6.4 5 2.7 2.8 17 6.5 6 6 2.7 2.5 18 7.1 5.3 7 3.5 3 19 8 6.5 8 3.5 2.7 20 8 7 9 4 4 21 8.9 8.5 10 4 3.5 22 9 8 11 4.5 4.2 23 9.5 8.1 12 4.6 3.5 24 10 8.1 ii yx ii yx 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 纤维强度随拉伸 倍数增加而增加 系 要关系应是线性关 的主与拉伸倍数 因此可以认为强度 xy 并且 24个点大致分 布在一条直线附近 xxy 10)( bb += 为待定参数其中 10 , bb ---------(1) 越接近越好 样本点与所有的数据点我们希望 ),)(()( 10 ii yxxxy bb += 必须找到一种度量标准来衡量什么曲线最接近所有数据点 一 、 最小二乘法的基本概念 iii yxy ?= )(d令 一般使用 ∑ = = m i i 0 22 2 dd 在回归分析中称为残差 ∑ = ?= m i ii yxy 0 2))(( 准偏离程度大小的度量标与数据点作为衡量 ),()( ii yxxy 称为平方误差 在回归分析中称为残差平方和 从而确定 (1)中的待定系数 ∑ = = m i i 0 22 2 dd ∑ = ?= m i ii yxy 0 2))(( 注意 (1)式是一条直线 关系的关系并不一定是线性但 yx, 因此将问题一般化 )(, xSyyx =的关系为设 Φ来自函数类其中 )(xS 来自线性函数类中如 )()1( xy 为给定的一组数据设 ),,1,0)(,( miyx ii L= ),,1,0)(( nixi L=Φ j的基函数为设函数类 mn ≤一般要求 即生成的函数集是由也称 ,),,1,0)(( nixi L=Φ j )}(,),(),({ 10 xxxspan njjj L=Φ ∑ = = m i i 0 22 2 dd ∑ = ?= m i ii yxS 0 2))(( 仍然定义平方误差 ∑ = = n j jj xaxS 0 )()( j Φ∈ 我们选取的度量标准是 )(* xS中选取一个函数在函数类 Φ ∑ = = n j jj xaxS 0 * )()(* j )(*)(*)(* 1100 xaxaxa nn jjj +++= L 2 2*d ∑ = ?= m i ii yxS 0 2))(*( ∑ =Φ∈ ?= m i iixS yxS 0 2 )( ))((min22 )( min d Φ∈ = xS 中的任意函数为其中 Φ= ∑ = m j jj xaxS 0 )()( j ---------(2) ---------(3) 数据拟合的最小二乘法 的方法为的求函数称满足条件 ∑ = = n j jj xaxS 0 * )()(*)3( j 为最小二乘解∑ = = n j jj xaxS 0 * )()(* j 为拟合系数为拟合函数 ),,1,0(,)()( 0 njaxaxS j n j jj L== ∑ = j ),,1,0(,)( njaxS j L=如何求拟合系数后在确定了拟合函数 呢 ?满足拟合条件使得 )3()()(* 0 *∑ = = n j jj xaxS j 误差称为最小二乘解的平方22*d ∑ ∑ = = ?= m i i n j ijj yxa 0 2 0 ))(( j∑ = ?= m i ii yxS 0 2))(( 二 、 法方程组 2 2d ∑ = = n j jj xaxS 0 )()( j由 的函数为拟合系数 ),,1,0( nja j L= 可知 因此可假设 ),,,( 10 naaa Ly ∑ ∑ = = ?= m i i n j ijj yxa 0 2 0 ))(( j 因此求最小二乘解转化为 二次函数 的问题点极小值的最小值求 *,*,*,)(),,,( 1010 nn aaaaaa LLy 由多元函数取极值的必要条件 0),,,( 10 =?? k n a aaa Ly nk ,,1,0 L= )]())((2[ 0 0 ik m i i n j ijj xyxa jj∑ ∑ = = ?= ka? ?y 0= 得 即 ∑∑∑ == = = m i iki m i ik n j ijj xyxxa 00 0 )()()( jjj 0)]()()([ 0 0 =?∑ ∑ = = ik m i i n j ikijj xyxxa jjj ∑∑∑ == = = m i iki m i ik n j ijj xyxxa 00 0 )()()( jjj ∑∑ ∑ == = = m i iki n j jik m i ij xyaxx 00 0 )()]()([ jjj nk ,,1,0 L= ---------(4) ∑ ∑∑∑ = === = +++ m i iki ik m i innik m i iik m i i xy xxaxxaxxa 0 00 11 0 00 )( )()()()()()( j jjjjjj L nk ,,1,0 L= 即 元线性方程组的是一个关于显然 1,,,)4( 10 +naaa nL 引入记号 ))(,),(),(( 10 mrrr xxx jjj L=rj ),,,( 10 myyy L=f )()(),( 0 ij m i ikjk xx jjjj ∑ = = 则由内积的概念可知 i m i ikk yxf ∑ = = 0 )(),( jj ---------(5) ---------(6) ),( jk jj ),( kj jj=显然内积满足交换律 方程组 (4)便可化为 ),(),(),(),( 1100 faaa knknkk jjjjjjj =+++ L nk ,,1,0 L= ---------(7) 的线性方程组常数项为这是一个系数为 ),(),,( fkjk jjj 将其表示成矩阵形式 ?? ? ? ? ? ? ?? ? ? ? ? ? na a a M 1 0 ?? ? ? ? ? ? ?? ? ? ? ? ? = ),( ),( ),( 1 0 f f f nj j j M ?? ? ? ? ? ?? ? ? ? ? ),(),(),( 01000 njjjjjj L ),(),(),( 11101 njjjjjj L ),(),(),( 10 nnnn jjjjjj L MMM -----(8) baGn =简单记为 上的法方程组在点 式为函数序列称 m n xxx xxx ,,, )(,),(),()8( 10 10 L L jjj 的基为函数类由于 Φ)(,),(),( 10 xxx njjj L 必然线性无关因此 )(,),(),( 10 xxx njjj L 并且其系数矩阵为对称阵 所以法方程组的系数矩阵非奇异 ,即 0])),det[(()det( )1()1( ≠= +×+ nnjinG jj 根据 Cramer法则 ,法方程组有唯一解 *,*,*, 1100 nn aaaaaa === L *),*,*,( 10 naaa Ly ∑ ∑ = = ?= m i i n j ijj yxa 0 2 0 ))(( j),,,( 10 naaa Ly 即 是 的最小值 2 2*d ∑ = ? m i ii yxS 0 2))(*( ∑ =Φ∈ ?= m i iixS yxS 0 2 )( ))((min 2 2)(min dΦ∈= xS 所以 ∑ ∑ = = ? m i i n j ijj yxa 0 2 0 ))(*( j ∑ ∑ = =Φ∈ ?= m i i n j ijjxS yxa 0 2 0)( ))((min j ∑ ∑ = = ?= m i i n j ijj yxa 0 2 0 ))(*( j 为最小二乘解∑ = = n j jj xaxS 0 * )()(* j因此 的拟合函数作为常使用多项式 ),,1,0)(,()()( miyxxPxS iin L== 作为一种简单的情况 , 的基函数为拟合函数 )()( xPxS n= ,1)(0 =xj ,)(1 xx =j ,,)(, LL kk xx =j nn xx =)(j 基函数之间的内积为 )()(),( 0 ij m i ikjk xx jjjj ∑ = = ∑ = = m i j i k i xx 0 ∑ = += m i jk ix 0 i m i ikk yxf ∑ = = 0 )(),( jj ∑ = = m i i k i yx 0 =22*d平方误差 ∑ = ? m i ii yxS 0 2))(*( ∑ = ?= n j jj faff 0 ),(*),( j 例 1. 回到本节开始的实例 , 从散点图可以看出 纤维强度和拉伸倍数之间近似与线性关系 xaaxy 10)( += 故可选取线性函数 为拟合函数 , 其基函数为 1)(0 =xj xx =)(1j 建立法方程组 根据内积公式 , 可得 24),( 00 =jj 5.127),( 10 =jj 61.829),( 11 =jj 1.113),( 0 =fj 6.731),( 1 =fj 法方程组为 ?????? 61.8295.127 5.12724 ?????? 1 0 a a ? ? ?? ? ?= 6.731 1.113 1505.00 =a 即为所求的最小二乘解xxy 8587.01505.0)(* += 8587.01 =a解得 6615.5* 22 =d平方误差为 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 拟合曲线与散点 的关系如右图 : 例 2. 求拟合下列数据的最小二乘解 x=.24 .65 .95 1.24 1.73 2.01 2.23 2.52 2.77 2.99 y=.23 -.26 -1.10 -.45 .27 .10 -.29 .24.56 1 解 : 从数据的散点图可以看出 xxy cos之间具有三角函数关系与 xexy 系之间还具有指数函数关与 xxy ln系之间还具有对数函数关与 因此假设拟合函数与基函数分别为 xcexbxaxS ++= cosln)( xex =)( 2jxx ln)(0 =j xx cos)(1 =j 0 0.5 1 1.5 2 2.5 3 -1.5 -1 -0.5 0 0.5 1 x y 6.7941 -5.3475 63.2589 -5.3475 5.1084 -49.0086 63.2589 -49.0086 1002.5 ? ? ? ? ? ?? ? ? ? 1.6163 -2.3827 26.7728?? ? ? ? ?? ? ? ? 通过计算 ,得法方程组的系数矩阵及常数项矩阵为 y Go! 用 Gauss列 主元消去法 ,得 =??? ? ? ?? ? ? ? c b a -1.0410 -1.2613 0.030735?? ? ? ? ?? ? ? ? xexxxS 030735.0cos2613.1ln0410.1)(* +??= 的最小二乘解是关于 xy 2 2*d 2 0 ))(*(∑ = ?= m i ii yxS 2 0 )030735.0cos2613.1ln0410.1(∑ = ?+??= m i i x ii yexx i 92557.0= 拟合的平方误差为 图象如图 例 3. 在某化学反应里 ,测得生成物浓度 y%与时间 t的 数据如下 , 试建立 y关于 t的经验公式 t=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 y=4.00,6.40,8.00,8.80,9.22,9.50,9.70,9.86,10.00, 10.20,10.32,10.42,10.50,10.55,10.58,10.60 解 : 的散点图与浓度画出时间 yt 具有图示的图形的曲线很多 , 本题特提供两种形式 tbaey =指数函数形式 bat ty +=双曲线形式 都是待定系数其中 ba, tbay 1lnln += tbay 11 += tbaey =指数函数形式).1( tbay 1lnln +=两边取对数 ,得 aattyy ln,1,ln =′=′=′设 tbay ′+′=′得 即为拟合函数 基函数为 ,1)(0 =′tj tt ′=′)(1j 0567.1,427.2 ?==′ ba解法方程组得 325.11=a tey 0567.1325.11 ?=最小二乘解为 11631.0* 221 =d平方误差为 bat ty +=双曲线形式).2( tbay 11 += 16272.0080174.0 == ba 用最小二乘法得 即 16272.0080174.0 += t ty 5621.1* 222 =d 无论从图形还是从平方误差考虑 在本例中指数函数拟合比双曲线拟合要好 0 2 4 6 8 10 12 14 16 4 5 6 7 8 9 10 11 t yyyy 平方误差为 三 、 加权最小二乘法 ),,1,0)(,( miyx ii L=对于一组给定的数据点 中在拟合的数据点 ),,1,0)(,( miyx ii L= 各点的重要性可能是不一样的 的重度表示数据点假设 ),( iii yxw 重度 : 即权重或者密度 , 统称为权系数 mk ,,1,0 L= 定义加权 平方误差为 ∑== m i ii 0 22 2 dwd ∑ = ?= m i iii yxy 0 2))((w -----(9) Φ来自函数类设拟合函数 )(xS ),,1,0)(( nixi L=Φ j的基函数为函数类 )}(,),(),({ 10 xxxspan njjj L=Φ ∑ = ?= m i iii yxS 0 2))(*(w )(xS )()()( 1100 xaxaxa nnjjj +++= L 为拟合系数),,1,0( nja j L= ),,1,0(* nja j L=组拟合的目标仍然为找一 2 2*d ∑ =Φ∈ ?= m i iiixS yxS 0 2 )( ))((min w22 )( min d Φ∈ = xS 使得 ),,,( 10 naaa Ly求 ∑ ∑ = = ?= m i i n j ijji yxa 0 2 0 ))(( jw 的问题点极小值的最小值 *,*,*,)( 10 naaa L 由多元函数取极值的必要条件 0),,,( 10 =?? k n a aaa Ly nk ,,1,0 L= )]())((2[ 0 0 ik m i i n j ijji xyxa jjw∑ ∑ = = ?= ka? ?y 0=得 即 ∑∑ ∑ == = = m i ikii m i ik n j ijji xyxxa 00 0 )()()( jwjjw 0)]()()([ 0 0 =?∑ ∑ = = ik m i ii n j ikijji xyxxa jwjjw ∑∑ ∑ == = = m i ikii m i ik n j ijii xyxxa 00 0 )()()( jwjjw ∑∑ ∑ == = = m i ikii n j jik m i iji xyaxx 00 0 )()]()([ jwjjw nk ,,1,0 L= 元线性方程组的是一个关于显然 1,,,)10( 10 +naaa nL 引入记号 ))(,),(),(( 10 mrrr xxx jjj L=rj ),,,( 10 myyy L=f 定义加权内积 -----(10) )()(),( 0 ij m i ikijk xx jjwjj ∑ = = i m i ikik yxf ∑ = = 0 )(),( jwj ),(),(),(),( 1100 faaa knknkk jjjjjjj =+++ L nk ,,1,0 L= 矩阵形式 (法方程组 )为 ?? ? ? ? ? ? ?? ? ? ? ? ? na a a M 1 0 ?? ? ? ? ? ? ?? ? ? ? ? ? = ),( ),( ),( 1 0 f f f nj j j M ?? ? ? ? ? ?? ? ? ? ? ),(),(),( 01000 njjjjjj L ),(),(),( 11101 njjjjjj L ),(),(),( 10 nnnn jjjjjj L MMM 方程组 (10)式化为 -----(11) ---(12) 平方误差为 ∑ = ?= m i iii yxS 0 2))(*(w2 2*d 作为特殊情形 ,用多项式作拟合函数的法方程组为 ?? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ∑ ∑ ∑ ∑∑∑ ∑∑∑ ∑∑∑ = = = = + == + === === m i i n ii m i iii m i ii n i m i i n i m i i n i m i i n i m i ii m i ii m i i n i m i ii m i i m i i yx yx y a a a xxx xxx xx 0 0 0 1 0 2 0 1 00 1 0 2 00 000 w w w www www www MM L MMM L L -----(13) 四 、 用正交多项式作最小二乘拟合 * 选为基底的基函数若拟合函数 )()(xS ),()( 00 xPx =j ,L),()( 11 xPx =j )()( xPx nn =j 为正交多项式且 )(,),(),( 10 xPxPxP nL ),,1,0)(,( miyx ii L=对于一组给定的数据点 ),( jk PP ?? ?= jk ≠0 jk =kA ∑ = = m i ijiki xPxP 1 )()(w即 0>kA其中 正交多项式如何选取呢 -----(14) 线性无关显然 )(,),(),( 10 xPxPxP nL 线性表示次多项式均可由任意且 )(,),(),( 10 xPxPxPk kL 1)(,),(),( 10 时令其首项均为选取正交多项式 xPxPxP nL )(1 xxPk k次多项式考虑 + 线性表示显然其可由 )(,),(),( 110 xPxPxP k +L 1,,,,, 110 kk abbb ?L即存在系数 )()()( 1 1 0 xPxPxP kkk k j jj + ? = ++?= ∑ ab 使得 )(xxPk )()()( 1 1 0 xPxPxP kkk k j jj + ? = ++?= ∑ ab)(xxPk ),( sk PxP ))(),()()(( 1 1 0 xPxPxPxP skkk k j jj + ? = ++?= ∑ ab )( ks <),( sk PxP ),( sss PPb= ),( kk PxP ),( kkk PPa= 由 可知 因此 ),( ),( kk kk PP PxP= ka sb ),( ),( ss sk PP PxP= sb ),( ),( ss sk PP PxP=而 ),( ),( ss sk PP xPP= 次多项式为 1)( +sxxPs 线性表示可由正交多项式组 10)}({ +sj xP 时当 ks <+ 1 0),( =sk xPP时即 1?< ks 因此 sb ?? ??? ?= ?< = 1 10 ks ks ),( ),( 11 1 ?? ? kk kk PP xPP ),( ),( 11 1 ?? ? kk kk PP xPP ),( ),( 11 ?? = kk kk PP PP )()()()( 1 0 1 xPxPxxPxP kk k j jjkk ab ???= ∑ ? = + )()()( 11 xPxPx kkkk ????= ba 可知 最后可得正交多项式选取的方法 : 1)(0 =xP 01 )( a?= xxP ∑ =+ = m i iixm 0 0 1 1 wa ),( ),(? 00 00 PP PxP= )(1 xPk + )()()( 11 xPxPx kkkk ????= ba ),( ),( 11 1 ?? ? = kk kk k PP PPb ),( ),( kk kk PP PxP= ka -----(15) ni ,,2,1 L= )()()( 1 1 0 xPxPxP kkk k j jj + ? = ++?= ∑ ab)(xxPk由 ?? ? ? ? ? ? ?? ? ? ? ? ? na a a M 1 0 ?? ? ? ? ? ? ?? ? ? ? ? ? = ),( ),( ),( 1 0 f f f nj j j M ?? ? ? ? ? ?? ? ? ? ? ),(),(),( 01000 njjjjjj L ),(),(),( 11101 njjjjjj L ),(),(),( 10 nnnn jjjjjj L MMM 作拟合选择正交多项式 )(,),(),( 10 xPxPxP nL ),,1,0)(,( miyx iii L=的数据点对于一组给定的带权 w )()()()( 1100 xPaxPaxPaxS nn+++= L ∑ = ?= m i iii yxS 0 2))(*(w2 2*d ∑ =Φ∈ ?= m i iiixS yxS 0 2 )( ))((min w22)(min dΦ∈= xS 使得 由正交多项式的性质 ,法方程组 ),(),( fPaPP kkkk = ni ,,2,1,0 L= -----(16) ),( ),(* kk k k PP fPa = -----(17) ?? ? ? ? ? ? ?? ? ? ? ? ? na a a M 1 0 ?? ? ? ? ? ? ?? ? ? ? ? ? = ),( ),( ),( 1 0 fP fP fP n M ?? ? ? ? ? ?? ? ? ? ? 00),( 00 LPP 0),(0 11 LPP ),(00 nn PPL MMM 可化为 即 得 )(*)(*)(*)(* 1100 xPaxPaxPaxS nn+++= L即 为利用正交多项式的最小二乘解 ∑ = ?= m i iii yxS 0 2))(*(w2 2*d 平方误差为 ))(*,)(*( fxSfxS ??= ),()*,(2*)*,( fffSSS +?= ),(),(*2),(* 00 2 fffPaPPa n k kk n k kkk +?= ∑∑ == ),(),(*2),(* 0 2 0 2 ffPPaPPa n k kkk n k kkk +?= ∑∑ == ∑ = ?= n k kkk PPaff 0 2 ),(*),( 例 4. 如下及权重给定数据点 iii yx w),( 1111111 0.371.244.219.296.175.11 0.19.08.07.06.05.00 i i i y x w 是用最小二乘法求拟合这组数据的多项式 解 : 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3 从散点图可知 数据和二次多项式拟合较好 因此选用二次多项式作 这组数据的拟合函数 0.6 0.8 1 设拟合函数 为基函数)(),(),( 210 xPxPxP )()()()( 221100 xPaxPaxPaxS ++= 取 1)(0 =xP 01 )( a?= xxP 0a ),( ),( 00 00 PP PxP= 7 5.4= 642857.0?= x 0a ),( ),( 00 0 PP fP= 15.2 7 05.15 == 1a ),( ),( 11 1 PP fP= 978260.1 657143.0 300000.1 == 1a ),( ),( 11 11 PP PxP= 335403.0 657143.0 220408.0 == ),( ),( 00 11 0 PP PP=b 093878.0 7 657143.0 == )(2 xP )()()( 0011 xPxPx ba ??= 093878.0)642857.0)(335403.0( ???= xx 2a ),( ),( 22 2 PP fP= 999942.0 068660.0 068656.0 == 121738.0978260.02 +?= xx )()()()( 221100 xPaxPaxPaxS ++= 因此拟合多项式为 999993.0000057.1999942.0 2 ++= xx 平方误差为 2 2*d ∑ = ?= n k kkk PPaff 0 2 ),(*),( 1010313856.2 ?×= 五 、 利用正交多项式作最小二乘法的算法设计