特别是,我想专注于找到体积,因为我需要它来开始解决质心问题
这个同质体(环面部分)定义为
其中,
我将形状限制在一个矩形区域,其中
体积定义如下
下面是我尝试对积分进行编码以找到体积。
我是蒙特卡洛编码的新手,所以任何反馈都将不胜感激。
import numpy as np
from scipy import random
#Limits of Integration
x_min = -2
x_max = 2
y_min = -7
y_max = 1
z_min = 2
z_max = 7
#Number of Iterations
N = 1000
Xrand = random.uniform(x_min,x_max,N)
Yrand = random.uniform(y_min,y_max,N)
Zrand = random.uniform(z_min,z_max,N)
for i in range(len(Xrand)):
Xrand[i] = random.uniform(x_min,x_max)
for i in range(len(Yrand)):
Yrand[i] = random.uniform(y_min,y_max)
for i in range(len(Zrand)):
Zrand[i] = random.uniform(z_min,z_max)
def func(x,y,z):
return x**2 + (np.sqrt(y**2 + z**2)-5)**2
integral = 0.0
for i in range(N):
integral += func(Xrand[i],Yrand[i],Zrand[i])
Volume =(1/N)*float(N)*integral
print(Volume)