例如,请参阅下面的mathematica代码。
In[1]:= Max[Limit[Sin[x], x -> Infinity]]
Out[1]:= 1
In[2]:= Min[Limit[Sin[x], x -> Infinity]]
Out[2]:= -1
我想在python中做这样的事情(也许是Sympy)
使用sympy,评估limit(sin(x), x, oo)
会返回sin(oo)
,而不是范围或其他内容。
所以我很困惑如何获得它的上限/下限
我认为这不是一个很难的问题,但我很少能找到相关的信息
我可以在python中做到吗?
编辑(2015年11月21日)
我在@Teepeemm建议的路上做了一些尝试,但仍然没有结果 这是Try& error的产品:
import sympy as sym
from scipy.optimize import differential_evolution
sym.init_printing()
x,y,z,l,u = sym.symbols('x y z l u')
f = sym.simplify(sym.sin(x) * sym.exp(-x))
df = sym.diff(f,x)
numeric_df = sym.lambdify(x, df)
numeric_sup_l_u = differential_evolution(numeric_df, [(l,u)])
sup_l_u = sym.sympify(numeric_sup_l_u["x"])
sup_l = sym.limit(sup_l_u, u, sym.oo)
print sym.simplify(sym.limit(sup_l, l, sym.oo))
路上的两个问题:
lambdify
个表达式,但一旦我lambdify
表达式,我就不能再sympify
个贵重物品了。 diferential_evolution
提供给范围,包括有价值的或+oo
。