收藏 分销(赏)

最小二乘拟合实验报告.pdf

上传人:丰**** 文档编号:4754418 上传时间:2024-10-12 格式:PDF 页数:8 大小:176.01KB 下载积分:6 金币
下载 相关 举报
最小二乘拟合实验报告.pdf_第1页
第1页 / 共8页
最小二乘拟合实验报告.pdf_第2页
第2页 / 共8页


点击查看更多>>
资源描述
实验名称实验名称:最小二乘拟合1引言引言在科学实验和生产实践中,经常要从一组实验数据出发,寻求(,)(1,2,)iixyimL函数 y=f(x)的一个近似表达式 y=(x),称为经验公式,从几何上来看,这就是一个曲线拟合的问题。多项式的插值虽然在一定程度上解决了由函数表求函数近似表达式的问题,但用它来解决这里的问题,是有明显的缺陷的。首先,由实验提供的数据往往有测试误差。如果要求近似曲线 y=(x)严格地通过所给的每个数据点,就会使曲线保留原来的测试误差,因(,)iixy此当个别数据的误差较大的时候,插值的效果是不理想的。其次,当实验数据较多时,用插值法得到的近似表达式,明显缺乏实用价值。在实验中,我们常常用最小二乘法来解决这类问题。定义为拟合函数在处的残差。为了是近似曲线能尽量反映所给数据()iiixyix点的变化趋势,我们要求尽可能小。在最小二乘法中,我们选取,使得偏差平方|i()x和最小,即,这就是最小二乘法的原理。2211()m i nmmiiiiixy2实验目的和要求实验目的和要求运用 matlab 编写.m 文件,要求用最小二乘法确定参数。以下一组数据中 x 与 y 之间存在着的关系,利用最小二乘法确定式中的参数bxyaea 和 b,并计算相应的军方误差与最大偏差。数据如下:x12345678910y0.8982.383.071.842.021.942.222.774.024.76x111213141516171819y5.466.5310.916.522.535.750.661.681.83算法原理与流程图算法原理与流程图(1)原理最小二乘是要求对于给定数据列,要求存在某个函数类(,)(1,2,)iixyimL中寻求一个函数:01(),(),()()nxxxnm L,使得满足*0011()()()()nnxaxaxaxL*()x。*22()11()m i n()nniiiixiixyxy根据以上条件可知,点是多元函数*01(,)naaaL20110(,)()mnnkkiiikS aaaaxy L的极小点,从而满足方程组*01,naaaL0(0,1,)kSknaL即,00111111()()()()()()()mmmmkiikiinkinikiiiiiiaxxaxxaxxx yL记,则上述方程组可表示成1(,)()()miiih gh xg x,(k=0,1,,n)0011(,)(,)(,)(,)kknknkaaafL写成矩阵形式为,这个方程组成为法方程组,可以证明,0001000101111101(,)(,)(,)(,)(,)(,)(,)(,)(,)(,)(,)(,)nnnnnnnnafafaf LLMMLMMML当线性无关时,它有唯一解。01(),(),()nxxxL特别地,曲线拟合的一种常用情况为代数多项式,即取,则01()1,(),()nnxxxxxL11(,)mmjkjkjkiiiiix xx (k=0,1,,n)1(,)mkkiiifx y故相应的法方程组变为,这就是最小二乘法的原理。1110211111121111mmmniiiiiimmmmniiiiiiiiimmmmnnnnniiiiiiiiimxxxaaxxxx yaxxxx yLLMMMLMML在解决本题时,为了简便起见,我们将指数转变成代数多项式去计算。在两边取对数,得到,取,可见是bxyael nl nyabx(1)(1)l n,yy xx(1)(1),yx呈线性关系的。这样我们可以方便地利用最小二乘法求取参数。(2)流程图输入 及 m,n生成中间矩阵 C,(1,2,)iix y imL生成法方程组的系数矩阵 生成法方程组的右端向量 解法方程组得输出 TbC YTAC C(0,1,)ia inL(0,1,)ia inL i=1,2,mj=2,3,n+111ic1*i jii jcxc整体流程图生成矩阵 C 流程图4程序代码及注释程序代码及注释%最小二乘拟合%a为线性拟合中的常数,b为一次项系数%t为均方误差,maxi为最大偏差function a,b,t,maxi=polyfit(x0,y0,n)m=length(x0);p=length(y0);%x0和y0长度不等时,报错if m=p fprintf(Error!Please input again!n);end%生成中间矩阵Cfor i=1:m C(i,1)=1;for j=2:n+1 C(i,j)=x0(i)*C(i,j-1);endend%生成系数矩阵AA=C*C;%将题目中的y的每项求自然对数后得到y1for i=1:m y1(i)=log(y0(i);end%生成法方程组的右端向量BB=C*y1;%求解拟合系数X=AB;%题中,a=exp(X(1)),b=X(2)a=exp(X(1);b=X(2);%先求偏差平方和,再求均方误差sum=0;for k=1:m y2(k)=a*exp(b*x0(k);l(k)=y0(k)-y2(k);sum=sum+l(k).2;endt=sqrt(sum);%最大偏差为偏差矩阵中绝对值最大的一项maxi=max(max(abs(l);end5算例分析算例分析1、测试示例 x=1:18;y=0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8;a b t max=polyfit(x,y,1)Error!Please input again!a=0.7185b=0.2227t=31.6255max=22.06312、计算过程(1)首先输入已知点 x=1:19;y=0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8;(2)输出结果 a b t max=polyfit(x,y,1)a=0.6814b=0.2306t=38.3255max=27.3047其中,a,b,t,max 分别为常数项,一次项系数,均方误差,最大偏差。6讨论与结论讨论与结论1、时间复杂度:tic;a b t max=polyfit(x,y,1);tocElapsed time is 0.859861 seconds.说明该算法具有一定的复杂性。2、直观展示:输入以下命令:x=1:19;y=0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8;for i=1:19y0(i)=log(y(i);end x0=0:0.01:20;y1=0.6814*exp(0.2306*x0);plot(x,y,+)hold on plot(x0,y1)plot(x,y0,+)y2=log(0.6814)+0.2306*x0;hold on plot(x0,y2,-)可得如下图形:参考文献参考文献1 易大义,沈云宝,李有法.计算方法(第 2 版),浙江大学出版社.p.29-53.2 张琨 高思超 毕靖 编著 MATLAB2010 从入门到精通 电子工业出版社
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服