我需要定义一个函数,以检查输入函数在具有sympy的点处是否连续。
我用关键字“ continuity”搜索了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
答案 0 :(得分:1)
是的,您需要使用限制。
一个点的连续性的正式定义必须满足三个条件。 函数 f ( x )在 x = c if
的点处连续SymPy可以使用limit函数计算符号极限。
>>> limit(sin(x)/x, x, 0)
1
请参阅:https://docs.sympy.org/latest/tutorial/calculus.html#limits
答案 1 :(得分:1)
这里有一种更简单的方法来检查函数是否针对特定值继续:
import sympy as sp
x = sp.Symbol("x")
f = 1/x
value = 0
def checkifcontinus(func,x,symbol):
return (sp.limit(func, symbol, x).is_real)
print(checkifcontinus(f,value,x))
此代码输出将是 - False
答案 2 :(得分:0)
我建议您使用函数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))
这尚未添加到文档中。您可以查看更多详细信息here。