Пример #1
0
 def try_limit(term, x, to, directory=''):
     try:
         return sympy.Limit(term, x, to, directory).doit()
     except sympy.SympifyError:
         return 'Error'
     except NotImplementedError:
         return "Sorry, cannot solve..."
Пример #2
0
    def noevaluate(self, expr, t, s):

        t0 = sympify('t0')
        return sym.Limit(sym.Integral(expr * sym.exp(-s * t), (t, t0, sym.oo)),
                         t0,
                         0,
                         dir='-')
Пример #3
0
def laplace_transform(expr, t, s, evaluate=True):
    """Compute unilateral Laplace transform of expr with lower limit 0-.

    Undefined functions such as v(t) are converted to V(s)."""

    if expr.is_Equality:
        return sym.Eq(laplace_transform(expr.args[0], t, s),
                      laplace_transform(expr.args[1], t, s))

    if not evaluate:
        t0 = sympify('t0')
        result = sym.Limit(sym.Integral(expr * sym.exp(-s * t),
                                        (t, t0, sym.oo)),
                           t0,
                           0,
                           dir='-')
        return result

    const, expr = factor_const(expr, t)

    key = (expr, t, s)
    if key in laplace_cache:
        return const * laplace_cache[key]

    if expr.has(s):
        raise ValueError(
            'Cannot Laplace transform for expression %s that depends on %s' %
            (expr, s))

    # The variable may have been created with different attributes,
    # say when using sympify('Heaviside(t)') since this will
    # default to assuming that t is complex.  So if the symbol has the
    # same representation, convert to the desired one.

    var = sym.Symbol(str(t))
    if isinstance(expr, Expr):
        expr = expr.expr
    else:
        expr = sympify(expr)

    # SymPy laplace barfs on Piecewise but unilateral LT ignores expr
    # for t < 0 so remove Piecewise.
    expr = expr.replace(var, t)
    if expr.is_Piecewise and expr.args[0].args[1].has(t >= 0):
        expr = expr.args[0].args[0]

    expr = sym.expand(expr)
    terms = expr.as_ordered_terms()
    result = 0

    try:
        for term in terms:
            result += laplace_term(term, t, s)
    except ValueError:
        raise

    result = result.simplify()
    laplace_cache[key] = result
    return const * result
Пример #4
0
def handle_limit(func):
    sub = func.limit_sub()
    if sub.LETTER():
        var = sympy.Symbol(sub.LETTER().getText())
    elif sub.SYMBOL():
        var = sympy.Symbol(sub.SYMBOL().getText()[1:])
    else:
        var = sympy.Symbol('x')
    if sub.SUB():
        direction = "-"
    else:
        direction = "+"
    approaching = convert_expr(sub.expr())
    content = convert_mp(func.mp())

    return sympy.Limit(content, var, approaching, direction)
Пример #5
0
def handle_limit(func):
    sub = func.limit_sub()
    if sub.LETTER_NO_E():
        var = sympy.Symbol(sub.LETTER_NO_E().getText(), real=is_real)
    elif sub.GREEK_CMD():
        var = sympy.Symbol(sub.GREEK_CMD().getText()[1:].strip(), real=is_real)
    else:
        var = sympy.Symbol('x', real=is_real)
    if sub.SUB():
        direction = "-"
    else:
        direction = "+"
    approaching = convert_expr(sub.expr())
    content = convert_mp(func.mp())

    return sympy.Limit(content, var, approaching, direction)
Пример #6
0
#!/usr/bin/env python
# coding: utf-8

# In[1]:

#!/usr/bin/env python
# coding: utf-8

# In[4]:

import sympy as sym
sym.init_printing()
x = sym.symbols('x')

sym.Limit(1 / x, x, sym.oo)

# In[2]:

# In[2]:

print("grup 1")
sym.Limit((x**2 - 1) / (x - 1), x, 1)

# In[3]:

print("jawaban")
sym.Limit((x**2 - 1) / (x - 1), x, 1).doit()

# In[ ]:
Пример #7
0
def format_limit(node, visitor):
    if len(node.args) >= 3:
        return sympy.latex(
            sympy.Limit(
                *[visitor.evaluator.eval_node(arg) for arg in node.args]))
