如何用sympy判断一个函数是否连续?

Ary*_* Li 6 python sympy

我需要定义一个函数来检查输入函数在 sympy 的某个点是否连续。

我用关键字“连续性”搜索了 sympy 文档,但没有现有的函数。我想也许我应该考虑限制一下,但我不知道该怎么做。

def check_continuity(f, var, a):
    try:
            f = sympify(f)
        except SympifyError:
            return("Invaild input")
        else:
            x1 = Symbol(var, positive = True)
            x2 = Symbol(var, negative = True)
            //I don't know what to do after this
Run Code Online (Sandbox Code Playgroud)

小智 5

我建议你使用该功能continuous_domain。这是在calculus.util模块中定义的。

用法示例:

>>> from sympy import Symbol, S
>>> from sympy.calculus.util import continuous_domain
>>> x = Symbol("x")
>>> f = sin(x)/x
>>> continuous_domain(f, x, S.Reals)
Union(Interval.open(-oo, 0), Interval.open(0, oo))
Run Code Online (Sandbox Code Playgroud)

这在 SymPy 文档中进行了记录您还可以在此处查看源代码。


Lau*_*RTE 3

是的,您需要使用限制。

\n\n

点连续性的正式定义必须满足三个条件。\n函数f ( x ) 在x = c的点连续,如果

\n\n
    \n
  • lim x \xe2\x80\x94> c f ( x ) 存在
  • \n
  • f ( c ) 存在(即c在f的域中。)
  • \n
  • lim x \xe2\x80\x94> c f ( x ) = f ( c )
  • \n
\n\n

SymPy 可以使用 limit 函数计算符号限制。

\n\n
>>> limit(sin(x)/x, x, 0)\n1\n
Run Code Online (Sandbox Code Playgroud)\n\n

请参阅: https: //docs.sympy.org/latest/tutorial/calculus.html#limits

\n