数值分析实验——数值积分
桂林电子科技大学数学与计算科学学院实验报告院(系)数学与应用数学年级、专业、班姓名成绩课程 名称数值分析实验实验项目 名称实验积分指导 教师李光云实验室:06406实验日期:2014 年11月21日一、实验目的通过实验掌握利用Matlab进行数值积分的操作,掌握Matlab中的几种内置求积分函数,进一步理 解复化梯形,复化辛普生公式,并编程实现求数值积分二、实验原理Matlab中,有内置函数计算积分:>> z = trapz(x,y)其中,输入x, y分别为已知数据的自变量和因变量构成的向量,输出为积分值。>> z = quad(fun,a,b)这个命令是使用自适应求积的方法计算积分的命令。其中,fun为被积函数,a,b为积分区间。我们还可以利用复化梯形公式三、使用仪器,材料电脑MATLAB四、实验内容与步骤1.编写复化辛普生公式的Matlab的程序。2. 利用复化梯形法程序计算I二J1 dx,记录下计算结果随着n增加的变化情况,画图与复化0 1 + X 2梯形公式的情况比较收敛速度。3. 积分J Si叮dx的原函数无法用初等函数表达,结合Matlab复化梯形程序,用描点法绘制其原x函数JxSintdt在区间1,50的图形。i t五、实验过程原始记录(数据,图表,计算等)复化Simpson公式程序:func tion s二Simpson(a,b,n)%输出s为积分的数值解,输入(a,b)为积分区间,n为等分区间的个数. h=(b-a)/(n*2);s1=0;s2=0;s二h*(f(a)+f(b)/3;%先计算特殊两点相加.for k=1:nx1=a+h*(2*k-1);%利用循环计算其他点的相加.si二s1+f(x1);endfor k=1:(n-1)x2=a+h*2*k;%利用循环计算其他点的相加.s2=s2+f(x2);ends=s+h*(4*s1+2*s2)/3;画图程序format long;% k为等分区间个数,t存储积分值.k=2:1:40;for i=1:length(k)t(i)=Simpson(0,1,k(i);disp(k(i), t(i);endplot(k, t,'.','MarkerSize',20)二>Simpson(0,1,26)ans 二3.14159265358779>> Untitled62.000000000000003.141568627450983.000000000000003.141591780936044.000000000000003.141592502458715.000000000000003.141592613939226.000000000000003.141592640305387.000000000000003.141592648320658.000000000000003.141592651224829.000000000000003.1415926524231710.000000000000003.1415926529697911.000000000000003.1415926532398112.000000000000003.1415926533821513.000000000000003.1415926534613414.000000000000003.1415926535074515.000000000000003.1415926535353616.000000000000003.1415926535528417.000000000000003.1415926535641118.000000000000003.1415926535715619.000000000000003.1415926535766120.000000000000003.1415926535801121.000000000000003.1415926535825622.000000000000003.1415926535843223.000000000000003.1415926535856024.000000000000003.1415926535865525.000000000000003.1415926535872526.000000000000003.1415926535877927.000000000000003.1415926535881928.000000000000003.1415926535885129.000000000000003.1415926535887530.000000000000003.1415926535889431.000000000000003.1415926535890932.000000000000003.1415926535892233.000000000000003.1415926535893134.000000000000003.1415926535893935.000000000000003.1415926535894636.000000000000003.1415926535895137.000000000000003.1415926535895538.000000000000003.1415926535895939.000000000000003.1415926535896240.000000000000003.14159265358964由图形可以知道,复化Simpson求积公式的收敛速度比复化梯形求积公式收敛速度快三、b=2:1:50;>> y= t ixing(1,b,26)Warning: Colon operands must be real scalars.> In t ixing at 3y 二Columns 1 Through 40.65931335927431Columns 5 Through3.29656679637153Columns 9 Through5.93382023346876 Columns 13 Through8.57107367056599 Columns 17 Through 11.20832710766322 Columns 21 Through 13.84558054476045 Columns 25 Through 16.48283398185768 Columns 29 Through 19.12008741895491 Columns 33 Through 21.75734085605213 Columns 37 Through 24.394594293149361.3186267185486183.95588015564584126.59313359274307169.230387029840302011.867640466937532414.504893904034762817.142147341131983219.779400778229213622.416654215326444025.053907652423661.977940077822924.615193514920157.252446952017389.8897003891146112.5269538262118315.1642072633090617.8014607004062920.4387141375035223.0759675746007525.713221011697982.637253437097235.274506874194467.9117603112916910.5490137483889113.1862671854861415.8235206225833718.4607740596806021.0980274967778223.7352809338750626.37253437097228Columns 41 Through 4427.03184773024659 27.69116108952090 28.35047444879520 29.00978780806952Columns 45 through 4829.66910116734383 30.32841452661813 30.98772788589244 31.64704124516674Column 4932.30635460444105>> x=1:1:49;>> plo t(x,y)六、实验结果分析或总结通过这次实验,学会了如何使用Matlab进行数值积分的操作以及几种内置求积分函数的方法, 但编程一直都是自己的弱势,一些程序的代码还是无法自己编译出来。