sympy求无穷上下界的定积分

sympy中,用oo来表示无穷,即\(\infty\)。负无穷就是-oo,即\(-\infty\)

这里以\(\int_{1}^{+\infty}e^{-x}\mathrm{d}x\)为例给出求无穷上下界定积分的解析解和数值解的方法。

解析解

integrate。用法为integrate(函数,(变量,下限, 上限))

import sympy
x = sympy.symbols('x')
sympy.integrate(sympy.exp(-x), (x, 1, sympy.oo))

输出:

exp(-1)

\(e^{-1}\)

但是这个函数有时候会抽风,明明是有值的会被算成无穷大。

数值解

Integral。用法为Integral(函数,(变量,下限, 上限))。但是这个只是一个表达式,对这个表达式再调用evalf就可以求出以浮点数表示的值。

import sympy
x = sympy.symbols('x')
sympy.Integral(sympy.exp(-x), (x, 1, sympy.oo)).evalf()
0.367879441171442

这就是\(e^{-1}\)的数值。

参考文献

Python求积分(定积分)

https://stackoverflow.com/questions/44480545/why-is-using-infinity-oo-in-sympy-faster-than-providing-an-integer-upper-bound

用python的库 sympy 求积分

posted @ 2024-09-28 14:09  寻找繁星  阅读(8)  评论(0编辑  收藏  举报