第六讲定积分与定积分的近似计算实验目的1.通过本实验加深理解积分理论中分割、近似、求和、取极限的思想方法.2.学习并掌握用matlab求不定积分、定积分、二重积分、曲线积分的方法.3.学习matlab命令sum、symsum与int.4.了解定积分近似计算的矩形法、梯形法。实验内容1.学习matlab命令(1)求和命令sum调用格式.sum(x),给出向量x的各个元素的累加和,如果x是矩阵,则sum(x)是一个元素为x的每列列和的行向量.例1.x=[1,2,3,4,5,6,7,8,9,10];sum(x)ans=55例2.x=[1,2,3;4,5,6;7,8,9]x=123456789sum(x)ans=121518(2)求和命令symsum调用格式.symsum(s,n),求symsum(s,k,m,n),求当x的元素很有规律,比如为表达式是的数列时,可用symsum求得x的各项和,即symsum=symsum=例3.symsknsymsum(k,1,10)ans=55symsum(k^2,k,1,n)ans=1/3*(n+1)^3-1/2*(n+1)^2+1/6*n+1/6(3)matlab积分命令int调用格式int(函数)计算不定积分int(函数,变量名)计算不定积分int(函数)计算定积分int(函数变量名)计算定积分2.计算不定积分例4.计算解:输入命令:int(x^2*log(x))可得结果:ans=1/3*x^3*log(x)-1/9*x^3注意设置符号变量.例5.计算下列不定积分:1.2.3.解:首先建立函数向量.symsxsymsapositive%a是一个正的符号变量y=[sqrt(a^2-x^2),(x-1)/(3*x-1)^(1/3),x^2*asin(x)];然后对y积分可得对y的每个分量积分的结果.int(y,x)ans=[1/2*x*(a^2-x^2)^(1/2)+1/2*a^2*asin(1/a*x),1/15*(3*x-1)^(5/3)-1/3*(3*x-1)^(2/3),1/3*x^3*asin(x)+1/9*x^2*(1-x^2)^(1/2)+2/9*(1-x^2)^(1/2)]3.定积分的概念.定积分是一个和的极限.取,积分区间为[0,1],等距划分为20个子区间x=linspace(0,1,21);选取每个子区间的端点,并计算端点处的函数值.y=exp(x);取区间的左端点乘以区间长度全部加起来.y1=y(1:20);s1=sum(y1)/20s1=1.6757s1可作为的近似值.若选取右端点:y2=y(2:21);s2=sum(y2)/20s2=1.7616s2也可以作为的近似值.下面我们画出图象.plot(x,y);holdonfori=1:20fill([x(i),x(i+1),x(i+1),x(i),x(i)],[0,0,y(i),y(i),0],’b’)end如果选取右端点,则可画出图象.fori=1:20;fill([x(i),x(i+1),x(i+1),x(i),x(i)],[0,0,y(i+1),y(i+1),0],’b’)holdonendplot(x,y,’r’)在上边的语句中,for…end是循环语句,执行语句体内的命令20次,fill命令可以填充多边形,在本例中,用的是兰色(blue)填充.从图上看,当分点逐渐增多时,的值越来越小,读者可试取50个子区间看一看结果怎样.下面按等分区间计算symskns=symsum(exp(k/n)/n,k,1,n);limit(s,n,inf)得结果ans=exp(1)-14.计算定积分和广义积分.例6.计算.解:输入命令:int(exp(x),0,1)得结果ans=exp(1)-1.这与我们上面的运算结果是一致的.例7.计算解:输入命令:int(abs(x-1),0,2)得结果ans=1.本例用mathematica软件不能直接求解.例8.判别广义积分、与的敛散性,收敛时计算积分值.解:对第一个积分输入命令:symspreal;int(1/x^p,x,1,inf)得结果ans=limit(-1/(p-1)*x^(-p+1)+1/(p-1),x=inf).由结果看出当时,x^(-p+1)为无穷,当时,ans=1/(p-1),这与课本例题是一致的.对第二个积分输入命令:int(1/(2*pi)^(1/2)*exp(-x^2/2),-inf,inf)得结果:ans=7186705221432913/18014398509481984*2^(1/2)*pi^(1/2)由输出结果看出这两个积分收敛.对后一个积分输入命令:int(1/(1-x)^2,0,2)结果得ans=inf.说明这个积分是无穷大不收敛.例9.求积分解:输入命令:int(sin(x)/x,0,t),可得结果sinint(t),通过查帮助(helpsinint)可知sinint(t)=,结果相当于没求!实际上matlab求出的只是形式上的结果,因为这类积分无法用初等函数或其值来表示.尽管如此,我们可以得到该函数的函数值.输入vpa(sinint(0.5))可得sinint(0.5)的值.5.二重积分计算例10.求二次积分解:输入命令:int(int(x*y,y,2*x,x^2+1),x,0,1)得结果ans=1/12.例11.求解:积分区域用不等式可以表示成,二重积分可化为二次积分,输入命令:int(int(sin(pi*(x^2+y^2)),y,-sqrt(1-x^2),sqrt(1-x^2)),x,-1,1)由输出结果可以看出,结果中仍带有int,表明matlab求不出这一积分的值.采用极坐标可化为二次积分,输入命令:int(int(r*sin(pi*r^2),r,0,1),a,0,2*pi)可得结果为ans=2.6.曲线积分例12.求曲线积分,其中为曲线在第一象限内的一段.解:曲线的参数方程是曲线积分可以化为.输入命令:int(cos(t)*sin(t),0,pi/2)执行后即可求出曲线积分结果1/2.7.定积分的近似计算(1)矩形法将积分区间[a,b]n等分,取子区间的左端点(或右端点)作为,作部分和.用积分和近似定积分,即其中得近似积分法的矩形法公式:据此,编写如下matlab程序:f=input('请输入被积函数f(x)=');qujian=input('请输入积分区间[a,b]=');n=input('请输入子区间个数n=');s=0;fori=1:nx=(qujian(2)-qujian(1))/n*(i-1);y=eval(f);s=s+y;enddisp('定积分的近似值是:');s=s*(qujian(2)-qujian(1))/n存为juxingfa.m.运行juxingfa.m请输入被积函数f(x)='x^2'请输入积分区间[a,b]=[0,1]请输入子区间个数n=10定积分的近似值是:s=0.2850可以看到子区间个数较少时精确程度不够高,取子区间个数为10000时结果就比较精确.juxingfa请输入被积函数f(x)='x^2'请输入积分区间[a,b]=[0,1]请输入子区间个数n=10000定积分的近似值是:s=0.3333(2)梯形法将积分区间[a,b]n等分,每一个子区间对应的小曲边梯形的面积,用该区间上的一个小梯形的面积近似代替,把它们相加就得到定积分的近似值.在第i个子区间上,小曲边梯形的面积近似为:从而有:据此,编写如下matlab程序:f=input('请输入被积函数f(x)=');qujian=input('请输入积分区间[a,b]=');n=input('请输入子区间个数n=');s=0;fori=1:n-1x=(qujian(2)-qujian(1))/n*i;y=eval(f);s=s+y;endx=qujian(1);y=eval(f);s=s+y/2;x=qujian(2);y=eval(f);s=s+y/2;disp('定积分的近似值是:');s=s*(qujian(2)-qujian(1))/n存为tixingfa.m.运行tixingfa.m如下:tixingfa请输入被积函数f(x)='x^2'请输入积分区间[a,b]=[0,1]请输入子区间个数n=10定积分的近似值是:s=0.3350从结果看出,梯形法比矩形法精确度高.本网站由南阳理工学院杜跃鹏制作维护Email:duyaop@nyist.net_{0}^{1}\frac{sinx}{x}dx