预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

MATLAB实验报告实验题目:一.插值多项式二.龙贝格积分法专业:软件工程24班姓名:卢京学号:2121601071一.插值多项式1.题目f(x)=lnx的数值如表所示,构造牛顿插值多项式并求ln0.53的值。X0.40.50.60.70.8lnx-0.916291-0.693147-0.510826-0.357765-0.2231442.程序function[c,d]=newpoly(x,y)%牛顿插值的MATLAB实现%这里x为n个节点的横坐标所组成的向量,y为%纵坐标所组成的向量。%c为所求的牛顿插值多项式的系数构成的向量。n=length(x);%取x的个数。d=zeros(n,n);%构造nXn的空数组。d(:,1)=y';forj=2:nfork=j:nd(k,j)=(d(k,j-1)-d(k-1,j-1))/(x(k)-x(k-j+1));endendc=d(n,n);fork=(n-1):-1:1c=conv(c,poly(x(k)));%conv求积,poly(x)将该多项式的系数赋给向量。m=length(c);c(m)=c(m)+d(k,k);end3.调试由表可知x0=0.4,x1=0.5,x2=0.6,x3=0.7,x4=0.7,函数值:Y0=-0.916291,y1=-0.693147,y2=-0.510826,y3=-0.357765,y4=-0.223144建立一个主程序np.mclcclearnewpoly([0.4,0.5,0.6,0.7,0.8],[-0.916291,-0.693147,-0.510826,-0.357765,-0.223144])计算结果如下:ans=-0.30962.6083-5.48615.6921-2.4744由此看出所求的牛顿多项式为:P(x)=-0.3096x4+2.6083x3-5.4861x2+5.6921x-2.4744P(0.53)=-0.6347。4.心得本实验通过MATLAB编程实现求解牛顿K次插值多项式,能加深自己对牛顿插值法的基本思路和步骤的理解,同时也加深了自己对均差的概念及其性质的理解。牛顿插值法正是应用均差的性质,克服了拉格朗日插值法的主要缺点。二.龙贝格积分法题目用龙贝格积分法计算积分的值,使其误差不超过10-5。程序function[R,quad,err,h]=romber(f,a,b,n,tol)%f是被积函数。%a,b分别为是积分的上下限。%n+1是T数表的列数。%tol是允许误差。%R是T数表。%quad是所求积分值。M=1;h=b-a;err=1;J=0;R=zeros(4,4);R(1,1)=h*(feval('f',a)+feval('f',b))/2;while((err>tol)&(J<n))|(J<4)J=J+1;h=h/2;s=0;forp=1:Mx=a+h*(2*p-1);s=s+feval('f',x);endR(J+1,1)=R(J,1)/2+h*s;M=2*M;forK=1:JR(J+1,K+1)=R(J+1,K)+(R(J+1,K)-R(J,K))/(4^K-1);enderr=abs(R(J,J)-R(J+1,K+1));%取绝对值。endquad=R(J+1,J+1);调试先用m文件先定义一个名为f.m的函数文件。functiony=f(x);y=2/sqrt(pi)*exp(x);%exp(x)以e为底的指数。建立一个主程序lbg.mclcclearromber('f',0,1,7,10^(-6))然后在MATLAB命令窗口运行上述主程序,即:>>lbg计算结果如下。ans=2.097800001.97911.93950001.94901.93891.9389001.94141.93891.93891.938901.93951.93891.93891.93891.9389由此可知:。心得本实验通过MATLAB程序编程实现龙贝格求积的方法,能加深对龙贝格求积的基本思路和步骤的理解,贝格求积方法中,前面的计算结果直接参与后面的计算,因而大大减少了计算量,也便于程序的实现。