旋转体的体积和表面积 |
您所在的位置:网站首页 › 定积分求面积公式第三象限 › 旋转体的体积和表面积 |
积分公式
令曲线
y
=
f
(
x
)
y=f(x)
y=f(x)绕
x
x
x轴旋转,形成的旋转体,则其体积和表面积可以计算积分而得(假设体积和表面积一定存在,积分一定存在,这里不讨论数学问题)。 体积公式为:
V
=
∫
π
y
2
d
x
V={\int}{\pi}{y^2}dx
V=∫πy2dx 表面积公式为
S
=
∫
2
π
y
1
+
y
′
2
d
x
S=\int{2\pi}{y}\sqrt{1+{y^{\prime}}^2}dx
S=∫2πy1+y′2
dx 剩下的就是推导定积分公式。 ##ZOJ3866 Cylinder Candy## ZOJ3866,一个圆柱体半径为
r
r
rmm,高度为
h
h
hmm,外围包裹着
d
d
dmm厚的涂层,求其表面积和体积。这个题目要精确到
1
0
−
8
10^{-8}
10−8,推不出积分公式就不用做了。 然后把其他部分的圆柱体算上即可。 #include #include double const PI = acos(-1.0); double const DELTA = 1E-6; double R,H,D; double integral(){ return (2.0*D*R*R+4.0*D*D*D/3.0+D*D*R*PI) * PI; } double integral2(){ return 4.0*PI*D*D + 2.0*PI*PI*R*D; } int main(){ int nofkase; scanf("%d",&nofkase); while( nofkase-- ){ scanf("%lf%lf%lf",&R,&H,&D); double v = integral() + PI * ( R + D ) * ( R + D ) * H; double s = integral2() + 2.0 * PI * ( R + D ) * H + 2.0 * PI * R * R; printf("%.12lf %.12lf\n",v,s); } return 0; }##ZOJ3898 Stean## ZOJ3898同样是旋转体的表面积和体积。曲线为: y = 2 + c o s x y=2+cosx y=2+cosx 不同点在于定积分公式中有一项是得不到解析式的。但是这道题很明显曲线是周期性函数,定积分的周期就是 π \pi π,而题目要求在 1 0 − 2 10^{-2} 10−2以内,所以取 ϵ \epsilon ϵ为 1 0 − 3 10^{-3} 10−3或 1 0 − 4 10^{-4} 10−4直接使用积分定义去计算。每次计算需要迭代的次数在几万次,应该是没有问题的。 体积积分: V = π ∫ ( 2 + c o s x ) 2 d x = 4 π ∫ d x + 4 π ∫ c o s x d x + π ∫ c o s 2 x d x V=\pi\int(2+cosx)^2dx\\=4\pi\int{dx}+4\pi\int{cosx}dx\\+\pi\int{cos^2x}dx V=π∫(2+cosx)2dx=4π∫dx+4π∫cosxdx+π∫cos2xdx 其中第三项为: ∫ c o s 2 x d x = x 2 + s i n 2 x 4 + C \int{cos^2x}dx=\frac{x}{2}+\frac{sin2x}{4}+C ∫cos2xdx=2x+4sin2x+C 表面积积分: S = 2 π ∫ ( 2 + c o s x ) 1 + s i n 2 x d x = 4 π ∫ 1 + s i n 2 x d x + 2 π ∫ 1 + s i n 2 x d s i n x S=2\pi\int(2+cosx)\sqrt{1+sin^2x}\;dx\\=4\pi\int\sqrt{1+sin^2x}\;dx\\+2\pi\int\sqrt{1+sin^2x}\;dsinx S=2π∫(2+cosx)1+sin2x dx=4π∫1+sin2x dx+2π∫1+sin2x dsinx 其中第一项不知道积不积得出来,反正我没有积出来。数学不行,就用计算机的方法算。第二项令 t = s i n x t=sinx t=sinx,则 ∫ 1 + t 2 d t = 1 2 t 1 + t 2 + 1 2 ln ∣ t + 1 + t 2 ∣ + C \int\sqrt{1+t^2}\;dt=\frac{1}{2}t\sqrt{1+t^2}+\frac{1}{2}\ln{\left|{t+\sqrt{1+t^2}}\right|}+C ∫1+t2 dt=21t1+t2 +21ln∣ ∣t+1+t2 ∣ ∣+C #include #include double const PI = acos(-1.); double const EPS = 1E-4; //计算一个周期 double init1p(){ double ret = 0.0; for(double x=0.0;x |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |