如何在python中获取数学函数的limsup / liminf值?

时间:2015-11-20 10:57:17

标签: python math sympy

例如,请参阅下面的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))

路上的两个问题:

  • 使用scipy函数需要lambdify个表达式,但一旦我lambdify表达式,我就不能再sympify个贵重物品了。
  • 我不知道如何将diferential_evolution提供给范围,包括有价值的或+oo

0 个答案:

没有答案