预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

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

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

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

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

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

《数值分析》实验报告 实验名称使用matlab编写数值计算程序实验时间**姓名**班级**学号**成绩实验报告内容要求: 一、实验目的与内容;二、算法描述(数学原理或设计思路、计算公式、计算步骤); 三、程序代码;四、数值结果;五、计算结果分析(如初值对结果的影响;不同方法的比较;该方法的特点和改进等);六、实验中出现的问题,解决方法及体会(整个实验过程中(包括程序编写,上机调试等)出现的问题及其处理等广泛的问题). 实验四数值积分的Matlab实现 一、实验目的与要求 1.熟练梯形公式、Simpson公式、复化梯形公式、复化Simpson公式、Romberg求积公式; 2.熟悉符号积分,能数值积分的值与精确值的比较; 3.培养编程与上机调试能力。 二、实验原理 设将积分区间[a,b]划分为n等份,步长h=,选取等距节点x=a+kh构造出的插值型求积公式 I=(b-a) 称为牛顿-科特斯公式,式中C称为科特斯系数. 当n=1时,C=C=, 即为梯形公式T=[f(a)+f(b)] 当n=2时,同理可求Simpson公式: S=. 对应的复合公式分别为 T, S, 运用理查德外推加速方法可得龙贝格求积算法: T,k=1,2,…. 三、实验内容与步骤 分别用梯形公式、Simpson公式、复化梯形公式、复化Simpson公式、Romberg求积公式求下列定积分,观察所得结果,并与精确值进行比较. (4) (5) 依照实验原理编写各种公式的的程序. 首先在电脑上安装matlab,然后启动matlab,分别建立不同公式的M文件, 实验程序如下; 梯形公式程序代码程序代码说明functionT=chen_trap (fun,a,b); T=(b-a)*(feval(fun,a)+feval(fun,b))/2; %递推梯形公式主程序 %fun:被积函数 %a,b分别为积分区间的左右端点 Simpson公式程序代码程序代码说明functiony=chen_simpson(fun,a,b); c=(a+b)/2; y=(b-a)/6*(feval(fun,a)+4*feval(fun,c) +feval(fun,b)); %simpson公式主程序 %fun表示被积函数句柄 %a,b分别为积分区间的左右端点 复合梯形公式程序代码程序代码说明functiony=comtrap(fun,a,b,n); z1=feval(fun,a)+feval(fun,b); h=(b-a)/n; z2=0;x=a; fork=1:n-1 x1=x+k*h;z2=z2+2*feval(fun,x1); end y=(z1+z2)*h/2; %复化simpson公式主程序 %fun表示被积函数句柄 %a,b分别为积分区间的左右端点 %n为等分积分区间的个数 %y为积分近似值Sn 复合Simpson公式程序代码程序代码说明functiony=comsimpson(fun,a,b,n); z1=feval(fun,a)+feval(fun,b);m=n/2; h=(b-a)/(2*m);x=a; z2=0;z3=0;x2=0;x3=0; fork=1:m-1 x2=x+2*k*h;z2=z2+2*feval(fun,x2); end fork=1:m x3=x+(2*k-1)*h;z3=z3+4*feval(fun,x3); end y=(z1+z2+z3)*h/3; %复化simpson公式主程序 %fun表示被积函数句柄 %a,b分别为积分区间的左右端点 %n=2m,m为等分积分区间的个数 %y为积分近似值Sm Romberg求积公式程序代码程序代码说明function[quad,R]=Romberg(f,a,b,eps); h=b-a; R(1,1)=h*(feval(f,a)+feval(f,b))/2; M=1;J=0;err=1; whileJ<=3|err>eps J=J+1; h=h/2; S=0; forp=1:M x=a+h*(2*p-1); S=S+feval(f,x); end R(J+1,1)=R(J,1)/2+h*S; M=2*M; fork=1:J R(J+1,k+1)=R(J+1,k)+(R(J+1,k) -R(J,k))/(4^k-1); end err=abs(R(J+1,J)-R(J+1,J+1)); end quad=R(J+1,J+1); %f表示被积函数句柄 %a,b表示被积区间[a,b]的端点 %eps表示精度 %quad是用Romberg加速算法求得的积分值 %R为Romberg表 %err表示误差的估计 具体函数编程如下: (1); 首先编写被积函