使用Python / Numpy / Scipy进行三重积分
我刚开始学习Python,正在跟着《Python科学讲义 2013.1版》的教程学习。请帮我解决下面截图中的三重积分问题(第70页)。我已经学习了这个教程之前的内容。如果可以的话,请提供逐步的命令和解释,因为作为一名航空航天工程师,编程的概念对我来说是全新的。
谢谢你。
练习:粗略的积分近似 写一个函数 f(a, b, c),它返回 a^b - c。形成一个 24x12x6 的数组,包含参数范围 [0,1] x [0,1] x [0,1] 中的值。
2 个回答
1
你理解错了问题。他们并不是让你计算积分,而是让你计算这个函数在一组点上的平均值。这个练习的目的在于,这个平均值可以用来近似那个积分的值。
你只需要按照要求形成一个包含24x12x6个数的数组,把这些数加起来,然后再除以数组中元素的数量。
2
这看起来可能有点难,但问题一步一步告诉你该怎么做。
写一个函数 f(a, b, c)
,这个函数的功能是返回 a^b-c
。
def f(a, b, c):
return a ** b - c
创建一个 24x12x6 的数组,包含参数范围 [0,1] x [0,1] x [0,1]
。这里提到了 ogrid
,所以我猜查阅文档后应该是这样的:
x = np.ogrid[0:1:24j, 0:1:12j, 0:1:6j]
然后你可以这样做:
f(x[0], x[1], x[2])
接着计算平均值:
np.mean(f(x[0], x[1], x[2]))
这会给我 0.18884234602967925
的结果。