A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

圆柱体直径4cm,长20cm,两端各有一个球,每个球直径20cm,密度为5600kg/m3计算rotational inertia matrix .坐标原点为圆柱的中心,沿长度的方向为z轴。

先在草稿纸上写出直角坐标的积分公式,将其写入程序即可。计算三重积分用到的函数是tplquad,此外还有二重积分,定积分,n重积分。f为被积函数,cyl为求圆柱的积分,sphereup求上球的积分,spheredown求下球的积分,返回一个元组,第一个元素是积分值,第二个元素是精度。



  • from scipy import integrate



  • f = lambda x, y, z: x**2+y**2







  • cyl=integrate.tplquad(f, -0.1, 0.1,



  •              lambda y: -0.02, lambda y: 0.02,



  •      lambda x, y: -np.sqrt(0.0004-y**2), lambda x, y: np.sqrt(0.0004-y**2))



  • sphereup=integrate.tplquad(f, 0.1, 0.3,



  •          lambda z: -np.sqrt(0.40*z - z**2 - 0.03),



  •          lambda z: np.sqrt(0.40*z - z**2 - 0.03),



  •      lambda z,y: -np.sqrt(0.40*z - z**2 - 0.03 - y**2),



  •      lambda z,y: np.sqrt(0.40*z - z**2 - 0.03 - y**2))



  • spheredown=integrate.tplquad(f, -0.3, -0.1,



  •          lambda z: -np.sqrt(-0.40*z - z**2 - 0.03),



  •          lambda z: np.sqrt(-0.40*z - z**2 - 0.03),



  •      lambda z,y: -np.sqrt(-0.40*z - z**2 -0.03 - y**2),



  •      lambda z,y: np.sqrt(-0.40*z - z**2 - 0.03 - y**2))







  • print((cyl[0]+sphereup[0]+spheredown[0])*5600)



6 个回复

倒序浏览
优秀,奈斯
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
奈斯,优秀
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马