曲线拟合的最小二乘法

Download Report

Transcript 曲线拟合的最小二乘法

第三章
函数逼近
— 曲线拟合的最小二乘法
1
内容提要
 曲线拟合
 曲线拟合基本概念
 最小二乘算法
 最小二乘拟合多项式
2
曲线拟合
什么是曲线拟合
x
已知 f(x) 在某些点的函数值: f(x)
x0
y0
x1
y1
…
…
xm
ym
能否找到一个简单易算的 p(x) ,使得 f(x)  p(x)
但是 (1) m 通常很大
(2) yi 本身是测量值,不准确,即 yi  f (xi)
这时不要求 p(xi) = yi , 而只要
p(x)  f(x) 总体上尽可能小
3
曲线拟合
 常见做法
| p( xi )  yi | 最小
 使 max
1 i  m
m
使
 | p( xi )  yi | 最小
i 1
使
太复杂 
不可导,求
解困难 
m
2
|
p
(
x
)

y
|
 i i 最小
i 1
最小二乘法:目前最常用的多项式曲线拟合算法
4
最小二乘
曲线拟合最小二乘
已知函数值表 ( xi , yi ),在函数空间  中求 S*(x) ,使得
m
 [S ( x )  y ]
i 0

i
2
i
i
 min
s ( x )
m
  S( x )  y 
i 0
i
i
2
i
其中 i 是点 xi 处的权
 这个问题实质上是最佳平方逼近问题的离散形式。
可以将求连续函数的最佳平方逼近函数的方法直接用
于求解该问题。
5
最小二乘求解
对任意 S(x)   = span{0, 1, , n},可设
S(x) = a00 + a11 + · · · + ann(x)
则求 S*(x) 等价于求下面的多元函数的最小值点
m
I ( a0 , a1 ,
, an )   i  S ( xi )  yi 
i 0
m
2


  i   a j j ( xi )  yi 
i 0
 j 0

最小值点
n
2
I
0
ak
k = 0, 1, …, n
6
最小二乘求解
n
 ( , 
j
j 0
k
)ak  ( f ,  k )
( k = 0, 1, … , n )
这里的内积是离散带权内积,即
m
m
i 0
i 0
( j ,  k )   i j ( xi ) k ( xi ) , ( f ,  k )   i f ( xi ) k ( xi )
法方程
 ( 0 ,  0 ) ( 0 ,  1 )
 ( ,  ) ( ,  )
1
1
 1 0


 ( n ,  0 ) ( n ,  n )
G
( 0 ,  n )   a0   d0 
( 1 ,  n )   a1   d1 
    
   
   
( n ,  n )   an   d n 
法方程
dk   k , f 
7
最小二乘求解
法方程存在唯一解
det(G)  0
0, 1, , n 线性无关
Haar条件
mn
0, 1, , n 的任意线性组合在点集 x0, x1, , xm 上
至多只有 n 个不同的零点,则称 0, 1, , n 在点
集 x0, x1, , xm 上满足 Haar 条件
若 0, 1, , n  C[a, b] 在点集 x0, x1, , xm 上满足
Haar 条件,则法方程的解存在唯一
8
最小二乘求解
设法方程的解为: a0* , a1*, , an* , 则
S*(x) = a0* 0 + a1* 1 + · · · + an* n(x)
结论 S*(x) 是 f(x) 在  中的 最小二乘解
9
举例
例:给定函数值表,求 f(x) 的最小二乘拟合函数 S*(x)
xi
yi
0.24 0.65 0.95 1.24 1.73 2.01 2.23 2.52 2.77 2.99
0.23 -0.26 -1.10 -0.45 0.27 0.10 -0.29 0.24 0.56 1.00
解:在坐标平面上描出上表中的数据点,根据点的分布情况,
选取基函数  0 ( x )  ln x ,  1 ( x )  cos x,  2 ( x )  e x
得法方程  6.7941
 5.3475
63.259  a  1.6131 
 5.3475 5.1084  49.009 b   2.3827

  

 63.259  49.009 1002.5  c   26.773 
解得 a  1.0410, b  1.2613, c  0.03073
所以 S  ( x )  1.0410ln x  1.2613cos x  0.03073e x
10
举例
最小二乘问题中,如何选择数学模型很重要,即如何选取
函数空间  = span{0, 1, , n} ,通常需要根据物理
意义,或所给数据的分布情况来选取合适的数学模型。
11
多项式拟合
多项式最小二乘曲线拟合
=Hn= span{1, x, ..., xn}, 即 i = xi, 则相应的法方程为
 m
  i
 mi 0
 x
i i

i 0
 
m
 i xin
 i 0
m
 x
i
i 0
m
i

2

x
 i i



i 0
m
n 1

x
 i i 
i 0
  a0   m


x

f

i
    i i 
i 0
i 0





m
m
n1   a1 
 x f

x


i i
i i i






i 0
i 0
   



m
   m

2n
n
 i xi       i xi fi 

i 0
 an   i 0

m
n
i
n
此时 S ( x )   ak x k 为 f(x) 的 n 次最小二乘拟合多项式

