最小二乘拟合实验报告

最小二乘拟合实验报告
最小二乘拟合实验报告

工程学院

《计算方法》实验报告

课 程 名 称 计算方法 系 院 理 学 院 专 业 信息与计算科学 班 级 12级一班 学 生 姓 名 志辉 学 号 2012101316

《最小二乘求解》

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 ,2,,)m

0,1,

,)

n 0,1,,)n

5算例分析

相关主题
相关文档
最新文档