如何在 Python 中计算定积分和不定积分

Python 是一种多功能编程语言,为科学计算和数学计算提供库和工具。

许多基本的数学运算经常涉及定积分和不定积分。在本文中,我们将探讨如何使用 Python 执行这些计算。

如何计算单变量定积分

安装 SciPy

在开始之前,我们需要安装 SciPy 模块。它提供了我们将使用的数学算法和函数的集合。

您可以通过在终端中运行以下命令来完成此操作:

pip install scipy

要计算单变量定积分,我们需要首先导入quadfrom scipy.integrate。它是用于计算单变量定积分的通用函数。

from scipy.integrate import quad

基本函数

从这里开始,我们需要将被积数定义为 Python 中的函数。

例如,如果我们想计算 x 平方的积分,我们可以将被积函数定义为 Python 函数,如下所示:

def integrand(x): return x**2

一旦定义了被积函数,我们就可以使用四元函数计算定积分,如下所示:

print(quad(integrand, 0, 1)) 
# (0.33333333333333337, 3.700743415417189e-15)

上面代码中,0代表积分下限,1代表积分上限。它们可以是任何其他数字。

definite_integral_example_1-4
x^2 从 0 到 1 的积分结果以及相关代码

在这个例子中,我们计算出x平方从0到1的积分的估计结果约为0.333,绝对误差约为3.7e-15。

Quad 函数返回定积分估计值的元组,后跟估计值的绝对误差。

quad函数的作用本质上是在积分极限之间的多个不同值处评估该integrand函数,以便能够计算积分的估计值。

另一个例子是,如果我想计算 的积分(x+1)/x**2。我们首先将其定义为 Python 中的函数,并将其quad与积分限制一起传递给函数:

from scipy.integrate import quad 
    def integrand(x): 
          return(x+1)/x**2  
print(quad(integrand, 1, 2)) 
# (1.1931471805599452, 1.3246594716242401e-14)
definite_integral_example_2-3-1
(x+1)/x^2 从 1 到 2 的积分结果以及相关代码

在这个例子中,我们计算出x+1在x平方上从1到2的积分的估计结果约为1.19,绝对误差约为1.32e-14。

其他常用功能

如果我们想使用常见的数学函数,例如sin(x)log(x),我们可以使用另一个用于科学计算的Python包——NumPy。您可以使用以下命令安装该软件包:

pip install numpy

通过导入它,我们可以访问这些可以在被积函数中使用的常用函数:

from scipy.integrate import quad 
from numpy import log, sin 
def integrand(x): 
    return log(sin(x)) 
print(quad(integrand, 0, 2)) 
# (-1.1022223889049558, 1.2237126744196256e-15)
definite_integral_example_3-2
log(sin(x)) 从 0 到 2 的积分结果以及相关代码

在这个例子中,我们计算出log(sin(x))从0到2积分的估计结果约为-1.10,绝对误差约为1.22e-15。

NumPy 提供的数学函数的完整列表位于其文档中

如何使用常量

NumPy 还提供有用的常量,例如epi以及inf。它是正无穷大的浮点表示。我们可以用它来计算收敛的定积分。

from scipy.integrate import quad 
from numpy import inf, exp 
def integrand(x): 
    return exp(-x) 
print(quad(integrand, 0, inf)) 
# (1.0000000000000002, 5.842606742906004e-11)
definite_integral_example_4-4
e^x 从 0 到无穷大的积分结果以及相关代码

在本例中,我们计算出 e 从 0 到无穷大对负 x 积分的估计结果约为 1.00,绝对误差约为 5.84e-11。

如何计算多变量积分

二重积分

要计算二重积分,我们需要dblquad从以下位置导入函数scipy.integrate

from scipy.integrate import dblquad

我们以类似的方式定义被积数,用一个变量来定义它,只是这次我们指定了两个参数。

def integrand(y, x):  
       return x*y**2

dblquad然后我们可以使用 给出的函数计算定积分scipy

请注意,被积函数是一个需要接受y第一个参数和x第二个参数的函数。