k 0
12
举例
例:求下面数据表的二次最小二乘拟合多项式
xi
f (xi )
0
1.0000
0.25
1.2840
0.50
1.6487
0.75
2.1170
1.00
2.7183
2
p
(
x
)

a

a
x

a
x
解:设二次拟合多项式为 2
0
1
2
2.5
 5
 2.5
1.875

1.875 1.5625
解得 a0  1.0052, a1  0.8641, a2
得法方程
1.875  a0  8.7680
1.5625  a1   5.4514
  

1.3828 a2  4.4015
 0.8437
所以此组数据的二次最小二乘拟合多项式为
p2 ( x )  1.0052  0.8641 x  0.8437 x 2
(1) 若题目中没有给出各点的权值 i ,默认为 i = 1
(2) 该方法不适合 n 较大时的情形 (病态问题)
13
带权正交
带权正交(离散情形)
给定点集 x  以及各点的权系数   ,如果函数族
 k ( x )k 0
n
m
i i 0
m
i i 0
满足
k j
 0,
( k ,  j )   i k ( xi ) j ( xi )  
i 0
 Ak  0, k  j
n
m
m

(
x
)
则称  k k 0 关于点集 xi i 0 带权 i i 0 正交
m
若 0, 1, , n 是多项式,则可得正交多项式族
14
正交多项式拟合
用正交多项式做最小二乘
设多项式 p0, p1, , pn 关于点集 x0, x1, , xm 带权 0, 1, , m
正交,则 f(x) 在 Hn 中的最小二乘拟合多项式为
S  ( x )  a0 P0 ( x )  a1 P1 ( x )  a2 P2 ( x ) 

k
其中 a
 误差
pk , f 


 pk , pk 
 an Pn ( x )
k = 0, 1, …, n
n
 ( x ) 2  f ( x ) 2    k ,  k  ( ak ) 2
2
2
k 0
离散形式的范数
15
正交多项式的构造
给定  xi , f ( xi )  和权系数  i ,如何构造正交多项式族 pk ( x )k 0
n
 三项递推公式:
 p0 ( x )  1, p1 ( x )  x   0

 pk 1 ( x )  ( x   k ) pk ( x )   k pk 1 ( x )
k = 1, … , n-1
 k  ( xpk , pk ) ( pk , pk ) ( k = 0, 1, … , n-1 )

其中 
  k  ( pk , pk ) ( pk 1 , pk 1 ) ( k = 1, 2, … , n-1 )
可以证明:pk ( x )
n
k 0
关于点集 x  带权   正交
m
i i 0
m
i i 0
16
几点注记
 p0 ( x )  1, p1 ( x )  x   0

 pk 1 ( x )  ( x   k ) pk ( x )   k 1 pk 1 ( x )


0 0

1 1

2 2
S ( x)  a P ( x)  a P ( x)  a P ( x) 
 k  ( xpk , pk ) ( pk , pk )

 k 1  ( pk , pk ) ( pk 1 , pk 1 )

n
 a Pn ( x )

k
a
pk , f 


 pk , pk 
(1) 可以将构造正交多项式族、解法方程、形成拟合多项式穿
插进行;
(2) n 可以事先给定,或在计算过程中根据误差来决定;
(3) 该方法非常适合编程实现,只用递推公式,并且当逼近次
数增加时,只要将相应地增加程序中的循环次数即可。
(4) 该方法是目前多项式拟合最好的计算方法,有通用程序。
17
举例
例:给定数据点及权系数,求二次最小二乘拟合多项式
xi
yi
i
0
1.00
1
0.5
1.75
1
0.6
1.96
1
0.7
2.19
1
0.8
2.44
1
0.9
2.71
1
1.0
3.00
1
解:通过直接计算,可得
ex34.m
a0  2.15,  0  0.64
( p0 , p0 )  7, ( f , p0 )  15.05
p1 ( x )  x  0.64
a1  1.98, 1  0.36,  0  0.094
p2 ( x )  x 2  0.98 x  0.12
a2  1.00
S2 ( x )  a0 p0 ( x )  a1 p1 ( x )  a2 p2 ( x )  x 2  x  1
Matlab 正交多项式最小二乘拟合函数: polyfit(x,y,n)
Matlab 曲线拟合工具箱:cftool
18
非线性最小二乘
非线性最小二乘拟合
有时需要其它函数,如 S ( x )  ae, S ( x )  ax
等拟合给定的
数据,这时建立的法方程是一个非线性方程组,称这类拟合
问题为非线性最小二乘问题。
bx
b
例:用指数函数 y( x )  ae bx 拟合下面的数据
xi
yi
1.00
5.10
1.25
5.79
1.50
6.53
1.75
7.45
2.00
8.46
例:用函数 y( x )  a sin bx 拟合表中的数据
xi
yi
0.1
0.6
0.2
1.1
0.3
1.6
0.4
1.8
0.5
2.0
0.6
1.9
0.7
1.7
0.8
1.3
19
作业
 作业(选做)
(1) 教材第 95 页:习题 17,使用下面的数据
xi
yi
19
19.0
25
32.3
31
49.9
38
73.3
44
97.8
(2) 教材 第 96 页:习题 2
(利用正交多项式计算二次最小二乘拟合多项式,采用相
间隔的四组数据)
20