我正在开始使用 Sympy,但有一些问题。我有一个函数,我想找到该函数的域(
x
的所有可能的f
值)和范围(y
的所有可能的f
值),我已经能够得到使用 continuous_domain
的函数域,但我找不到获取范围的方法。
这是一个示例函数:
from sympy import *
from sympy import Symbol, S
from sympy.calculus.util import continuous_domain
x = Symbol("x")
f = sin(x)/x
domain = continuous_domain(f, x, S.Reals)
print(domain)
Sympy 有没有办法获取函数的范围,如果没有,你将如何完成这个任务?
从同一个
util.py
中,您可以导入 function_range
并使用它。一般来说,求解 f(x) = y
得到 x
并找到其连续域。
>>> solve(x**2 - 1 - y,x)
[-sqrt(y + 1), sqrt(y + 1)]
>>> [continuous_domain(i,y,S.Reals) for i in _]
[Interval(-1, oo), Interval(-1, oo)]
但这要求你能够解出表达式……这对于
sin(x)/x
来说并不总是可能的(这就是为什么 function_range
会失败)。
范围 = sympy.calculus.util.function_range(f, x, 域)