您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 最小二乘法matlab
数值实验报告一1.数值实验问题已知液体的表面张力s是温度T的线性函数s=aT+b,对某种液体有表如下的实验数据。试用最小二乘法确定系数a,b。并通过图形展示拟合效果。T010203040809095s68.067.166.465.664.661.861.060.02.数值方法最小二乘法。3.数值结果方法一的系数:b0=67.9593a0=-0.0799方法二的系数:b1=67.9593a1=-0.0799方法三的系数:c2=67.9289b2=-0.0775a2=-2.4294e-005方法三为二次拟合,c2为常数项,b2为一次项的系数,a2为二次项的系数。结果图形展示:4.讨论数值实验中出现的问题:由于方法一是书上的运行过程中并没有什么问题,但是在方法二中当单独运行方法二时并不会出现问题,但是当与方法一同时运行时就会报错,经过对比分析发现是由于方法一与方法二的变量重合但是变量内的数值不通用造成的,任意更改重合变量中的一个后程序就可以完美运行了;在对方法三进行编程时遇到了编程完成但是找不到错误的问题,进过老师的指导发现是有一个变量的结果与预知不符,在老师的帮助下重新对该变量编程,最终完成了方法三的编写。分析实验结果:通过对实验结果的分析,发现三种方法的拟合曲线稍有差别,但是差别不大,均围绕说给的表格的数据拟合,没有大的偏移,这说明这三种方法都是有效可行的。程序代码:方法一:s=[68.067.166.465.664.661.861.060.0]';T=[010203040809095]';T1=ones(8,1);G=[T1T];Z=G\s;b0=Z(1);a0=Z(2);plot(T,s,'r*',T,a0*T+b0,'r')方法二:s=[68.067.166.465.664.661.861.060.0]';T=[010203040809095]';X=1:100;wi=ones(8,1);A(1,1)=0;A(1,2)=0;A(2,1)=0;A(2,2)=0;B(1,1)=0;B(2,1)=0;fori=1:8,A(1,1)=A(1,1)+wi(i);endfori=1:8,A(1,2)=A(1,2)+wi(i).*T(i);A(2,1)=A(1,2);endfori=1:8,A(2,2)=A(2,2)+wi(i).*T(i).^2;endfori=1:8,B(1,1)=B(1,1)+wi(i).*s(i);endfori=1:8,B(2,1)=B(2,1)+wi(i).*s(i).*T(i);endC=A\B;b1=C(1);a1=C(2);plot(X,a1*X+b1,'b+')方法三:s=[68.067.166.465.664.661.861.060.0]';T=[010203040809095]';X1=0:1:100;n=2;m=length(T);vi=ones(m,1);forj=1:n+1.fork=1:n+1,D(j,k)=0;endendforj=1:n+1.fork=1:n+1,forl=1:m,D(j,k)=D(j,k)+vi(l).*T(l).^(k+j-2);endendendforl=1:n+1,E(l,1)=0;endforj=1:n+1,forl=1:m,E(j,1)=E(j,1)+vi(l).*s(l).*T(l).^(j-1);endendF=D\E;c2=F(1);b2=F(2);a2=F(3);plot(X1,a2.*X1.^2+b2*X1+c2,'r+')
本文标题:最小二乘法matlab
链接地址:https://www.777doc.com/doc-1281017 .html