第五章 定积分及其应用 数学实验 一、定积分和广义积分的符号计算 本节首先介绍用Matlab软件进行符号计算定积分、变上(下)限积分、无界函数的广 义积分、无穷限广义积分. 如果函数f(x)在区间[a,b]上连续,且F(x)是f(x)的一个原函数,则函数f(x)在区间 【a,b]上的定积分为[fx)dr=F(b)-F(a).用Matlab软件进行定积分的符号计算的函数与不 定积分的相同,都是函数it,只是调用格式不同,如下: int(s,a,b)求符号表达式s的定积分,a,b分别为积分的下、上限 it(s,x,a,b)求符号表达式s关于变量x的定积分,a,b分别为积分的下、上限 例1求下列定积分 )求ia-020-: 5 (1+sinx, x≤1 (2)已知fx)={ r+5r-7.x>1'求fet: (3)计算广(2+3 cosx)dx. 解(1)相应的Matlab程序为 >syms t; >f=5/(t-1)*(t-2)*(t-3):F=int(E,t,4,5) 运行后得到F2521o②-521og同,即-2山25h25h3 5 2 2 (2)相应的Matlab程序为 >syms x: >f1=sin(x)+1:f2=(x^2)/2+5*x-7: >F=int(f1,x,0,1)+int(f2,x,l,2) 运行后得F/3-ec0s0,即矿7油=号-oas1. 3cosx, (3)由于3cos= :号,积分的可加性,有 -30sx<≤元
1 第五章 定积分及其应用 数学实验 一、定积分和广义积分的符号计算 本节首先介绍用 Matlab 软件进行符号计算定积分、变上(下)限积分、无界函数的广 义积分、无穷限广义积分. 如果函数 f x( ) 在区间 [ , ] a b 上连续,且 F x( ) 是 f x( ) 的一个原函数,则函数 f x( ) 在区间 [ , ] a b 上的定积分为 ( )d ( ) ( ) b a f x x F b F a = − .用 Matlab 软件进行定积分的符号计算的函数与不 定积分的相同,都是函数 int,只是调用格式不同,如下: int(s,a,b) int(s,x,a,b) 求符号表达式 s 的定积分,a,b 分别为积分的下、上限 求符号表达式 s 关于变量 x 的定积分,a,b 分别为积分的下、上限 例 1 求下列定积分 (1)求 5 4 5 d ( 1)( 2)( 3) t t t t − − − ; (2)已知 2 1 sin , 1 ( ) 1 5 7 , 1 2 x x f x x x x + = + − ,求 2 0 f x x ( )d ; (3)计算 0 (2 3cos )d x x + . 解 (1)相应的 Matlab 程序为 >> syms t; >> f=5/((t-1)*(t-2)*(t-3)); F=int(f,t,4,5) 运行后得到 F =25/2*log(2)-15/2*log(3),即 5 4 5 25ln 2 15ln3 d ( 1)( 2)( 3) 2 2 t t t t = − − − − . (2)相应的 Matlab 程序为 >> syms x; >> f1=sin(x)+1;f2=(x^2)/2+5*x-7; >> F=int(f1,x,0,1)+int(f2,x,1,2) 运行后得 F =11/3-cos(1),即 2 0 11 ( )d cos1 3 f x x = − . (3) 由于 3cos , 0 2 3cos 3cos , 2 x x x x x = − ,根据积分的可加性,有
[(2+Bcosxdx=f(2+3cos.x)dx+(2-3cos.x)dx 相应的Matlab程序为 >》5ym5X: >》f1=3*c0s(x)+2: f2=-3*c0s(x)+2 >>F=int(f1,x,0,pi/2)+int(f2,x,pi/2,pi) 运行后得F=6+2*pi,即(2+3 cosdx=6+2π 例2求(x)=[2W+7d山和导数Φx) 解先求p(x)的表达式,相应的Matlab程序为 >》5 yms x t: >F=int(t*(sqrt(1+t2)),t,sin(x),2) 运行后得变下限积分值为F=5/3*5°(1/2)-1/3*(1+sin(x)2)(3/2),即 再求导数Φ'(x),相应的Matlab程序为 >dF=diff(F) 运行后得变下限积分函数的导数为 dF =-(1+sin(x)2)(1/2)*sin(x)*cos(x),(x)=-v1+sin2 xsinxcosx 例3求ep-E-对 解相应的Matlab程序为 >》syms x t: >F=int(sqrt (2+3*t)-sqrt(2-3*t),t,0,x): >1F=limit(diff(F)/diff(x"2),x,0) 运行后得极限值为1P0②,甲四2于-地3返 A 例4讨论广义积分厂广p=23测的效散性 好蛇得品=回兴 求p=28时,广文积分厂”女的值,相应的1程时为 >syms x: >f1=int(⑤*x)/(x^4+2),x,1,+inf)
2 2 0 0 2 (2 3cos )d (2 3cos )d (2 3cos )d x x x x x x + = + + − 相应的 Matlab 程序为 >> syms x; >> f1=3*cos(x)+2; f2=-3*cos(x)+2; >> F=int(f1,x,0,pi/2)+int(f2,x,pi/2,pi) 运行后得 F =6+2*pi,即 0 (2 3cos )d 6 2 x x + = + . 例 2 求 2 2 sin ( ) 1 d x = + x t t t 和导数 ( ) x . 解 先求 ( ) x 的表达式,相应的 Matlab 程序为 >> syms x t; >> F=int(t*(sqrt(1+t^2)),t,sin(x),2) 运行后得变下限积分值为 F =5/3*5^(1/2)-1/3*(1+sin(x)^2)^(3/2),即 3 2 2 5 5 1 ( ) (1 sin ) 3 3 = − + x x 再求导数 ( ) x ,相应的 Matlab 程序为 >> dF=diff(F) 运行后得变下限积分函数的导数为 dF =-(1+sin(x)^2)^(1/2)*sin(x)*cos(x),即 2 = − + ( ) 1 sin sin cos x x x x 例 3 求 0 2 0 ( 2 3 2 3 )d lim x x t t t → x + − − . 解 相应的 Matlab 程序为 >> syms x t; >> F=int(sqrt(2+3*t)-sqrt(2-3*t),t,0,x); >> lF=limit(diff(F)/diff(x^2),x,0) 运行后得极限值为 lF =3/4*2^(1/2),即 0 2 0 ( 2 3 2 3 )d 3 2 lim 4 x x t t t → x + − − = . 例 4 讨论广义积分 4 1 5 d ( 1,2,3,8) 2 p x x p x + = + 的敛散性. 解 由定义得 4 4 1 1 5 5 d lim d 2 2 p p b b x x x x x x + →+ = + + 求 p =1,2,3,8 时,广义积分 4 1 5 d 2 p x x x + + 的值,相应的 Matlab 程序为 >> syms x; >> f1=int((5*x)/(x^4+2),x,1,+inf)
>>limfl=vpa(f1,5) %求广义积分(符号计算结果)精度为5位数的数值结果 >f2=int(5*x^2)/(x4+2),x,1,+inf) >>limf2=vpa(f2,5) >f3=int(5*x3)/(x4+2),x,1,+inf) >>limf3=vpa(f3,5) >f8=int(5*x8)/(x^4+2),x,1,+inf) >>limf8=vpa(f8,5) 运行后得到计算结果及其近似值依次如下: f1=5/8*pi*2^(1/2)-5/4*atan(1/2*2^(1/2)*2^(1/2) 1imf1=1.6888 f2= 5/4*2^(1/4)*和i-5/8*2^(1/4)*1og(-2(3/4)+2^(1/2)+1)+5/8*2^(1/4④)*1og(2^(3/4)+ 2(1/2)+1)-5/4*2°(1/4④)*atan(2^(1/4)+1)-5/4*2(1/4)*atan(2^(1/4④)-1) 1imf2=3.9735 f3 =Inf limf3 =Inf f8 =Inf limf8=Inf 由输出的结果可知当P,2时,广义积分厂血收敛。且 5x2 例5时论广义积分二1中子的敛散性 馨由定义得上女山=血+ 1 求广义积分二1+子d山的t1ab程序为 >syms x: >f1=int(1/x2+1),x,-inf,0),f2=int(1/(x^2+1),x,0,inf),f=f1+f2 运行后得到计第心十子,中d,广中子d的结果依次如下 1 f1=1/2*pi f2=1/2*和 f =pi 由输出的结果可知,上十子d=受广十子d受因此1子血=收敛
3 >>limf1=vpa(f1,5) %求广义积分(符号计算结果)精度为 5 位数的数值结果 >> f2=int((5*x^2)/(x^4+2),x,1,+inf) >>limf2=vpa(f2,5) >> f3=int((5*x^3)/(x^4+2),x,1,+inf) >>limf3=vpa(f3,5) >> f8=int((5*x^8)/(x^4+2),x,1,+inf) >>limf8=vpa(f8,5) 运行后得到计算结果及其近似值依次如下: f1= 5/8*pi*2^(1/2)-5/4*atan(1/2*2^(1/2))*2^(1/2) limf1 =1.6888 f2 = 5/4*2^(1/4)*pi-5/8*2^(1/4)*log(-2^(3/4)+2^(1/2)+1)+5/8*2^(1/4)*log(2^(3/4)+ 2^(1/2)+1)-5/4*2^(1/4)*atan(2^(1/4)+1)-5/4*2^(1/4)*atan(2^(1/4)-1) limf2 =3.9735 f3 =Inf limf3 =Inf f8 =Inf limf8 =Inf 由输出的结果可知,当 p =1,2 时,广义积分 4 1 5 d 2 p x x x + + 收敛,且 4 1 5 d 1.6888 2 x x x + + , 2 4 1 5 d 3.9735 2 x x x + + . 当 p =3,8,时广义积分 4 1 5 d 2 p x x x + + 发散,且 3 4 1 5 d 2 x x x + = + , 8 4 1 5 d 2 x x x + = + . 例 5 讨论广义积分 2 1 d 1 x x + − + 的敛散性. 解 由定义得 0 2 2 2 0 1 1 1 d d d 1 1 1 x x x x x x + + − − = + + + + 求广义积分 2 1 d 1 x x + − + 的 Matlab 程序为 >> syms x; >> f1=int(1/(x^2+1),x,-inf,0),f2=int(1/(x^2+1),x,0,inf),f=f1+f2 运行后得到计算 0 2 1 d 1 x x − + , 2 0 1 d 1 x x + + , 2 1 d 1 x x + − + 的结果依次如下 f1 =1/2*pi f2 =1/2*pi f =pi 由输出的结果可知, 0 2 1 d 1 2 x x − = + , 2 0 1 d 1 2 x x + = + ,因此 2 1 d 1 x x + − = + 收敛
例6讨论广义积分F+2x-3的敛散性 解当x=-3,=1时,被积函数子+2x分母为零,无定义,且册+2x-30, 1 所以将原广义积分分解为两个积分的和,即 1 +2x-+2-+r+2- 1 求此广义积分的值的Matlab程序为 >》syms x: >f1=int(1/(x2+2*x-3),x,2,+inf),f2=int(1/(x^2+2*x-3),x,1,2),f=f1+f2 运行结果为 f1=1/4*1og(5) f2 =Inf f=1/4*1og(5)+Inf 即+2x-=,收敛:广+2x-写=,发数故”+2亏=0,发散 1 二、定积分的数值计算 对于定积分∫fx,如果对应的不定积分∫fx)灿不易求出,或者根本不能表示为初 等函数时,那么就只能用定积分的数值计算方法求定积分的近似值了.例如,「edr, ∫典,片山等,因为它们无法表示成初等函数,计算这种类型的定积分只能用数值方 法,求定积分的数值计算方法有很多,在这里,简要介绍Matlab软件中的几个常用于定积分 的数值计算函数quad,quadl和trapz.关于数值计算理论和其他计算方法,请读者参阅数值 分析等相关书籍。 函数quad,quadl和trapz的调用格式和功能如下: 1.函数quad 调用格式:quad(fun,a,b,tol) 其中fun为被积函数名,a,b为定积分的上下限,tol为精度,可缺省,其默认值为1.0e-6 2.函数quad1 调用格式:quadl(fun,a,b,tol,trace)) 其中参数fun,a,b,tol用法与函数quad相同,而输入第5个非零参数trace,是对 积分过程通过被积函数上的图像进行跟踪 3.函数trapz 调用格式:Z=trapz(仪,Y) 其中X表示积分区间的离散化向量,Y是与X同维的向量,表示被积函数,Z是返回定 积分的近似值. quad函数使用的是自适应步长的Simpson积分法,而quadl函数使用L,obbato算法,其
4 例 6 讨论广义积分 2 1 1 d 2 3 x x x + + − 的敛散性. 解 当 x =−3,x = 1 时,被积函数 2 1 x x + − 2 3 分母为零,无定义,且 2 1 1 lim x→ x x2 3 = + − , 所以将原广义积分分解为两个积分的和,即 2 2 2 2 1 2 1 1 1 1 d d d 2 3 2 3 2 3 x x x x x x x x x + + = + + − + − + − 求此广义积分的值的 Matlab 程序为 >> syms x; >> f1=int(1/(x^2+2*x-3),x,2,+inf),f2=int(1/(x^2+2*x-3),x,1,2),f=f1+f2 运行结果为 f1 =1/4*log(5) f2 =Inf f =1/4*log(5)+Inf 即 2 2 1 ln 5 d 2 3 4 x x x + = + − ,收敛; 2 2 1 1 d 2 3 x x x = + − ,发散.故 2 1 1 d 2 3 x x x + = + − ,发散. 二、定积分的数值计算 对于定积分 ( )d b a f x x ,如果对应的不定积分 f x x ( )d 不易求出,或者根本不能表示为初 等函数时,那么就只能用定积分的数值计算方法求定积分的近似值了.例如, 2 e dx x − , sin d x x x , e d x x x 等,因为它们无法表示成初等函数,计算这种类型的定积分只能用数值方 法.求定积分的数值计算方法有很多,在这里,简要介绍 Matlab 软件中的几个常用于定积分 的数值计算函数 quad,quadl 和 trapz.关于数值计算理论和其他计算方法,请读者参阅数值 分析等相关书籍. 函数 quad,quadl 和 trapz 的调用格式和功能如下: 1.函数 quad 调用格式:quad(fun,a,b,tol) 其中fun为被积函数名,a,b为定积分的上下限,tol为精度,可缺省,其默认值为1.0e-6. 2.函数 quadl 调用格式:quadl(fun,a,b,tol,trace) 其中参数 fun,a,b,tol 用法与函数 quad 相同,而输入第 5 个非零参数 trace,是对 积分过程通过被积函数上的图像进行跟踪. 3.函数 trapz 调用格式:Z=trapz(X,Y) 其中 X 表示积分区间的离散化向量,Y 是与 X 同维的向量,表示被积函数,Z 是返回定 积分的近似值. quad 函数使用的是自适应步长的 Simpson 积分法,而 quadl 函数使用 Lobbato 算法,其
精度和速度要比quad函数高,而trapz函数用的是梯形积分法,精度低,适用于数值函数 和光滑性不好的函数的积分计算. 例7用数值积分的方法计算∫xd 解先用trapz(仪,Y)来求x'dr,相应的Matlab程序为 >》x=-1:0.1:2:y=x.^3:%取积分步长为0.1 >》trapz(k,y) 结果为ans=3.7575 现在把步长取到0.01,则有 >x=-1:0.01:2:y=x.^3: >trapz(x,y) 结果为ans=3.7501 通过上面的运算结果可以看到,利用不同的步长进行计算,可以得到不同精度的近似值, 如果取步长为0.01,则输出结果为3.7500,与步长取到0.01时的计算值接近. 可以利用符号积分命令计算,相应的Mat1ab程序为 >>clear all >syms x: >>int(x3.X.-1.2) 结果为ans=15/4 下面用quad和quadl米计算x'dr,首先建立名为jifen.m的m文件。 function y=jifen(x) Y=x>3: 然后在命令窗口输入以下Mat1ab程序 >>quad('jifen',-1,2) 结果为ans=3.7500. 利用quadl函数同样可以得到上面结果。 例8计第颈值积分血,并用符号积分命令求解,及案输出结果 解利用rapz函数计算数值积分 r,相应的Matlab程序为 1+x >x=0:0.1:1:y=sin(x.2)./(1+x): >》trapz(x,y) 结果为an5=0.1811. 当步长变为0.01时运算结果为0.1808, 利用quad函数求解,先建立名为jifen1.m的m文件,程序为 function y=jifen(x) y=sin(x.^2)./(1+x): 在命令窗口进行调用,程序为
5 精度和速度要比 quad 函数高,而 trapz 函数用的是梯形积分法,精度低,适用于数值函数 和光滑性不好的函数的积分计算. 例 7 用数值积分的方法计算 2 3 1 x xd − . 解 先用 trapz(X,Y)来求 2 3 1 x xd − ,相应的 Matlab 程序为 >> x=-1:0.1:2;y=x.^3; %取积分步长为 0.1 >> trapz(x,y) 结果为 ans =3.7575 现在把步长取到 0.01,则有 >> x=-1:0.01:2;y=x.^3; >> trapz(x,y) 结果为 ans =3.7501 通过上面的运算结果可以看到,利用不同的步长进行计算,可以得到不同精度的近似值. 如果取步长为 0.01,则输出结果为 3.7500,与步长取到 0.01 时的计算值接近. 可以利用符号积分命令计算,相应的 Matlab 程序为 >> clear all >> syms x; >> int(x^3,x,-1,2) 结果为 ans =15/4 下面用 quad 和 quadl 来计算 2 3 1 x xd − ,首先建立名为 jifen.m 的 m 文件. function y=jifen(x) Y=x>^3; 然后在命令窗口输入以下 Matlab 程序 >> quad('jifen',-1,2) 结果为 ans =3.7500. 利用 quadl 函数同样可以得到上面结果. 例 8 计算数值积分 2 1 0 sin d 1 x x + x ,并用符号积分命令求解,观察输出结果. 解 利用 trapz 函数计算数值积分 2 1 0 sin d 1 x x + x ,相应的 Matlab 程序为 >> x=0:0.1:1; y=sin(x.^2)./(1+x); >> trapz(x,y) 结果为 ans =0.1811. 当步长变为 0.01 时运算结果为 0.1808. 利用 quad 函数求解,先建立名为 jifen1.m 的 m 文件,程序为 function y=jifen(x) y=sin(x.^2)./(1+x); 在命令窗口进行调用,程序为
>quad(‘jifen1',0,l) 结果为an5=0.1808. 下面用符号积分命令int计算,程序为 >svms x: >int(sin(x2)/(1+x,x,0,1) 输出结果为 Warning:Explicit integral could not be found. >In sym.int at 58 ans =int(sin(x'2)/(1+x),x=0.1) 这是因为被积函数的原函数无法用初等函数表示,int不能求出m?d的符号解,但是可 1+x 以求出其数值解。 6
6 >>quad(‘jifen1’,0,1) 结果为 ans =0.1808. 下面用符号积分命令 int 计算,程序为 >> syms x; >> int(sin(x^2)/(1+x),x,0,1) 输出结果为 Warning: Explicit integral could not be found. > In sym.int at 58 ans =int(sin(x^2)/(1+x),x = 0 . 1) 这是因为被积函数的原函数无法用初等函数表示,int 不能求出 2 1 0 sin d 1 x x + x 的符号解,但是可 以求出其数值解