使用Python / Numpy / Scipy进行三重积分

1 投票
2 回答
1733 浏览
提问于 2025-04-17 16:36

我刚开始学习Python,正在跟着《Python科学讲义 2013.1版》的教程学习。请帮我解决下面截图中的三重积分问题(第70页)。我已经学习了这个教程之前的内容。如果可以的话,请提供逐步的命令和解释,因为作为一名航空航天工程师,编程的概念对我来说是全新的。

谢谢你。

http://dl.dropbox.com/u/50511173/Untitled.png

练习:粗略的积分近似 写一个函数 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 的结果。

撰写回答