最小二乘法拟合探究
吴春晖
中国海洋大学 海洋环境学院 山东 青岛 266100)
摘要
本文的拟合对象为含多个变量的待定系数的多项式。通过最小二乘法对多项式作出拟合,以向量矩阵的形式来解出待定的系数。在matlab中,通过算法,写出具体的解法。之后,先对最小二乘法的准确性作出检验,分析该方法在应对复杂情况的误差。在检验该方法的可行性之后,对给定的变量值进行拟合与解题。同时,本文将对基于Laguerre多项式的最小二乘法进行分析检验,
关键词:最小二乘法 拟合 多变量 Laguerre多项式
引言
在之前的计算方法中在给出已知节点后如果需要根据给出的节点来确定未知节点的值
们需要运用插值在对插值的精准性进行分析后我们发现不同插值方式的误差都极大而且插值所得出的函数的特征由插值方式所决定,并不能反映具体的节点原来可能的规律与分布。所以,拟合的方法相比插值而言,并不要求函数值在原节点处的值相等,却能在一定程度上反映原函数的规律。在该文中,我们主要运用最小二乘法进行拟合。
第一章matlab最小二乘法拟合程序
1.1最小二乘法拟合的数学方法
最小二乘法拟合的算法如下:
对于给定的一组数据次多项式使总误差 最小.
由于可以视作关于的多元函数,故上述拟合多项式的构造可归结为多元函数的极值问题.
得到
即有方程组   
    求解该正规方程组,即可得到最小二乘法的拟合系数。
   
1.2 编写最小二乘法的matlab拟合程序
1.2.1程序算法
在最小二乘法的数学算法的基础上,对算法进行优化,给出具体的程序算法。
由线性代数的知识,易知可将每一组变量表现为在一个多维空间的向量。故对于基本方程组而言,无解即代表由多个变量所确定的多维空间的集合中,无法到Y值的向量。在只有两个变量的情况下,即为Y的向量到平面的最短距离的向量与转置的自变量向量的向量积为0.
所以我们可以建立两个矩阵一个代表Y向量,另一个代表X向量。通过循环求得代表X向量的每个变量的在确定的位置的转置与另一变量的向量积,另一变量为Y或X向量。之后利用左除法解出待定的系数,即得到了我们要知道的具体的函数。
然后通过符号变量,对给定的x值进行运算,并给出拟合值。
1.2.2 最小二乘法拟合的程序
在这里,我们选取了特定的含二次幂,一次幂,常数及负一次幂的多项式进行拟合,每一系数对应一个不同的变量。
具体的程序代码如下
x=[1 2 1 1];
x1=[2 4 2 3];
x2=[3 6 5 3];
y=[6 14 7 7];
vec_1=x.^-1;
vec_2=x1.^2;
vec_3=ones(1,length(x));matlab拟合数据
vec_4=x2
%length(x)=length(x1)
matrix=zeros(4,4);
yx=zeros(1,4);
for j=1:4
    matrix(1,j)=eval(['sum(vec_',num2str(j),'.*(x.^(-1)))'])
    matrix(2,j)=eval(['sum(vec_',num2str(j),'.*(x1.^2))'])
    matrix(3,j)=eval(['sum(vec_',num2str(j),'.*1)'])
    matrix(4,j)=eval(['sum(vec_',num2str(j),'.*x2)'])
    yx(j)=eval(['sum(vec_',num2str(j),'*y)'])
end
    solve=matrix\yx';
  syms xv;
  syms w;
  syms sabcd;
  f=a*x^(-1)+b*w^2+c*1+d*s;
  out=0;
  in=double(in);
  in=[1 2 3 solve(1) solve(2) solve(3) solve(4)];
  format long;
  out=double(subs(f,[x w s a b c d],in));
1.3程序的分析说明
  在程序的开头,是输入xy值,变量的个数与幂次由输入决定。之后程序会自动进行运算,给出所要求的每个变量的所对应的系数值。之后求得的拟合函数表现为符号变量的形式。
  程序的适用性较好,通过符号变量能直接输出需要求的拟合曲线。
  程序也存在可以改进的地方,比如可以将整个解法优化为一个函数,对输入的变量,直接进行处理。另外程序的循环算法的效率不高。代码较多。
第二章最小二乘拟合法的检验及应用
2.1 最小二乘法拟合的检验
在上文所给出的拟合程序自带检验部分分别输入原值与随机的几组数据来进行验证
图2.1.1  最小二乘法的原变量检验(4个点)
Fig.2.1.1 Lagrange interpolation nodes of interpolation(for 4)
我们加大原变量的拟合个数。共有8组数据,得到的拟合曲线如下。
图2.1.2最小二乘法的原变量检验(8个点)
Fig.2.1.2Lagrange interpolation nodes of interpolation(for 8)