'圆方程(x-a)^2+(y-b)^2=c^2的定积分(圆弧绕x轴旋转的体积) ' a b 为圆心坐标,e f 表示定积分的上下限 我是先显化为 x=f(y)绕x轴旋转的体积 Public Function dingjf(ByRef a As Double, ByRef b As Double, ByRef c As Double, ByRef e As Double, ByRef f As Double) Dim pi As Double pi = 4 * Atn(1) If a < 0 Then dingjf = (f - e) * (pi * (a * a + c * c) - pi * b * b) - (pi / 3#) * ((f - b) * (f - b) * (f - b) - (e - b) * (e - b) * (e - b)) + pi * b * ((f - b) * (f - b) - (e - b) * (e - b)) + 2 * a * pi * (0.5 * (f - b) * Sqr(c * c - (f - b) * (f - b)) + 0.5 * c * c * Arcsin((f - b) / c) - 0.5 * (e - b) * Sqr(c * c - (e - b) * (e - b)) + 0.5 * c * c * Arcsin((e - b) / c)) Else dingjf = (f - e) * (pi * (a * a + c * c) - pi * b * b) - (pi / 3#) * ((f - b) * (f - b) * (f - b) - (e - b) * (e - b) * (e - b)) + pi * b * ((f - b) * (f - b) - (e - b) * (e - b)) - 2 * a * pi * (0.5 * (f - b) * Sqr(c * c - (f - b) * (f - b)) + 0.5 * c * c * Arcsin((f - b) / c) - 0.5 * (e - b) * Sqr(c * c - (e - b) * (e - b)) + 0.5 * c * c * Arcsin((e - b) / c)) End If End Function '反正炫函数 Public Function Arcsin(ByRef x As Double) Arcsin = Atn(x / Sqr(-x * x + 1)) End Function
计算结果不对,帮忙分析分析 |