最小二乘曲线拟合

  • 格式:doc
  • 大小:51.00 KB
  • 文档页数:3

关于最小二乘法的数学原理可以给出很多漂亮的解释,比如可以直接使用多元函数极值的观点也可以使用高等代数中向量到子空间距离短的观点。对于拟合问题,如果建立在泛函的基础上把基函数系看成是对代数空间的一种拓展,可以给出最小二乘一种比较简洁的解释。但这里还是选择第一种方法。

对于给定的一组数据1{(,)}miiixy,假设拟合函数

0011()()()()nnxaxaxax…

其中基函数为线性无关的函数系。最小二乘拟合问题就是求系数,使下面的表达式取极小值。

210()mnjjiijEaxy

根据多元函数极值问题,E取极值的必要条件是

01(,,,)0niEaaaa…

0011,nnayayayay

以及(1),()ijijjimnAaax,那么

22EAay

如此最小二乘拟合问题就转化为超定线性方程组

Aay

的最小二乘解问题。

例:求数据

x -3 -2 -1 0 1 2 3

y 4 2 3 0 -1 -2 -5

的最小二乘拟合,拟合函数为

2012()fxaaxax

步骤一:

>> function zx_nh()

x=[-3 -2 -1 0 1 2 3]';

y=[4 2 3 0 -1 -2 -5]';

a=[

zx_nh_f(x(1))

zx_nh_f(x(2))

zx_nh_f(x(3)) zx_nh_f(x(4))

zx_nh_f(x(5))

zx_nh_f(x(6))

zx_nh_f(x(7))];

b=y;

A=a'*a;

B=a'*b;

c=A\B

x_n=-3:0.02:3;

y_n=c(1)*1+c(2)*x_n+c(3)*x_n.^2;

plot(x,y,'*',x_n,y_n)

grid

步骤二:

>> function f=zx_nh_f(x)

f(1)=1;

f(2)=x;

f(3)=x^2;

步骤三:

>> clear

>> clc

>> zx_nh

回车得到:

c =

0.6667

-1.3929

-0.1310