code: def test_simp_pen():
      # This tests that the equations generated by LagrangesMethod are identical
      # to those obtained by hand calculations. The system under consideration is
      # the simple pendulum.
      # We begin by creating the generalized coordinates as per the requirements
      # of LagrangesMethod. Also we created the associate symbols
      # that characterize the system: 'm' is the mass of the bob, l is the length
      # of the massless rigid rod connecting the bob to a point O fixed in the
      # inertial frame.
      q, u = dynamicsymbols("q u")
      qd, ud = dynamicsymbols("q u ", 1)
      l, m, g = symbols("l m g")
  
      # We then create the inertial frame and a frame attached to the massless
      # string following which we define the inertial angular velocity of the
      # string.
      N = ReferenceFrame("N")
      A = N.orientnew("A", "Axis", [q, N.z])
      A.set_ang_vel(N, qd * N.z)
  
      # Next, we create the point O and fix it in the inertial frame. We then
      # locate the point P to which the bob is attached. Its corresponding
      # velocity is then determined by the 'two point formula'.
      O = Point("O")
      O.set_vel(N, 0)
      P = O.locatenew("P", l * A.x)
      P.v2pt_theory(O, N, A)
  
      # The 'Particle' which represents the bob is then created and its
      # Lagrangian generated.
      Pa = Particle("Pa", P, m)
      Pa.potential_energy = -m * g * l * cos(q)
      L = Lagrangian(N, Pa)
  
      # The 'LagrangesMethod' class is invoked to obtain equations of motion.
      lm = LagrangesMethod(L, [q])
      lm.form_lagranges_equations()
      RHS = lm.rhs()
      assert RHS[1] == -g * sin(q) / l
  
file_path: sympy/sympy/physics/mechanics/tests/test_lagrange.py
imports: from sympy.physics.mechanics import dynamicsymbols, ReferenceFrame, Point, RigidBody, LagrangesMethod, Particle, inertia, Lagrangian
  from sympy.core.function import Derivative, Function
  from sympy.core.numbers import pi
  from sympy.core.symbol import symbols
  from sympy.functions.elementary.trigonometric import cos, sin, tan
  from sympy.matrices.dense import Matrix
  from sympy.simplify.simplify import simplify
  from sympy.testing.pytest import raises
label_desc: Use image node_id 3 for calling a global function with example usage: test_simp_pen() without return types