
最小二乘法求函数逼近算法:
最小二乘拟合是在一类曲线中求一曲线使与被拟合曲线在节点的误差平方和最小。
最小二乘拟合用数学语言表述为:
已知数据和函数空间
求一函数,使
令
那么
问题等价于求
使。
从抽象意义上说,是要在函数空间中找与最近的元素。从通俗意义上讲,是一个关于的二次函数的最小化问题。
根据函数极值的必要条件,对求偏导:,
得。
用内积表示为线性方程组
其矩阵形式为
最小二乘法求函数逼近程序:
function p=zuixiao(xi,yi,m)
%xi---自变量
%yi---应变量
%m----拟合次数
%a----解超定方程组的最小二乘解
A=zeros(m+1,m+1);
for i=0:m
for j=0:m
A(i+1,j+1)=sum(xi.^(i+j));
end
b(i+1)=sum(xi.^i.*yi);
end
a=A\\b';
p=fliplr(a');
f=polyval(p,xi);
plot(xi,yi,'b*',xi,f,'r--');
disp('拟和方程系数按照降幂排列如下')
例:设从某一实验中测得2个变量的一组数据如下:
| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | |
| 10 | 9 | 6 | 3 | 3 | 6 | 8 | 10 | 12 |
输入:clear all
clc
xi=[1 3 4 5 6 7 8 9 10];
yi=[10 5 4 2 1 1 2 3 4];
zuixiao(xi,yi,2)
得到:
拟和方程系数按照降幂排列如下
ans =
0.2676 -3.6053 13.4597
指导教师: 年 月 日
