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) = a00 + a11 + · · · + ann(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条件
mn
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
n1 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