狠狠撸

狠狠撸Share a Scribd company logo
第十一章          用 MATLAB 计算多元函数的积分
    三重积分的计算最终是化成累次积分来完成的,因此只要能正确的得出各累次积分的
积分限,便可在 MATLAB 中通过多次使用 int 命令来求得计算结果。但三重积分的积分域
? 是一个三维空间区域,当其形状较复杂时,要确定各累次积分的积分限会遇到一定困难 ,
此时,可以借助 MATLAB 的三维绘图命令,先在屏幕上绘出 ? 的三维立体图,然后执行
命令
    rotate3d on ↙
便可拖动鼠标使 ? 的图形在屏幕上作任意的三维旋转,并且可用下述命令将 ? 的图形向三
个坐标平面进行投影:
view(0,0),向 XOZ 平面投影;
view(90,0),向 YOZ 平面投影;
view(0,90),向 XOY 平面投影.
综合运用上述方法,一般应能正确得出各累次积分的积分限。

例 11.6.1 计算   ∫∫∫ zdv ,其中 ? 是由圆锥曲面 z
              ?
                                       2
                                           = x 2 + y 2 与平面 z=1 围成的闭区域

解 首先用 MATLAB 来绘制 ? 的三维图形,画圆锥曲面的命令可以是:
syms x y z↙
z=sqrt(x^2+y^2); ↙
ezsurf(z,[-1.5,1.5]) ↙
画第二个曲面之前,为保持先画的图形不会被清除,需要执行命令
hold on↙
然后用下述命令就可以将平面 z=1 与圆锥面的图形画在一个图形窗口内:
[x1,y1]=meshgrid(-1.5:1/4:1.5); ↙
z1=ones(size(x1)); ↙
surf(x1,y1,z1) ↙
于是得到 ? 的三维图形如图:
由该图很容易将原叁重积分化成累次积分:
           1       1? y 2              1
∫∫∫ zdv = ∫ dy ∫
 ?
           ?1    ? 1? y     2
                                dx ∫
                                           x2 + y 2
                                                      zdz

于是可用下述命令求解此三重积分:
clear all↙
syms x y z↙
f=z; ↙
f1=int(f,z.,sqrt(x^2+ y^2),1); ↙
f2=int(f1,x,-sqrt(1- y^2), sqrt(1- y^2)); ↙
int(f2,y,-1,1) ↙
ans=
 1/4*pi
            π
计算结果为
            4
对于第一类曲线积分和第一类曲面积分,其计算都归结为求解特定形式的定积分和二重积
分,因此可完全类似的使用 int 命令进行计算,并可用 diff 命令求解中间所需的各偏导数。
例 11.6.2 用 MATLAB 求解教材例 11.3.1
解 求解过程如下
 syms a b t↙
 x=a*cos(t); ↙
 y=a*sin(t); ↙
 z=b*t; ↙
 f=x^2 +y^2+z^2; ↙
 xt=diff(x,t); ↙
 yt=diff(y,t); ↙
 zt=diff(z,t); ↙
 int(f*sqrt(xt^2 +yt^2+zt^2),t,0,2*pi) ↙
 ans=
 2/3*( a^2 +b^2)^1/2*a^2*pi+8/3*( a^2 +b^2)^1/2*b^2*pi^3
 对此结果可用 factor 命令进行合并化简:
 factor(ans)
 ans=
  2/3*( a^2 +b^2)^1/2*pi*(3* a^2 +4*b^2*pi^2)
例 11.6.3 用 MATLAB 求解教材例 11.4.1
解 求解过程如下
 syms x y z1 z2↙
 f= x^2 +y^2; ↙
 z1=sqrt(x^2 +y^2); ↙
 z2=1; ↙
 z1x=diff(z1,x); ↙
 z1y=diff(z1,y); ↙
 z2x=diff(z2,x); ↙
z2y=diff(z2,y); ↙
f1=f*sqrt(1+z1x^2 +z1y^2); ↙
f2=f*sqrt(1+z2x^2 +z2y^2); ↙
fy=int(f1+f2,x,-sqrt(1-y^2), -sqrt(1-y^2)); ↙
factor(intt(fy,y,-1,1)) ↙
ans=
1/2*pi*(2^(1/2)+1)
计算结果为
π
  ( 2 + 1).
