找回密码
 欢迎注册
查看: 6280|回复: 7

[测试] 如何用 mathematica 计算 x^2+y^2+2 z^2≤a 和 0≤x≤y≤z 围成的立体图形的体积?

[复制链接]
发表于 2021-11-19 11:36:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
本帖最后由 TSC999 于 2021-11-19 11:39 编辑

如何用 mathematica 计算 x^2+y^2+2 z^2 ≤ a 和 0≤x≤y≤z 围成的立体图形的体积? 其中  a>0。

用以下代码计算,结果如下,但是这个结果不对。不知为何错了?

  1. In[1]:= Clear["Global`*"];
  2. Integrate[
  3. Boole[x^2 + y^2 + 2 z^2 <= a && 0 <= x <= y <= z ], {x, 0, Sqrt[
  4.   a]}, {y, 0, Sqrt[a]}, {z, 0, Sqrt[a]}, Assumptions -> a > 0]

  5. Out[2]= (a^(3/2) (7 \[Pi]-tan^-1((4 Sqrt[2])/7)-12 cot^-1(Sqrt[2])))/(24 Sqrt[2])
复制代码


如果给 a 一个具体的值,比如令  a=4,则计算结果正确:

  1. In[3]:= Clear["Global`*"];
  2. Integrate[
  3. Boole[x^2 + y^2 + 2 z^2 <= 4 && 0 <= x <= y <= z ], {x, 0, Sqrt[
  4.   4]}, {y, 0, Sqrt[4]}, {z, 0, Sqrt[4]}]

  5. Out[4]= 1/3 Sqrt[2] (\[Pi]+tan^-1(2 Sqrt[2])-6 cot^-1(Sqrt[2]))
复制代码


问题出在哪里? 如何解决? 是不是我的 mathematica  版本太低了?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-11-19 14:10:02 | 显示全部楼层
我怎么感觉我在知乎上看到过这个问题?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2021-11-19 17:01:15 | 显示全部楼层
本帖最后由 TSC999 于 2021-11-19 17:36 编辑
nyy 发表于 2021-11-19 14:10
我怎么感觉我在知乎上看到过这个问题?


原题在这里:
http://kuing.orzweb.net/viewthre ... &extra=page%3D1

在上面这个帖子里,网友使用的 mathematica 代码及其运行结果如下:

网友使用的代码及运行结果.png

本人复制了网友的代码,在我的电脑上运行,但是结果跟他的不一样 (网友的结果对,本人的结果错),本人电脑运行结果如下:

使用网友的代码在本人电脑上的运行结果.png

说结果不一样,不是说表面形式不一样,是实质上不一样。因为将  a = 4  代入结果表达式以后,网友的数值是 0.320401,正确。 本人的数值是  3.28232,错误。不知道这个错误是如何造成的?

点评

试试把2z^2放在左边,感觉是内部算法在公式变形推导过程中的选择分支问题,也许真是个bug  发表于 2022-9-4 20:49
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-11-19 18:06:20 | 显示全部楼层
https://reference.wolfram.com/language/ref/Integrate.html
History
1988年引入 (1.0) | 1996年更新 (3.0) &#9642; 2003 (5.0) &#9642; 2014 (10.0) &#9642; 2019 (12.0)

https://reference.wolfram.com/language/ref/Boole.html
History
2004年引入 (5.1) | 2007年更新 (6.0)


毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2021-11-20 10:33:48 | 显示全部楼层
本帖最后由 TSC999 于 2021-11-20 10:44 编辑

我的 mathematica 是 9.0 版,网友的是 7.0 版。7.0 的低版本计算结果反而是正确的。
如果  a 是一个具体的数值,比如 a=4,那么无论是 mathematica 7.0 还是 mathematica 9.0,算出的结果都相同。
如果先不给 a  赋值,两个版本计算出的字符公式就不一样,对字符公式中的 a 赋值后算出的数值当然也不一样了。
本问题所求的区域的体积,并不是椭球的八分之一,而是下面这个形状:
八分之一椭球挖矿后剩余的矿床.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2021-11-22 20:03:47 | 显示全部楼层
又是mathematica的bug

点评

我觉得也是的,是 mathematica 9.0 的毛病。  发表于 2021-11-24 19:06
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-21 21:00 , Processed in 0.028576 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表