Esempio n. 1
0
def test_euler_sineg():
    psi = Function('psi')
    t = Symbol('t')
    x = Symbol('x')
    L = D(psi(t, x), t)**2/2 - D(psi(t, x), x)**2/2 + cos(psi(t, x))
    assert euler(L, psi(t, x), [t, x]) == [Eq(-sin(psi(t, x)) -
                                              D(psi(t, x), t, t) +
                                              D(psi(t, x), x, x), 0)]
Esempio n. 2
0
def test_euler_sineg():
    psi = Function("psi")
    t = Symbol("t")
    x = Symbol("x")
    L = D(psi(t, x), t)**2 / 2 - D(psi(t, x), x)**2 / 2 + cos(psi(t, x))
    assert euler(L, psi(t, x), [t, x]) == [
        Eq(-sin(psi(t, x)) - D(psi(t, x), t, t) + D(psi(t, x), x, x), 0)
    ]
Esempio n. 3
0
def test_euler_sineg():
    psi = Function('psi')
    t = Symbol('t')
    x = Symbol('x')
    L = D(psi(t, x), t)**2 / 2 - D(psi(t, x), x)**2 / 2 + cos(psi(t, x))
    assert euler(L, psi(t, x), [t, x]) == [
        Eq(-sin(psi(t, x)) - D(psi(t, x), t, t) + D(psi(t, x), x, x), 0)
    ]
Esempio n. 4
0
def test_euler_high_order():
    # an example from hep-th/0309038
    m = Symbol('m')
    k = Symbol('k')
    x = Function('x')
    y = Function('y')
    t = Symbol('t')
    L = (m * D(x(t), t)**2 / 2 + m * D(y(t), t)**2 / 2 -
         k * D(x(t), t) * D(y(t), t, t) + k * D(y(t), t) * D(x(t), t, t))
    assert euler(L, [x(t), y(t)]) == [
        Eq(2 * k * D(y(t), t, t, t) - m * D(x(t), t, t), 0),
        Eq(-2 * k * D(x(t), t, t, t) - m * D(y(t), t, t), 0)
    ]

    w = Symbol('w')
    L = D(x(t, w), t, w)**2 / 2
    assert euler(L) == [Eq(D(x(t, w), t, t, w, w), 0)]
Esempio n. 5
0
def test_euler_high_order():
    # an example from hep-th/0309038
    m = Symbol('m')
    k = Symbol('k')
    x = Function('x')
    y = Function('y')
    t = Symbol('t')
    L = (m*D(x(t), t)**2/2 + m*D(y(t), t)**2/2 -
         k*D(x(t), t)*D(y(t), t, t) + k*D(y(t), t)*D(x(t), t, t))
    assert euler(L, [x(t), y(t)]) == [Eq(2*k*D(y(t), t, t, t) -
                                         m*D(x(t), t, t), 0),
                                      Eq(-2*k*D(x(t), t, t, t) -
                                         m*D(y(t), t, t), 0)]

    w = Symbol('w')
    L = D(x(t, w), t, w)**2/2
    assert euler(L) == [Eq(D(x(t, w), t, t, w, w), 0)]
Esempio n. 6
0
def test_euler_high_order():
    # an example from hep-th/0309038
    m = Symbol("m")
    k = Symbol("k")
    x = Function("x")
    y = Function("y")
    t = Symbol("t")
    L = (m * D(x(t), t)**2 / 2 + m * D(y(t), t)**2 / 2 -
         k * D(x(t), t) * D(y(t), t, t) + k * D(y(t), t) * D(x(t), t, t))
    assert euler(L, [x(t), y(t)]) == [
        Eq(2 * k * D(y(t), t, t, t) - m * D(x(t), t, t), 0),
        Eq(-2 * k * D(x(t), t, t, t) - m * D(y(t), t, t), 0),
    ]

    w = Symbol("w")
    L = D(x(t, w), t, w)**2 / 2
    assert euler(L) == [Eq(D(x(t, w), t, t, w, w), 0)]
Esempio n. 7
0
def test_euler_henonheiles():
    x = Function('x')
    y = Function('y')
    t = Symbol('t')
    L = sum(D(z(t), t)**2 / 2 - z(t)**2 / 2 for z in [x, y])
    L += -x(t)**2 * y(t) + y(t)**3 / 3
    assert euler(L, [x(t), y(t)], t) == [
        Eq(-2 * x(t) * y(t) - x(t) - D(x(t), t, t), 0),
        Eq(-x(t)**2 + y(t)**2 - y(t) - D(y(t), t, t), 0)
    ]
Esempio n. 8
0
def test_euler_henonheiles():
    x = Function('x')
    y = Function('y')
    t = Symbol('t')
    L = sum(D(z(t), t)**2/2 - z(t)**2/2 for z in [x, y])
    L += -x(t)**2*y(t) + y(t)**3/3
    assert euler(L, [x(t), y(t)], t) == [Eq(-2*x(t)*y(t) - x(t) -
                                            D(x(t), t, t), 0),
                                         Eq(-x(t)**2 + y(t)**2 -
                                            y(t) - D(y(t), t, t), 0)]
