最小二乘拟合实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称: 最小二乘拟合
1 引言
在科学实验和生产实践中,经常要从一组实验数据(,)(1,2,,)i i x y i m =出发,寻求函
数y=f (x )的一个近似表达式y=φ(x),称为经验公式,从几何上来看,这就是一个曲线拟
合的问题。
多项式的插值虽然在一定程度上解决了由函数表求函数近似表达式的问题,但用它来解决这里的问题,是有明显的缺陷的。首先,由实验提供的数据往往有测试误差。如果要求近似曲线y=φ(x)严格地通过所给的每个数据点(,)i i x y ,就会使曲线保留原来的测试误差,因此当个别数据的误差较大的时候,插值的效果是不理想的。其次,当实验数据较多时,用插值法得到的近似表达式,明显缺乏实用价值。在实验中,我们常常用最小二乘法来解决这类问题。
定义()i i i x y δϕ=-为拟合函数在i x 处的残差。为了是近似曲线能尽量反映所给数据点的变化趋势,我们要求||i δ尽可能小。在最小二乘法中,我们选取()x ϕ,使得偏差平方和最小,即
2
2
1
1
[()]min m
m
i i i i
i
x y δϕ===
-=∑∑,这就是最小二乘法的原理。
2 实验目的和要求
运用matlab 编写.m 文件,要求用最小二乘法确定参数。
以下一组数据中x 与y 之间存在着bx y ae =的关系,利用最小二乘法确定式中的参数a 和b ,并计算相应的军方误差与最大偏差。数据如下:
3 算法原理与流程图
(1) 原理
最小二乘是要求对于给定数据列(,)(1,2,
,)i i x y i m =,要求存在某个函数类
01{(),(),
()}()n x x x n m ϕϕϕΦ=<中寻求一个函数:
**
**0011()()()()n n x a x a x a x ϕϕϕϕ=++
+,使得*()x ϕ满足
*
2
2
()1
1
[()]min
[()]n
n
i i i i x i
i
x y x y ϕϕϕ∈Φ
==-=-∑∑。 根据以上条件可知,点*
**
01(,,,)n a a a 是多元函数
2
011
(,,
,)[()]m n
n k k i i i k
S a a a a x y ϕ===
-∑∑ 的极小点,从而*
**
01,,
,n
a a a 满足方程组 0(0,1,,)k
S
k n a ∂==∂
即00111
1
11
()
()()()()()()m
m
m
m
k i i k i i n k i n i k i i i i i i
a x x a x x a x x x y ϕϕϕϕϕϕϕ====+++=
∑∑∑∑, 记1
(,)()()m
i i i
h g h x g x ==
∑,则上述方程组可表示成0011(,)(,)(,)(,)k k n k n k a a a f ϕϕϕϕϕϕϕ+++=,(k=0,1,…,n)
写成矩阵形式为
0001000101111101(,)(,)
(,)(,)(,)(,)(,)(,)(,)(,)
(,)(,)n n n n n n n n a f a f a f ϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕ⎡⎤
⎡⎤⎡⎤
⎢
⎥
⎢⎥⎢⎥⎢⎥
⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥
⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
,这个方程组成为法方程组,可以证明,当01(),(),()n x x x ϕϕϕ线性无关时,它有唯一解。
特别地,曲线拟合的一种常用情况为代数多项式,即取
01()1,(),()n
n x x x x x ϕϕϕ===,则1
1
(,)m
m
j
k j k
j k i
i
i i
i
x x
x ϕϕ+===
=
∑∑
1
(,)m
k k i i i
f x y ϕ==
∑ (k=0,1,…,n) 故相应的法方程组变为
1
1
102
111
111
21
1
11m
m
m n i i
i i
i i m
m
m
m n i i i i i i i
i i m
m
m
m n n n n n i i i i i i i
i i m x x x a a x x x x y a x x x x y ===+====+====⎡⎤
⎡⎤
⎢⎥⎢⎥⎢⎥⎢⎥⎡⎤
⎢⎥⎢⎥⎢⎥
⎢⎥⎢⎥
⎢⎥=⎢⎥⎢⎥⎢⎥
⎢⎥⎢⎥⎢⎥
⎢⎥⎢⎥⎢⎥⎣⎦
⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
⎣⎦
∑∑∑∑∑∑∑∑∑∑∑,这就是最小二乘法的原理。 在解决本题时,为了简便起见,我们将指数转变成代数多项式去计算。
在bx y ae =两边取对数,得到ln ln y a bx =+,取(1)(1)ln ,y y x x ==,可见(1)(1),y x 是呈线性关系的。这样我们可以方便地利用最小二乘法求取参数。 (2)流程图
整体流程图
生成矩阵C 流程图
4 程序代码及注释
为一次项系数
及m 生成中间矩阵C
,2,,)m 生成法方程组的系数矩
0,1,
,)
n 0,1,,)n