2
11.第十一章用惭补迟濒补产计算多元函数的积分

More Related Content

11.第十一章用惭补迟濒补产计算多元函数的积分

  • 1. 第十一章 用 MATLAB 计算多元函数的积分 三重积分的计算最终是化成累次积分来完成的,因此只要能正确的得出各累次积分的 积分限,便可在 MATLAB 中通过多次使用 int 命令来求得计算结果。但三重积分的积分域 ? 是一个三维空间区域,当其形状较复杂时,要确定各累次积分的积分限会遇到一定困难 , 此时,可以借助 MATLAB 的三维绘图命令,先在屏幕上绘出 ? 的三维立体图,然后执行 命令 rotate3d on ↙ 便可拖动鼠标使 ? 的图形在屏幕上作任意的三维旋转,并且可用下述命令将 ? 的图形向三 个坐标平面进行投影: view(0,0),向 XOZ 平面投影; view(90,0),向 YOZ 平面投影; view(0,90),向 XOY 平面投影. 综合运用上述方法,一般应能正确得出各累次积分的积分限。 例 11.6.1 计算 ∫∫∫ zdv ,其中 ? 是由圆锥曲面 z ? 2 = x 2 + y 2 与平面 z=1 围成的闭区域 解 首先用 MATLAB 来绘制 ? 的三维图形,画圆锥曲面的命令可以是: syms x y z↙ z=sqrt(x^2+y^2); ↙ ezsurf(z,[-1.5,1.5]) ↙ 画第二个曲面之前,为保持先画的图形不会被清除,需要执行命令 hold on↙ 然后用下述命令就可以将平面 z=1 与圆锥面的图形画在一个图形窗口内: [x1,y1]=meshgrid(-1.5:1/4:1.5); ↙ z1=ones(size(x1)); ↙ surf(x1,y1,z1) ↙ 于是得到 ? 的三维图形如图:
  • 2. 由该图很容易将原叁重积分化成累次积分: 1 1? y 2 1 ∫∫∫ zdv = ∫ dy ∫ ? ?1 ? 1? y 2 dx ∫ x2 + y 2 zdz 于是可用下述命令求解此三重积分: clear all↙ syms x y z↙ f=z; ↙ f1=int(f,z.,sqrt(x^2+ y^2),1); ↙ f2=int(f1,x,-sqrt(1- y^2), sqrt(1- y^2)); ↙ int(f2,y,-1,1) ↙ ans= 1/4*pi π 计算结果为 4 对于第一类曲线积分和第一类曲面积分,其计算都归结为求解特定形式的定积分和二重积 分,因此可完全类似的使用 int 命令进行计算,并可用 diff 命令求解中间所需的各偏导数。 例 11.6.2 用 MATLAB 求解教材例 11.3.1 解 求解过程如下 syms a b t↙ x=a*cos(t); ↙ y=a*sin(t); ↙ z=b*t; ↙ f=x^2 +y^2+z^2; ↙ xt=diff(x,t); ↙ yt=diff(y,t); ↙ zt=diff(z,t); ↙ int(f*sqrt(xt^2 +yt^2+zt^2),t,0,2*pi) ↙ ans= 2/3*( a^2 +b^2)^1/2*a^2*pi+8/3*( a^2 +b^2)^1/2*b^2*pi^3 对此结果可用 factor 命令进行合并化简: factor(ans) ans= 2/3*( a^2 +b^2)^1/2*pi*(3* a^2 +4*b^2*pi^2) 例 11.6.3 用 MATLAB 求解教材例 11.4.1 解 求解过程如下 syms x y z1 z2↙ f= x^2 +y^2; ↙ z1=sqrt(x^2 +y^2); ↙ z2=1; ↙ z1x=diff(z1,x); ↙ z1y=diff(z1,y); ↙ z2x=diff(z2,x); ↙
  • 3. z2y=diff(z2,y); ↙ f1=f*sqrt(1+z1x^2 +z1y^2); ↙ f2=f*sqrt(1+z2x^2 +z2y^2); ↙ fy=int(f1+f2,x,-sqrt(1-y^2), -sqrt(1-y^2)); ↙ factor(intt(fy,y,-1,1)) ↙ ans= 1/2*pi*(2^(1/2)+1) 计算结果为 π ( 2 + 1). 2