コード例 #1
0
ファイル: test_diff.py プロジェクト: PWJ1900/Rlearncirq
def test_diff():
    assert Rational(1, 3).diff(x) is S.Zero
    assert I.diff(x) is S.Zero
    assert pi.diff(x) is S.Zero
    assert x.diff(x, 0) == x
    assert (x**2).diff(x, 2, x) == 0
    assert (x**2).diff((x, 2), x) == 0
    assert (x**2).diff((x, 1), x) == 2
    assert (x**2).diff((x, 1), (x, 1)) == 2
    assert (x**2).diff((x, 2)) == 2
    assert (x**2).diff(x, y, 0) == 2*x
    assert (x**2).diff(x, (y, 0)) == 2*x
    assert (x**2).diff(x, y) == 0
    raises(ValueError, lambda: x.diff(1, x))

    p = Rational(5)
    e = a*b + b**p
    assert e.diff(a) == b
    assert e.diff(b) == a + 5*b**4
    assert e.diff(b).diff(a) == Rational(1)
    e = a*(b + c)
    assert e.diff(a) == b + c
    assert e.diff(b) == a
    assert e.diff(b).diff(a) == Rational(1)
    e = c**p
    assert e.diff(c, 6) == Rational(0)
    assert e.diff(c, 5) == Rational(120)
    e = c**Rational(2)
    assert e.diff(c) == 2*c
    e = a*b*c
    assert e.diff(c) == a*b
コード例 #2
0
ファイル: test_solvers.py プロジェクト: Maihj/sympy
def test_solve_for_functions_derivatives():
    t = Symbol('t')
    x = Function('x')(t)
    y = Function('y')(t)
    a11, a12, a21, a22, b1, b2 = symbols('a11,a12,a21,a22,b1,b2')

    soln = solve([a11 * x + a12 * y - b1, a21 * x + a22 * y - b2], x, y)
    assert soln == {
        x: (a22 * b1 - a12 * b2) / (a11 * a22 - a12 * a21),
        y: (a11 * b2 - a21 * b1) / (a11 * a22 - a12 * a21),
    }

    assert solve(x - 1, x) == [1]
    assert solve(3 * x - 2, x) == [Rational(2, 3)]

    soln = solve([
        a11 * x.diff(t) + a12 * y.diff(t) - b1,
        a21 * x.diff(t) + a22 * y.diff(t) - b2
    ], x.diff(t), y.diff(t))
    assert soln == {
        y.diff(t): (a11 * b2 - a21 * b1) / (a11 * a22 - a12 * a21),
        x.diff(t): (a22 * b1 - a12 * b2) / (a11 * a22 - a12 * a21)
    }

    assert solve(x.diff(t) - 1, x.diff(t)) == [1]
    assert solve(3 * x.diff(t) - 2, x.diff(t)) == [Rational(2, 3)]

    eqns = set((3 * x - 1, 2 * y - 4))
    assert solve(eqns, set((x, y))) == {x: Rational(1, 3), y: 2}
    x = Symbol('x')
    f = Function('f')
    F = x**2 + f(x)**2 - 4 * x - 1
    assert solve(F.diff(x), diff(f(x), x)) == [(-x + 2) / f(x)]

    # Mixed cased with a Symbol and a Function
    x = Symbol('x')
    y = Function('y')(t)

    soln = solve(
        [a11 * x + a12 * y.diff(t) - b1, a21 * x + a22 * y.diff(t) - b2], x,
        y.diff(t))
    assert soln == {
        y.diff(t): (a11 * b2 - a21 * b1) / (a11 * a22 - a12 * a21),
        x: (a22 * b1 - a12 * b2) / (a11 * a22 - a12 * a21)
    }
コード例 #3
0
ファイル: test_solvers.py プロジェクト: Maihj/sympy
def test_solve_for_functions_derivatives():
    t = Symbol('t')
    x = Function('x')(t)
    y = Function('y')(t)
    a11, a12, a21, a22, b1, b2 = symbols('a11,a12,a21,a22,b1,b2')

    soln = solve([a11*x + a12*y - b1, a21*x + a22*y - b2], x, y)
    assert soln == {
        x: (a22*b1 - a12*b2)/(a11*a22 - a12*a21),
        y: (a11*b2 - a21*b1)/(a11*a22 - a12*a21),
    }

    assert solve(x - 1, x) == [1]
    assert solve(3*x - 2, x) == [Rational(2, 3)]

    soln = solve([a11*x.diff(t) + a12*y.diff(t) - b1, a21*x.diff(t) +
            a22*y.diff(t) - b2], x.diff(t), y.diff(t))
    assert soln == { y.diff(t): (a11*b2 - a21*b1)/(a11*a22 - a12*a21),
            x.diff(t): (a22*b1 - a12*b2)/(a11*a22 - a12*a21) }

    assert solve(x.diff(t) - 1, x.diff(t)) == [1]
    assert solve(3*x.diff(t) - 2, x.diff(t)) == [Rational(2, 3)]

    eqns = set((3*x - 1, 2*y - 4))
    assert solve(eqns, set((x, y))) == { x: Rational(1, 3), y: 2 }
    x = Symbol('x')
    f = Function('f')
    F = x**2 + f(x)**2 - 4*x - 1
    assert solve(F.diff(x), diff(f(x), x)) == [(-x + 2)/f(x)]

    # Mixed cased with a Symbol and a Function
    x = Symbol('x')
    y = Function('y')(t)

    soln = solve([a11*x + a12*y.diff(t) - b1, a21*x +
            a22*y.diff(t) - b2], x, y.diff(t))
    assert soln == { y.diff(t): (a11*b2 - a21*b1)/(a11*a22 - a12*a21),
            x: (a22*b1 - a12*b2)/(a11*a22 - a12*a21) }
コード例 #4
0
ファイル: test_diff.py プロジェクト: PWJ1900/Rlearncirq
def test_speed():
    # this should return in 0.0s. If it takes forever, it's wrong.
    assert x.diff(x, 10**8) == 0