最小二乘法拟合探究
吴春晖
(中国海洋大学 海洋环境学院 山东 青岛 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程序的分析说明
在程序的开头,是输入x与y值,变量的个数与幂次由输入决定。之后程序会自动进行运算,给出所要求的每个变量的所对应的系数值。之后求得的拟合函数表现为符号变量的形式。
程序的适用性较好,通过符号变量能直接输出需要求的拟合曲线。
程序也存在可以改进的地方,比如可以将整个解法优化为一个函数,对输入的变量,直接进行处理。另外程序的循环算法的效率不高。代码较多。
第二章最小二乘拟合法的检验及应用
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)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论