最小二乘法matlab多项式拟合_第1页
最小二乘法matlab多项式拟合_第2页
最小二乘法matlab多项式拟合_第3页
最小二乘法matlab多项式拟合_第4页
最小二乘法matlab多项式拟合_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最小二乘法拟合探究吴春晖〔中国海洋大学海洋环境学院山东青岛266100〕摘要:本文的拟合对象为含多个变量的待定系数的多项式。通过最小二乘法对多项式作出拟合,以向量矩阵的形式来解出待定的系数。在matlab中,通过算法,写出具体的解法。之后,先对最小二乘法的准确性作出检验,分析该方法在应对复杂情况的误差。在检验该方法的可行性之后,对给定的变量值进行拟合与解题。同时,本文将对基于Laguerre多项式的最小二乘法进行分析检验,关键词:最小二乘法拟合多变量Laguerre多项式引言:在之前的计算方法中,在给出节点后,如果需要根据给出的节点来确定未知节点的值,我们需要运用插值。在对插值的精准性进行分析后,我们发现不同插值方式的误差都极大,而且插值所得出的函数的特征由插值方式所决定,并不能反映具体的节点原来可能的规律与分布。所以,拟合的方法相比插值而言,并不要求函数值在原节点处的值相等,却能在一定程度上反映原函数的规律。在该文中,我们主要运用最小二乘法进行拟合。目录第一章matlab最小二乘法拟合程序 31.1 最小二乘法拟合的数学法 31.2编写最小二乘法的matlab拟合程序 3程序算法 31.2.2最小二乘法拟合的程序 41.3程序的分析说明 4第二章最小二乘拟合法的检验及应用 52.1最小二乘法拟合的检验 52.2最小二乘法拟合的实际应用 7第三章Laguerre多项式的最小二乘拟合 83.1算法与程序 83.2检验与分析 9第四章最小二乘法拟合的分析总结 11第一章matlab最小二乘法拟合程序最小二乘法拟合的数学方法最小二乘法拟合的算法如下:对于给定的一组数据,求次多项式使总误差最小.由于可以视作关于的多元函数,故上述拟合多项式的构造可归结为多元函数的极值问题.令得到即有方程组求解该正规方程组,即可得到最小二乘法的拟合系数。1.2编写最小二乘法的matlab拟合程序程序算法在最小二乘法的数学算法的根底上,对算法进行优化,给出具体的程序算法。由线性代数的知识,易知可将每一组变量表现为在一个多维空间的向量。故对于根本方程组而言,无解即代表由多个变量所确定的多维空间的集合中,无法找到Y值的向量。在只有两个变量的情况下,即为Y的向量到平面的最短距离的向量与转置的自变量向量的向量积为0.所以我们可以建立两个矩阵,一个代表Y向量,另一个代表X向量。通过循环求得代表X向量的每个变量的在确定的位置的转置与另一变量的向量积,另一变量为Y或X向量。之后利用左除法解出待定的系数,即得到了我们要知道的具体的函数。然后通过符号变量,对给定的x值进行运算,并给出拟合值。1.2.2最小二乘法拟合的程序在这里,我们选取了特定的含二次幂,一次幂,常数及负一次幂的多项式进行拟合,每一系数对应一个不同的变量。具体的程序代码如下:x=[1211];x1=[2423];x2=[3653];y=[61477];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);forj=1:4matrix(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)'])endsolve=matrix\yx';symsxv;symsw;symssabcd;f=a*x^(-1)+b*w^2+c*1+d*s;out=0;in=double(in);in=[123solve(1)solve(2)solve(3)solve(4)];formatlong;out=double(subs(f,[xwsabcd],in));1.3程序的分析说明在程序的开头,是输入x与y值,变量的个数与幂次由输入决定。之后程序会自动进行运算,给出所要求的每个变量的所对应的系数值。之后求得的拟合函数表现为符号变量的形式。程序的适用性较好,通过符号变量能直接输出需要求的拟合曲线。程序也存在可以改良的地方,比方可以将整个解法优化为一个函数,对输入的变量,直接进行处理。另外程序的循环算法的效率不高。代码较多。第二章最小二乘拟合法的检验及应用2.1最小二乘法拟合的检验在上文所给出的拟合程序自带检验局部,分别输入原值与随机的几组数据来进行验证。图2.1.1最小二乘法的原变量检验〔4个点〕Fig.2.1.1Lagrangeinterpolationnodesofinterpolation〔for4〕我们加大原变量的拟合个数。共有8组数据,得到的拟合曲线如下。图2.1.2最小二乘法的原变量检验〔8个点〕Fig.2.1.2Lagrangeinterpolationnodesofinterpolation(for8)从上述原变量检验的结果来看,最小二乘法能较好的拟合出符合原函数规律的区间值。我们给出一系列由符合标准形式函数所构造的略微偏离原值的变量组,来进行检验。为了实现结果的直观性,保存一个单变量。构造的函数为x^2+x+1.y值离原函数值在1的范围内波动,取2,4,10,100,1000组自变量值,并绘制出图像进行比拟,来检验最小二乘法的准确性。拟合得出的该二次项的系数随自变量的组数发生变化,见24101001000二次项值0.86080.99120.99971.00001.0000一次项值1.24070.96900.97120.99901.0000常数项值1.81520.97901.02801.07380.9950表2.1.1拟合系数随自变量组数变化的规律Table2.1.1fittingcoefficientwiththenumberofsetsofindependentvariables图2.1.3拟合系数随自变量组数变化的规律Table2.1.3fittingcoefficientwiththenumberofsetsofindependentvariables分析总结:从以上单变量与多变量的多项式的检验结果看,拟合在表达原函数潜在的规律上,具有较好的表现。对于单变量的多项式,在检验中,我们通过随机函数,使因变量在原函数附近波动。随着自变量组数的增多,拟合的结果越来越接近原函数,当自变量到达一个较大数值时,拟合所得曲线根本等于原函数。对于多变量的最小二乘法拟合,原理与单变量根本类似,我们所采取的用向量来表示正规方程组的方式同样适用于多变量。只需要改变列向量的数值,使其等于某变量的二次项的值。之后用右除法来解出各项的系数。2.2最小二乘法拟合的实际应用选取《计算方法引论》上的P65的第3小题,并加以改良为:用最小二乘原理,求一个形如y=a+b*x^2+c*x的经验公式,使其与以下数据相拟合。x1925313844y19.032.349.073.397.8表2.2.1拟合数据表Table.2.2.1thedatatable运用之前的程序进行拟合,得到的2次项系数为0.0497,常数项系数为0.6882,一次项系数为0.0193.所得的拟合图线与拟合的节点吻合得较好。图2.2.2拟合曲线Figure.2.2.2Fittingcurve对二次拟合方法进行简单应用后,我们发现该方法所得的拟合函数与原值吻合得较好。证明最小二乘法在实际运用中能发挥较大的作用。第三章Laguerre多项式的最小二乘拟合3.1算法与程序正交多项式的最小二乘法的拟合,主要改变的是各项的表达式,使其具有较好的独立性,随着项数的增加,能较好地逼近原函数。故整体算法与之前相仿,求各项系数的方法不变。由于项数是可以改变的,所以要设置项数,及多组符号变量,来使程序简洁。求正交多项式,也应用符号变量表示,注意常数项的特殊情况。故程序如下symsxf;symsl;m=3;data=[1925313844];y=[1925313844];l(1)=1;forn=2:ml(n)=exp(x)/factorial(n-1)*diff(x^(n-1)*exp(-x),x,n-1);endfori=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));fori=1:mforj=1:mmatrix(i,j)=eval(['sum(vec_',num2str(j),'.*vec_',num2str(i),')'])%可写成两层循环yx(j)=eval(['sum(vec_',num2str(j),'.*y)'])endendsolve=matrix\yx';fork=1:mf(k)=l(k)*solve(k)out(k,:)=subs(f(k),x,data)endvalues=sum(out,1);fun=sum(f,2);3.2检验与分析我们先选取比拟有规律的自变量与因变量,为data=[1925313844],y=[1925313844],x与y呈正比关系,对这些节点作基于Laguerre多项式的二次拟合。设项数为3,解得的系数分别对应为1.000000000000145,-0.999999999999990,3.492540352537980e-16,拟合的值在原节点相等。见图。图3.2.1拟合点为直线上点时的拟合曲线Figure.3.2.1Whenfittingpointforstraightlinepointofcurvefitting在完成一个比拟简单的检验后,我们构造无序的自变量与因变量各一组,其值均为0~100随机数。对其进行基于Laguerre多项式的最小二乘拟合,改变项数,来观察拟合的情况。下面4幅图分别是项数为3,10,20,50所对应的拟合曲线图。图3.2.2拟合项数分别为3,10,20,50时的拟合曲线Figure.3.2.2Fittingacountof3,10,20,50fittingcurverespectively观察拟合的曲线,随着项数的增加,拟合的精准程度越来越高。在项数为20时,误差为10^-5数量级,50时,误差的数量级为10^-9数量级。但随着项数的增多,在项数较大时,拟合的曲线震荡较为明显。在一定程度上,缺乏美感与规律性。总的来说,基于正交多项式的最小二乘法,随着项数的增加,在一定的程度内,拟合的结果越来越好。但当项数持续增大,拟合的结果接近插值,也出现了插值存在的问题,震荡与波动较大。在利用正交多项式时,要选好项数。第四章最小二乘法拟合的分析总结本文中,我们运用matlab编写了在不同情况下的最小二乘法拟合程序。在拟合项为单变量,多变量及正交多项式的情况下,用最小二乘法拟合。这些情况下的拟合有一个共同点,即求各项前的系数。而附中的调和分析,并不是严格意义上的多项式,是三角函数的拟合,它的算法程序会有所不同,按照最小二乘法的标准做法解调和常数。在求各项前系数时,可以利用矩阵与向量将过程简化,具有普适性最小二乘法的特点是拟合,允许与原值有误差,尽可能表达曲线的规律,如分布在一条曲线附近。在单变量的屡次项的拟合中,拟合值在标准函数附近波动。当拟合值增多时,拟合的系数值越来越逼近标准值。多变量的拟合,也会在多维空间,接近某条特定曲线,由于变量维数较多,无法较好展示。单变量与多变量的拟合中,各项决定了曲线的根本面貌。在项数较少时,原值与拟合值的误差会变大。如果增大项数,适宜的项数选择较为困难。所以在最后我们又应用了基于Laguerre多项式的拟合多项,可以形成无限多的拟合项。但当拟合项过多时,曲线的震荡会越来越剧烈。对100内的随机数拟合中,在拟合项在20左右,拟合结果都会比拟理想,误差也在10^-5数量级。50时,毛刺过多,可能滤波平滑处理后,能得到较好的拟合曲线。对于其它正交多项式,规律相似。拟合项的选择,对最小二乘法极为重要。在调和分析时,三角函数,拟合的结果变会相对准确。如果给出没有规律的多组数,正交多项式拟合是较好的方法。但要注意质量控制,不能一味增加项数。总之,最小二乘法,作为通用且较好用的拟合方法,有很大的研究与实用价值。参考文献[1]徐萃薇,孙绳武.计算方法引论.北京:高等教育出版社,2015[2]郑成德。数值计算方法.北京:清华大学出版社,2010Abstract:Inthispaper,thegivenfunctionwithagivendomain[1,1]foravarietyofinterpolation,includingHermiteinterpolation,thoughlaserinterpolation,cubicsplineinterpolation,thepiecewiselinearinterpolation,etc.Interpolationismainlycomposedofmatlab,bywritingmultipleinterpolationfunctiontocalculate,optimizationandcomparisoninterpolationbythemainprogram.Researchontheaccuracyoftheinterpolation,mainlyfromthefromtheoriginalinterpolationnodesontheeffectofinterpolationandtheaccuracyoftheinterpolationfunction.Takedifferentinterpolationnodes,theinterpolationaccuracyofevaluationunderthetakeagain.Theaccuracyoftheinterpolationfunctionmainlyfromtheperspectiveofthefollowingconsiderations:computinginterpolationfunctionandintegralfunctiondifference;Computingtheinterpolationfunctionandthefunctioninterpolationofvarianceandmean.Keywords:multivariateLaguerrepolynomialleastsquaresfitting附调和分析matlab程序〔个人计算机运算耗时太长,尚未解出〕symsa0a1a2a3a4w1w2w3w4s1s2s3s4ysda0sda1sda2sda3sda4sdw1sdw2sdw3sdw4sds1sds2sds3sds4t;f=a0+a1*cos(w1*t+s1)+a2*cos(w2*t+s2)+a3*cos(w3*t+s3)+a4*cos(w4*t+s4);w=y-f;f='f1';name={'a0''a1''a2''a3''a4''w1''w2''w3''w4''s1''s2''s3''s4'};name_v=struct(f,name);x=;z=;fori=1:13oo=name_v(i).f1;eval(['d',oo,'=diff(w^2,name_v(i).f1)'])endfork=1:13kk=nam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论