实际图形是被三个相互正交的圆柱面包围的封闭部分,是
圆柱面x∧2+y∧2=1,被限定在y∧2+z∧2<=1和z∧2+x∧2<=1截断
圆柱面y∧2+z∧2=1,被限定在x∧2+y∧2<=1和z∧2+x∧2<=1截断
圆柱面z∧2+x∧2=1,被限定在x∧2+y∧2<=1和y∧2+z∧2<=1截断
上诉三个截断圆柱面个共同包围的部分
可以先画出其中一种情况的圆柱面,在用坐标轮换对称的办法画出另外两个
以下为matlab代码
%先考虑x^2+y^2=1圆柱面
%被限定在y^2+z^2<=1,z^2+x^2<=1范围内的曲面
%用柱坐标的话,x^2+y^2=1圆柱面,半径都是1,角度范围[0,360],z范围[-1,1]
%x取值是角度的余弦值,y取值是角度的正弦值
%而z本来范围是[-1,1],但是被条件y^2+z^2<=1,z^2+x^2<=1限制
%被限定在[-sqrt(1-x.^2),sqrt(1-x.^2)]与[-sqrt(1-xy.^2),sqrt(1-y.^2)]两者中较小的范围
%根据对称性,再轮换x,y,数据可以画出另外两个被截的圆柱面
th=linspace(0,360,49)%theta方向 [0,360]分49,分8N+1比较好
zz=linspace(-1,1,21)'%z方向分21格,分奇数个比较好,
xx=cosd(th)%计算x
yy=sind(th)%积算y
z=zz*min([sqrt(1-xx.^2)sqrt(1-yy.^2)])%计算z范围并扩展为矩阵
x=repmat(xx,[length(zz),1])%扩展x矩阵
y=repmat(yy,[length(zz),1])%扩展y矩阵
surf(x,y,z,'edgecolor','k')hold on%画备被截圆柱面
surf(y,z,x,'edgecolor','k') %画另外两个方向圆柱面
surf(z,x,y,'edgecolor','k')hold off
axis equal
xlabel('x')ylabel('y')zlabel('z')
用matlab如何求封闭曲线的面积?
一、将曲线离散化后求其封闭曲线的面积。例如,∫exp(-x^2)dx,求其x=-1,x=1围成的面积。
第一步,将x变量的范围【-1,1】,分成若干份,如
x=-1:0.01:1
第二步,计算y值,即
y=exp(-x.^2)
第三步,使用trapz函数,求其面积
S=trapz(x,y)
运行后得到,S=1.4936
二、利用定积分的方法求其封闭曲线的面积。例如,计算极坐标方程r=2acosθ(a>0)的曲线所围成的图形的面积。
第一步,根据平面图形面积公式,写出表达式,即
0.5*∫(2acosθ)^2dθ(积分下限为-π/2,积分上限为π/2)
第二步,使用int函数,求出其面积
syms x a
S=0.5*int((2*a*cos(x))^2,-pi/2,pi/2)
运行结果为 pi*a^2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)