Evaluación de expresiones grandes con restricciones de ecuaciones diferenciales

Considere el siguiente lagrangiano para un sistema, con θ y r siendo las coordenadas del sistema:

L = 2 metro r ˙ 2 + 1 2 metro r 2 θ ˙ 2 gramo metro r ( 3 porque θ )

Lo que nos da el siguiente sistema diferencial:

4 metro r ¨ metro r θ ˙ 2 + gramo metro ( 3 porque θ ) = 0

2 metro r θ ˙ r ˙ + metro r 2 θ ¨ + gramo metro r pecado θ = 0

Y toma la siguiente función:

H = r 2 θ ˙ ( r ˙ porque θ 2 r θ ˙ 2 pecado θ 2 porque 2 θ 2 )

Ahora prueba, con Maple (o cualquier CAS como SymPy, etc.), que

d H d t = 0 (esa cantidad está relacionada con el teorema de Noether)

lo que hice fue definir L ( r , θ ) , H ( r , θ ) , y usando eval con la expresión anterior y las ecuaciones del sistema diferencial, pero devuelve la misma expresión:

Hoja de trabajo de arce

¿Cómo puedo evaluar esa expresión usando el sistema diferencial obtenido del lagrangiano?

Respuestas (1)

No entiendo cómo obtienes tu H de tu L.

Debajo, las dos DE (ecuaciones de Euler-Lagrange) están de acuerdo con lo que diste.

Construyo Hdefusando la transformación de Legendre de L.

Paso un conjunto que contiene los dos DE como tercer argumento del simplifycomando de Maple. Esto a veces se llama "simplificar con relaciones laterales". Así que estoy ordenando a Maple que simplifique diff(Hdef,t)el tema de esas relaciones secundarias.

restart;

with(Physics,diff):

L := 2*m*diff(r(t),t)^2 + 1/2*m*r(t)^2*diff(theta(t),t)^2
     - g*m*r(t)*(3-cos(theta(t)));

                       2                           2                               
             / d      \    1       2 / d          \                                
    L := 2 m |--- r(t)|  + - m r(t)  |--- theta(t)|  - g m r(t) (3 - cos(theta(t)))
             \ dt     /    2         \ dt         /                                

Er := - diff(L,r(t)) + diff(diff(L, diff(r(t),t)),t) = 0;

                                2                                 /  2      \    
                  / d          \                                  | d       |    
    Er := -m r(t) |--- theta(t)|  + g m (3 - cos(theta(t))) + 4 m |---- r(t)| = 0
                  \ dt         /                                  |   2     |    
                                                                  \ dt      /    

ETh := - diff(L,theta(t)) + diff(diff(L,diff(theta(t),t)),t) = 0;

                                              / d          \ / d      \
     ETh := g m r(t) sin(theta(t)) + 2 m r(t) |--- theta(t)| |--- r(t)|
                                              \ dt         / \ dt     /

                  /  2          \    
                2 | d           |    
        + m r(t)  |---- theta(t)| = 0
                  |   2         |    
                  \ dt          /    

Hdef := diff(r(t),t)*diff(L, diff(r(t),t))
        + diff(theta(t),t)*diff(L, diff(theta(t),t))
        - L;

                               2                           2
                     / d      \    1       2 / d          \ 
         Hdef := 2 m |--- r(t)|  + - m r(t)  |--- theta(t)| 
                     \ dt     /    2         \ dt         / 

            + g m r(t) (3 - cos(theta(t)))

simplify( diff(Hdef,t), {Er, ETh} );

                                  0
En realidad, se proporcionó la H (tal vez el ejemplo sea incorrecto, lo siento), pero el simplifycomando era exactamente lo que necesitaba, ¡gracias! (y tuve un error tipográfico al escribir 'pecado' en la captura de pantalla, pero aún así no funcionó)