Пример #8
0
 def try_limit(term, x, to, directory=''):
     try:
         return sympy.Limit(term, x, to, directory).doit()
     except sympy.SympifyError:
         return 'Error'
Пример #9
0
sym1.series(x,x0,n)
sym1.removeO()
###########################################################
# 3.1 # 3.2
sym.solveset(f,x,domain=sym.S.Complexes) 
sym.solveset(f<0,domain=sym.S.Reals)
sym.roots(f,x) # multiple roots not only once {0:1 , 3:2} 0 order 1 and 3 order 2
sym.solve(f)

sym.nsolve(f,x0)
#####
# 4.1
#use limit instead of subs when necessary
sym.limit(f,x,x0)
sym.limit(f,x,x0,'+') # or '-'
sym.Limit(f,x,x0)
#####
sym.singularities(f,x)
#####
is_monotonic
is_increasing
is_decreasing
is_strictly_increasing
is_strictly_decreasing

#####
# 4.2 #4.3
sym1.diff(x,y,z,z)
sym.diff(f,x,y,z,z)
sym1.diff( (x,n) ) # unspecified n is sym or int. float?
sym.Derivative(f,x,y,z) # unevaluated , later can be by:
Пример #10
0
  _Mul(sympy.Pow(5, 3, evaluate=False), sympy.Pow(a, 2, evaluate=False))),
 ("a^{32}b^2", _Mul(a**32, b**2)),
 ("5^{38}b^3", _Mul(sympy.Pow(5, 38, evaluate=False), b**3)),
 ("6a^3b^4", _Mul(6, _Mul(a**3, b**4))),
 ("4a^{b^7}",
  4 * sympy.Pow(a, sympy.Pow(b, 7, evaluate=False), evaluate=False)),
 ("\\frac{d}{d\\theta} x", sympy.Derivative(x, theta)),
 ("\\sin \\theta", sympy.sin(theta)), ("\\sin(\\theta)", sympy.sin(theta)),
 ("\\sin^{-1} a", sympy.asin(a)),
 ("\\sin a \\cos b", _Mul(sympy.sin(a), sympy.cos(b))),
 ("\\sin \\cos \\theta", sympy.sin(sympy.cos(theta))),
 ("\\sin(\\cos \\theta)", sympy.sin(sympy.cos(theta))),
 ("\\frac{a}{b}", a / b), ("\\frac{a + b}{c}", _Mul(a + b, _Pow(c, -1))),
 ("\\frac{7}{3}", _Mul(7, _Pow(3, -1))),
 ("(\\csc x)(\\sec y)", sympy.csc(x) * sympy.sec(y)),
 ("\\lim_{x \\to 3} a", sympy.Limit(a, x, 3)),
 ("\\lim_{x \\rightarrow 3} a", sympy.Limit(a, x, 3)),
 ("\\lim_{x \\Rightarrow 3} a", sympy.Limit(a, x, 3)),
 ("\\lim_{x \\longrightarrow 3} a", sympy.Limit(a, x, 3)),
 ("\\lim_{x \\Longrightarrow 3} a", sympy.Limit(a, x, 3)),
 ("\\lim_{x \\to 3^{+}} a", sympy.Limit(a, x, 3, dir='+')),
 ("\\lim_{x \\to 3^{-}} a", sympy.Limit(a, x, 3, dir='-')),
 ("\\infty", sympy.oo),
 ("\\lim_{x \\to \\infty} \\frac{1}{x}",
  sympy.Limit(_Mul(1, _Pow(x, -1)), x, sympy.oo)),
 ("\\frac{d}{dx} x", sympy.Derivative(x, x)),
 ("\\frac{d}{dt} x", sympy.Derivative(x, t)), ("f(x)", f(x)),
 ("f(x, y)", f(x, y)), ("f(x, y, z)", f(x, y, z)),
 ("\\frac{d f(x)}{dx}", sympy.Derivative(f(x), x)),
 ("\\frac{d\\theta(x)}{dx}", sympy.Derivative(theta(x),
                                              x)), ("|x|", _Abs(x)),