最小二乘法matlab多项式拟合

上传人:cn****1 文档编号:470067998 上传时间:2023-03-26 格式:DOC 页数:18 大小:220KB
返回 下载 相关 举报
最小二乘法matlab多项式拟合_第1页
第1页 / 共18页
最小二乘法matlab多项式拟合_第2页
第2页 / 共18页
最小二乘法matlab多项式拟合_第3页
第3页 / 共18页
最小二乘法matlab多项式拟合_第4页
第4页 / 共18页
最小二乘法matlab多项式拟合_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《最小二乘法matlab多项式拟合》由会员分享,可在线阅读,更多相关《最小二乘法matlab多项式拟合(18页珍藏版)》请在金锄头文库上搜索。

1、word最小二乘法拟合探究吴春晖中国海洋大学 海洋环境学院 某某 某某 266100摘要:本文的拟合对象为含多个变量的待定系数的多项式。通过最小二乘法对多项式作出拟合,以向量矩阵的形式来解出待定的系数。在matlab中,通过算法,写出具体的解法。之后,先对最小二乘法的准确性作出检验,分析该方法在应对复杂情况的误差。在检验该方法的可行性之后,对给定的变量值进展拟合与解题。同时,本文将对基于Laguerre多项式的最小二乘法进展分析检验,关键词:最小二乘法 拟合 多变量Laguerre多项式引言:在之前的计算方法中,在给出节点后,如果需要根据给出的节点来确定未知节点的值,我们需要运用插值。在对插值

2、的精准性进展分析后,我们发现不同插值方式的误差都极大,而且插值所得出的函数的特征由插值方式所决定,并不能反映具体的节点原来可能的规律与分布。所以,拟合的方法相比插值而言,并不要求函数值在原节点处的值相等,却能在一定程度上反映原函数的规律。在该文中,我们主要运用最小二乘法进展拟合。目录第一章matlab最小二乘法拟合程序3最小二乘法拟合的数学法31.2 编写最小二乘法的matlab拟合程序331.2.2 最小二乘法拟合的程序44第二章最小二乘拟合法的检验与应用52.1 最小二乘法拟合的检验57第三章 Laguerre多项式的最小二乘拟合83.1 算法与程序89第四章 最小二乘法拟合的分析总结11

3、第一章matlab最小二乘法拟合程序1.1 最小二乘法拟合的数学方法最小二乘法拟合的算法如下:对于给定的一组数据,求次多项式使总误差 最小由于可以视作关于的多元函数,故上述拟合多项式的构造可归结为多元函数的极值问题令得到即有方程组 求解该正规方程组,即可得到最小二乘法的拟合系数。1.2 编写最小二乘法的matlab拟合程序在最小二乘法的数学算法的根底上,对算法进展优化,给出具体的程序算法。由线性代数的知识,易知可将每一组变量表现为在一个多维空间的向量。故对于根本方程组而言,无解即代表由多个变量所确定的多维空间的集合中,无法找到Y值的向量。在只有两个变量的情况下,即为Y的向量到平面的最短距离的向

4、量与转置的自变量向量的向量积为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=

5、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)

6、end solve=matrixyx; syms xv; syms w; syms sabcd; f=a*x(-1)+b*w2+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); 在程序的开头,是输入x与y值,变量的个数与幂次由输入决定。之后程序会自动进展运算,给出所要求的每个变量的所对应的系数值。之后求得的拟合函数表现为符号变量的形式。 程序的适用性较好,通过符号变量能直接输出需要求的拟合曲线

7、。 程序也存在可以改良的地方,比如可以将整个解法优化为一个函数,对输入的变量,直接进展处理。另外程序的循环算法的效率不高。代码较多。第二章最小二乘拟合法的检验与应用2.1 最小二乘法拟合的检验在上文所给出的拟合程序自带检验局部,分别输入原值与随机的几组数据来进展验证。图2.1.1 最小二乘法的原变量检验4个点Fig.2.1.1 Lagrange interpolation nodes of interpolationfor 4我们加大原变量的拟合个数。共有8组数据,得到的拟合曲线如下。图2.1.2最小二乘法的原变量检验8个点Fig.2.1.2Lagrange interpolation nod