Esempio n. 9
0
def test_euler_high_order():
    # an example from hep-th/0309038
    m = Symbol("m")
    k = Symbol("k")
    x = Function("x")
    y = Function("y")
    t = Symbol("t")
    L = (
        m * D(x(t), t) ** 2 / 2
        + m * D(y(t), t) ** 2 / 2
        - k * D(x(t), t) * D(y(t), t, t)
        + k * D(y(t), t) * D(x(t), t, t)
    )
    assert euler(L, [x(t), y(t)]) == [
        Eq(2 * k * D(y(t), t, t, t) - m * D(x(t), t, t)),
        Eq(-2 * k * D(x(t), t, t, t) - m * D(y(t), t, t)),
    ]

    w = Symbol("w")
    L = D(x(t, w), t, w) ** 2 / 2
    assert euler(L) == [Eq(D(x(t, w), t, t, w, w))]
Esempio n. 10
0
def test_euler_interface():
    x = Function('x')
    y = Symbol('y')
    t = Symbol('t')
    raises(TypeError, lambda: euler())
    raises(TypeError, lambda: euler(D(x(t), t) * y(t), [x(t), y]))
    raises(ValueError, lambda: euler(D(x(t), t) * x(y), [x(t), x(y)]))
    raises(TypeError, lambda: euler(D(x(t), t)**2, x(0)))
    raises(TypeError, lambda: euler(D(x(t), t) * y(t), [t]))
    assert euler(D(x(t), t)**2 / 2, {x(t)}) == [Eq(-D(x(t), t, t), 0)]
    assert euler(D(x(t), t)**2 / 2, x(t), {t}) == [Eq(-D(x(t), t, t), 0)]
Esempio n. 11
0
def test_euler_interface():
    x = Function('x')
    y = Symbol('y')
    t = Symbol('t')
    raises(TypeError, lambda: euler())
    raises(TypeError, lambda: euler(D(x(t), t)*y(t), [x(t), y]))
    raises(ValueError, lambda: euler(D(x(t), t)*x(y), [x(t), x(y)]))
    raises(TypeError, lambda: euler(D(x(t), t)**2, x(0)))
    assert euler(D(x(t), t)**2/2, {x(t)}) == [Eq(-D(x(t), t, t), 0)]
    assert euler(D(x(t), t)**2/2, x(t), {t}) == [Eq(-D(x(t), t, t), 0)]
Esempio n. 12
0
def test_euler_interface():
    x = Function("x")
    y = Symbol("y")
    t = Symbol("t")
    raises(TypeError, lambda: euler())
    raises(TypeError, lambda: euler(D(x(t), t) * y(t), [x(t), y]))
    raises(ValueError, lambda: euler(D(x(t), t) * x(y), [x(t), x(y)]))
    raises(TypeError, lambda: euler(D(x(t), t) ** 2, x(0)))
    assert euler(D(x(t), t) ** 2 / 2, set([x(t)])) == [Eq(-D(x(t), t, t))]
    assert euler(D(x(t), t) ** 2 / 2, x(t), set([t])) == [Eq(-D(x(t), t, t))]
Esempio n. 13
0
def test_issue_18653():
    x, y, z = symbols("x y z")
    f, g, h = symbols("f g h", cls=Function, args=(x, y))
    f, g, h = f(), g(), h()
    expr2 = f.diff(x) * h.diff(z)
    assert euler(expr2, (f, ), (x, y)) == []
Esempio n. 14
0
def test_euler_pendulum():
    x = Function('x')
    t = Symbol('t')
    L = D(x(t), t)**2 / 2 + cos(x(t))
    assert euler(L, x(t), t) == [Eq(-sin(x(t)) - D(x(t), t, t), 0)]
Esempio n. 15
0
def test_euler_pendulum():
    x = Function('x')
    t = Symbol('t')
    L = D(x(t), t)**2/2 + cos(x(t))
    assert euler(L, x(t), t) == [Eq(-sin(x(t)) - D(x(t), t, t), 0)]
Esempio n. 16
0
def test_euler_sineg():
    psi = Function("psi")
    t = Symbol("t")
    x = Symbol("x")
    L = D(psi(t, x), t) ** 2 / 2 - D(psi(t, x), x) ** 2 / 2 + cos(psi(t, x))
    assert euler(L, psi(t, x), [t, x]) == [Eq(-sin(psi(t, x)) - D(psi(t, x), t, t) + D(psi(t, x), x, x))]
Esempio n. 17
0
def test_euler_pendulum():
    x = Function("x")
    t = Symbol("t")
    L = D(x(t), t) ** 2 / 2 + cos(x(t))
    assert euler(L, x(t), t) == [Eq(-sin(x(t)) - D(x(t), t, t))]