print(dblquad(integrand, 0, 1, 2, 4)) 
# (9.333333333333334, 2.0679162295394134e-13)
definite_integral_example_5-2
y 的 (xy^2) dxdy 从 2 到 4 的积分结果以及 x 的 (xy^2) dxdy 从 0 到 1 的积分结果以及相关代码

在此示例中,我们计算出从 x = 0 到 1 以及从 y = 2 到 y = 4 的二重积分 x 乘以 y 平方的估计结果约为 9.33,绝对误差约为 2.07e-13。

该函数要求我们传入被积函数、 的积分下限和上限x,然后是 的积分下限和上限y

可变限制

要计算具有可变极限的积分,我们需要定义 y 以 x 为单位的积分下限和上限的函数:

def upper_limit_y(x): 
    return x**2 
def lower_limit_y(x): 
    return x 
def integrand(y, x): 
    return x+y 
print(dblquad(integrand, 0, 2, lower_limit_y, upper_limit_y))

在这个例子中,我们计算出 x+y 从 x = 0 到 x = 2,以及从 y = x 到 y = x^2 的二重积分的估计结果约为 3.2,绝对误差约为 1.10e- 13.

indefinite_integral_example_3-1
x 从 0 到 2 的二重积分 (x+y) dydx 和 y 从 x 到 x^2 的积分的结果以及相关代码

三重积分

为了计算三重积分,我们可以使用以下tplquad函数:

from scipy.integrate import tplquad 
def integrand(z, y, x): 
    return z*(x+y+z) 
print(tplquad(integrand, 0, 1, 4, 5, 0, 1)) 
# (2.8333333333333335, 3.6983326566167174e-14)

该函数要求我们传入类似的参数,即 、 和 中积分的上限和x下限。yz

在本例中,我们计算从 x = 0 到 x = 1、y = 4 到 y = 5、z = 0 到 z = 1 的 z 三重积分乘以 (x+y+z) 的估计结果约为 2.83,绝对误差为 3.70e-14:

definite_integral_example_6-1
三重积分 z(x+y+z) dxdydz 的结果,x 为 0 到 1,y 为 4 到 5,z 为 0 到 1 以及相关代码

如何计算单变量不定积分

要使用 Python 计算单变量不定积分,我们需要使用 SymPy 库。它用于符号计算并涉及使用变量的精确计算。要安装它,请安装 SymPy 模块:

pip install sympy

安装后,我们可以从以下位置导入Symbol和方法:integratesympy

from sympy import Symbol, integrate

我们首先需要定义被积函数中使用的变量:

x = Symbol('x')

之后,我们就可以使用integrateSymPy提供的方法来集成该功能了。它需要两个参数:第一个是被积函数,第二个是我们要积分的变量。

例如,如果我们想要对 x 平方进行积分x,我们可以在 Python 中将被积函数定义为x**2

print(integrate(x**2, x)) 
# (x**3)/3
indefinite_integral_example_1-3
x^2 不定积分的结果

在此示例中,我们计算 x 平方的积分,即 x 立方除以 3 的结果。

请注意,SymPy 不会添加积分常数,但它是隐含的。

SymPy还提供了我们可以使用的其他常用函数,例如sin(x)和。exp(x)

在使用它们之前,我们首先需要从以下位置导入它sympy

from sympy import Symbol, integrate, sin

使用导入的sin函数,我们可以计算 的积分sin(x)

x = Symbol('x') 
print(integrate(sin(x), x)) 
# -cos(x)

在这个例子中,我们计算 sin(x) 的积分,即 -cos(x):

indefinite_integral_example_2-1
sin(x) 不定积分的结果

Sympy 提供了您可以在其文档中使用的数学函数的完整列表

概括

在本教程中,我们回顾了如何在 Python 中计算定积分和不定积分的基础知识。我们还研究了如何计算基本函数的积分、涉及常见数学函数的积分以及如何使用常量。

我们利用流行的 Python 库进行科学计算,并回顾了计算积分的示例。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容