8、es of interpolation(for 8)从上述原变量检验的结果来看,最小二乘法能较好的拟合出符合原函数规律的区间值。我们给出一系列由符合标准形式函数所构造的略微偏离原值的变量组,来进展检验。为了实现结果的直观性,保存一个单变量。构造的函数为x2+x+1.y值离原函数值在1的X围内波动,取2,4,10,100,1000组自变量值,并绘制出图像进展比拟,来检验最小二乘法的准确性。拟合得出的该二次项的系数随自变量的组数发生变化,见24101001000二次项值一次项值常数项值表2.1.1 拟合系数随自变量组数变化的规律Table 2.1.1 fitting coefficient wit

9、h the number of sets of independent variables图2.1.3 拟合系数随自变量组数变化的规律Table 2.1.3 fitting coefficient with the number of sets of independent variables分析总结:从以上单变量与多变量的多项式的检验结果看,拟合在表现原函数潜在的规律上,具有较好的表现。对于单变量的多项式,在检验中,我们通过随机函数,使因变量在原函数附近波动。随着自变量组数的增多,拟合的结果越来越接近原函数,当自变量达到一个较大数值时,拟合所得曲线根本等于原函数。对于多变量的最小二乘法拟合,

10、原理与单变量根本类似,我们所采取的用向量来表示正规方程组的方式同样适用于多变量。只需要改变列向量的数值,使其等于某变量的二次项的值。之后用右除法来解出各项的系数。选取计算方法引论上的P65的第3小题,并加以改良为:用最小二乘原理,求一个形如y=a+b*x2+c*x的经验公式,使其与如下数据相拟合。x1925313844y表2.2.1 拟合数据表Table.2.2.1 the data table运用之前的程序进展拟合,得到的2次项系数为0.0497,常数项系数为0.6882,一次项系数为0.0193.所得的拟合图线与拟合的节点吻合得较好。Figure.2.2.2 Fitting curve对二

11、次拟合方法进展简单应用后,我们发现该方法所得的拟合函数与原值吻合得较好。证明最小二乘法在实际运用中能发挥较大的作用。第三章 Laguerre多项式的最小二乘拟合3.1 算法与程序正交多项式的最小二乘法的拟合,主要改变的是各项的表达式,使其具有较好的独立性,随着项数的增加,能较好地逼近原函数。故整体算法与之前相仿,求各项系数的方法不变。由于项数是可以改变的,所以要设置项数,与多组符号变量,来使程序简洁。求正交多项式,也应用符号变量表示,注意常数项的特殊情况。故程序如下syms x f;syms l;m=3;data=19 25 31 38 44;y=19 25 31 38 44;l(1)=1;f

12、or n=2:ml(n)=exp(x)/factorial(n-1)*diff(x(n-1)*exp(-x),x,n-1);endfor i=1:meval(vec_,num2str(i),=subs(l(i),x,data)endvec_1=ones(1,length(data);% vec_2=data;% vec_3=ones(1,length(data);%length(x)=length(x1)matrix=zeros(m,m);yx=zeros(1,m);out=zeros(m,length(data);for i=1:m for j=1:m matrix(i,j)=eval(su

13、m(vec_,num2str(j),.*vec_,num2str(i),) %可写成两层循环 yx(j)=eval(sum(vec_,num2str(j),.*y)endend solve=matrixyx; for k=1:m f(k)=l(k)*solve(k) out(k,:)=subs(f(k),x,data) end values=sum(out,1); fun=sum(f,2);我们先选取比拟有规律的自变量与因变量,为data=19 25 31 38 44,y=19 25 31 38 44,x与y呈正比关系,对这些节点作基于Laguerre多项式的二次拟合。设项数为3,解得的系数分

14、别对应为1.000000000000145,-0.999999999999990,3.492540352537980e-16,拟合的值在原节点相等。见图3.2.1。 图3.2.1 拟合点为直线上点时的拟合曲线Figure.3.2.1 When fitting point for straight line point of curve fitting在完成一个比拟简单的检验后,我们构造无序的自变量与因变量各一组,其值均为0100随机数。对其进展基于Laguerre多项式的最小二乘拟合,改变项数,来观察拟合的情况。下面4幅图分别是项数为3,10,20,50所对应的拟合曲线图。图3.2.2 拟合项数分别为3,10,20,50时的拟合曲线Figure.3.2.2Fitting a count of 3,10,20,50 fitting c

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号