SciPy如何计算积分(详细用法看这里————)

有时, 一个功能积分起来非常复杂, 或者不能通过分析积分。然后可以通过数值积分法求解。 SciPy提供了一些执行数值积分的例程。 scipy.integrate库包含其中大多数功能。

  • 单积分
数值积分有时称为正交。 Quad功能对于SciPy的积分功能至关重要。 quad()函数的语法如下:
scipy.integrate.quad(f, a, b),

参数:
f-要积分的函数名称
a-这是一个下限。
b-是上限。
让我们考虑在a到b范围内积分的高斯函数。我们定义函数f(x)= e-x2, 这可以使用lambda表达式完成, 并将quad方法应用于给定函数。
import scipy.integrate from numpy import exp f= lambda x:exp(-x**2) i = scipy.integrate.quad(f, 0, 1) print(i)

【SciPy如何计算积分(详细用法看这里————)】输出
(0.7468241328124271, 8.291413475940725e-15)

在上面的程序中, 我们使用了返回两个值的quad()函数。第一个值是整数, 第二个值是整数值的绝对误差的估计值。
注意:由于quad()函数需要函数作为第一个参数, 因此我们不能直接将expression作为参数传递。它允许正无穷大为负。多重积分
诸如双重和三重积分之类的多重积分总结为函数dblquad(), tplquad()和nquad()。在这里, 我们考虑使用scipy.integrate.dblquad(func, a, b, gfun, hfun)解决的双积分问题。第一个参数func是要积分的函数的名称, 而a和b是x变量的下限和上限。 gfun和hfun是定义y变量下限和上限的函数的名称。让我们考虑以下示例:
import scipy.integrate from numpy import exp from math import sqrt f = lambda x, y : 16*x*y g = lambda x : 0 h = lambda y : sqrt(1-4*y**2) i = scipy.integrate.dblquad(f, 0, 0.5, g, h) print(i)

输出
(-0.5, 4.412025764622231e-14)

scipy.integarte包含许多其他积分函数, 包括nquad(), 它们执行n倍多重积分。

    推荐阅读