Esempio n. 1
0
            points = [x0 + points*S(i)/2 for i
                      in range(-order, order + 1, 2)]
    others = [wrt, 0]
    for v in set(derivative.variables):
        if v == wrt:
            continue
        others += [v, derivative.variables.count(v)]
    if len(points) < order+1:
        raise ValueError("Too few points for order %d" % order)
    return apply_finite_diff(order, points, [
        Derivative(derivative.expr.subs({wrt: x}), *others) for
        x in points], x0)


as_finite_diff = deprecated(
    useinstead="Derivative.as_finite_difference",
    deprecated_since_version="1.1", issue=11410)(_as_finite_diff)

as_finite_diff.__doc__ = """
    Deprecated function. Use Diff.as_finite_difference instead.
    """


def differentiate_finite(expr, *symbols,
                         # points=1, x0=None, wrt=None, evaluate=True, #Py2:
                         **kwargs):
    r""" Differentiate expr and replace Derivatives with finite differences.

    Parameters
    ==========
Esempio n. 2
0
            points = [x0 + points*S(i)/2 for i
                      in range(-order, order + 1, 2)]
    others = [wrt, 0]
    for v in set(derivative.variables):
        if v == wrt:
            continue
        others += [v, derivative.variables.count(v)]
    if len(points) < order+1:
        raise ValueError("Too few points for order %d" % order)
    return apply_finite_diff(order, points, [
        Derivative(derivative.expr.subs({wrt: x}), *others) for
        x in points], x0)


as_finite_diff = deprecated(
    useinstead="Derivative.as_finite_difference",
    deprecated_since_version="1.1", issue=11410)(_as_finite_diff)


def differentiate_finite(expr, *symbols,
                         # points=1, x0=None, wrt=None, evaluate=True, #Py2:
                         **kwargs):
    """ Differentiate expr and replace Derivatives with finite differences.

    Parameters
    ==========
    expr : expression
    \*symbols : differentiate with respect to symbols
    points: sequence or coefficient, optional
        see ``Derivative.as_finite_difference``
    x0: number or Symbol, optional