最小二乘法拟合探究
吴春晖
(中国海洋大学海洋环境学院 山东 青岛 266100)
摘要:
本文的拟合对象为含多个变量的待定系数的多项式。通过最小二乘法对多项式作出拟合,以向量矩阵的形式来解出待定的系数。在matlab中,通过算法,写出具体的解法。之后,先对最小二乘法的准确性作出检验,分析该方法在应对复杂情况的误差。在检验该方法的可行性之后,对给定的变量值进行拟合与解题。同时,本文将对基于Laguerre多项式的最小二乘法进行分析检验,
关键词:最小二乘法拟合多变量Laguerre多项式
引言:
在之前的计算方法中,在给出已知节点后,如果需要根据给出的节点来确定未知节点的值,我们需要运用插值。在对插值的精准性进行分析后,我们发现不同插值方式的误差都极大,而且插值所得出的函数的特征由插值方式所决定,并不能反映具体的节点原来可能的规律与分布。所以,拟合的方法相比插值而言,并不要求函数值在原节点处的值相等,却能在一定程度上反映原函数的规律。在该文中,我们主要运用最小二乘法进行拟合。
目录
第一章matlab最小二乘法拟合程序 ...................................................................................... 3 1.1
最小二乘法拟合的数学法 ........................................................................................ 3
1.2 编写最小二乘法的matlab拟合程序 ........................................................................... 3 1.2.1程序算法 .................................................................................................................. 3 1.2.2 最小二乘法拟合的程序 ......................................................................................... 4 1.3程序的分析说明 ............................................................................................................. 4 第二章最小二乘拟合法的检验及应用 ................................................................................... 5 2.1 最小二乘法拟合的检验 ................................................................................................ 5 2.2最小二乘法拟合的实际应用 ......................................................................................... 7 第三章 Laguerre多项式的最小二乘拟合 .............................................................................. 8 3.1 算法与程序 .................................................................................................................... 8 3.2检验与分析 ..................................................................................................................... 9 第四章最小二乘法拟合的分析总结 ..................................................................................... 11
第一章matlab最小二乘法拟合程序
1.1 最小二乘法拟合的数学方法
最小二乘法拟合的算法如下:
对于给定的一组数据
(xi,yi),i?1,2,?,N求t(t?N)次多项式
y??aixjj?0t使总误差
Q??(yi??aixj)2i?1j?0Nt最小.
由于Q可以视作关于为多元函数的极值问题.
ai(i?0,1,2,?,t)的多元函数,故上述拟合多项式的构造可归结
Nt?Q(yi??ajxij)xik?0,k?0,1,2,?,t?0,k?0,1,2,?,t??aj?0令k得到i?1
即有方程组
?a0N?a1?xi???at?xit??yi?2t?1?a0?xi?a1?xi???at?xi??xiyi????a?xt?a?xt?1???a?x2t??xtyi1itiii?0
求解该正规方程组,即可得到最小二乘法的拟合系数。
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)); 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程序的分析说明
在程序的开头,是输入x与y值,变量的个数与幂次由输入决定。之后程序会自动进行运算,给出所要求的每个变量的所对应的系数值。之后求得的拟合函数表现为符号变量的形
相关推荐: