|
[求助]有赏求解圆锥体的高度与体积的关系
[这个贴子最后由天山草在 2006/08/17 07:59pm 第 3 次编辑]
用计算机编程解答可以吗?因为积分结果不一定有解析表达式。
kelind 网友,您的题目并不复杂,我已导出了计算公式,只是不知道积分结果能否表达成解析式,如果不能,可以编程对任何给定的 d 和 h,求出高精度数值解。您不必悬赏100元,我不会要您一分钱。请您赶快修改您的原贴,去掉赏金。因为这个问题大学一年级水平应能解出。
这个问题已解出,但不是解析解。液面与圆锥面的交线是双曲线,该曲线有简单的解析表达式,液面的面积也可求出,求体积还需再积一次分,本人未能积出来(不一定有解析式),因此编写了一个计算机程序,对于给定的参数,可代入程序计算,得到数值解,相对误差在亿分之一数量级。为验证程序的正确性,假定圆锥底半径 R 和液面高度 H 都是75,圆锥高L=100,此时液体体积等于圆锥体积的一半,可准确算出,为 294524.3113,而程序计算结果为 294524.3,两者相差极小,这说明程序是可信的。该程序用 VB 编写,简单且有通用性,现用 word 文档发表如下。
今有一个底面半径为R、高为L的空心正圆锥体,将圆锥轴线平放,里面注入液体,液面高度为H时,求液体的体积。计算公式为:
(公式没能显示出来,打开下面的文件可以看到)
上面第一个重积分里的C是h的函数:
(公式没能显示出来,打开下面的文件可以看到)
公式中h是作为变量的液面高度,V(H)是h=H时的液体体积。
积分结果未能表达为解析式,因此编程进行计算。
当液面高度H≤R时可按下述VB程序进行数值计算(计算误差极小,相对误差约为10-8数量级)。当H>R时,要先计算2R-H的体积,再从整个圆锥的体积(圆锥底面积乘高的三分之一)中减去该体积。
在下面的程序中,设R=75,L=100,H=45,计算结果为V=98689。
Private Sub Form_Click()
'; 文件名: djf
'; 空心圆锥水平放置,里面注水,水面距轴线R-BBB ,计算水的体积
AAA = 0: ';积分下限
BBB = 45: ';积分上限
EEE = 0.1: ';精度要求
HE = 1: ';积分步长
R = 75: L = 100: ';圆锥底面半径为R,高为L
GoSub STRT
sub1: ‘以下为被积函数:
A = Sqr(X * (2 * R - X)): B = (R - X) / (R + A)
F = L * A + L / R * (R - X) * (R - X) * Log(B)
If B = 0 Then F = L * R: GoTo AA0
AA0: Return
End
STRT: ‘以下为抛物线法求积的通用程序
K = 2: V0 = 0: HHH = (BBB - AAA) / K
X = AAA: GoSub sub1: YA = F
X = BBB: GoSub sub1: YB = F
X = AAA + HHH: GoSub sub1: YI = F
PPP = YA + YB: DDD = YI
AA1:
V = (PPP + 4 * DDD) * HHH / 3
If Abs(V - V0) <= EEE And HHH <= HE Then GoTo AA2
HHH = HHH / 2: K = 2 * K: V0 = V
PPP = PPP + 2 * DDD
DDD = 0: For I = 1 To K - 1 Step 2
X = AAA + I * HHH: GoSub sub1: YI = F
DDD = DDD + YI: Next
GoTo AA1
AA2: Print V :‘打印结果
End Sub
程序上面的公式显示不出来,请点击上传的 word 附件。
这个问题有没有解析表达式,还需要进一步研究。既然液体表面积有精确表达式,如果液体形状能看成是“拟柱体”,则液体体积 V(H)=H/6*(S(H)+4*S(H/2)),但是这个式子对不对呢? |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|