¿Cómo encontrar anomalía excéntrica por anomalía media?

Wikipedia me da la ecuación

M = E - e*senE

Tengo M y necesito encontrar E.

¿Cómo hacerlo?

Respuestas (2)

Puede usar un método de resolución de raíz para calcular la anomalía excéntricaingrese la descripción de la imagen aquí

Como dijiste, la ecuación de Kepler para la anomalía excéntrica / media y la excentricidad es:

METRO = mi mi s i norte ( mi )

y no hay una solución de forma cerrada para E como una función de M, pero aún puede calcular E iterativamente.

Puede configurar esto como un problema de resolución de raíz restando M de ambos lados de la ecuación para crear una función de la que desee encontrar la raíz (o cuando sea igual a 0 como una función de E):

F ( mi ) = mi mi s i norte ( mi ) METRO = 0

La solución del solucionador de raíz calculará un valor de E tal que esta ecuación sea igual a 0, lo que le indicará la anomalía excéntrica que satisface la ecuación de Kepler (la solución).

Para un solucionador de raíces de Newton, debe calcular la derivada de esta función (con respecto a E), que es:

d ( F ( mi ) ) d mi = 1 mi C o s ( mi )

Con esas dos ecuaciones, los valores para la anomalía media (M), la excentricidad (e) y una suposición inicial para la anomalía excéntrica (E) (esto puede ser 0), el solucionador de raíz de Newton calculará la solución.

Como dijeron otros comentarios, esto solo funciona para órbitas cerradas (circulares y elípticas), porque, por definición, las órbitas parabólicas e hiperbólicas no tienen un período. La anomalía excéntrica hiperbólica se utiliza para órbitas parabólicas/hiperbólicas: ¿ Qué es la anomalía excéntrica hiperbólica F?

Aquí hay un buen diagrama que explica la anomalía media ( https://en.wikipedia.org/wiki/Mean_anomaly ). Para resumirlo, la anomalía media es la "anomalía real" de una órbita con el mismo período que la órbita que está modelando, excepto que es circular, por lo que tiene una velocidad angular constante ("media").

Aquí está el script de Python utilizado para hacer este diagrama. El solucionador de raíz de Newton se puede encontrar aquí: https://github.com/alfonsogonzalez/AWP/blob/main/src/python_tools/numerical_tools.py

'''
Create visualizations for Kepler's equation
of Mean / Eccentric anomalies and eccentricity
'''

from numerical_tools import newton_root_single_args
from numerical_tools import d2r, r2d

import numpy             as np
import matplotlib.pyplot as plt
plt.style.use( 'dark_background' )

def keplers_eq( E, args ):
    return E - args[ 'e' ] * np.sin( E ) - args[ 'M' ] 

def dkep_dE( E, args ):
    return 1.0 - args[ 'e' ] * np.cos( E )

if __name__ == '__main__':
    args0   = { 'M': 100 * d2r, 'e': 0.0 }
    args1   = { 'M': 100 * d2r, 'e': 0.5 }
    args2   = { 'M': 100 * d2r, 'e': 0.9 }
    args3   = { 'M': 200 * d2r, 'e': 0.1 }
    args4   = { 'M': 200 * d2r, 'e': 0.9 }
    Es      = np.arange( 0, 2 * np.pi, 0.01 )
    Es_deg  = Es * r2d
    args    = [ args0, args1, args2, args3, args4 ]
    colors  = [ 'r', 'g', 'b', 'c', 'm' ]
    labels  = [ '0 | $M=100,e=0$', '1 | $M=100,e=0.5$', '2 | $M=100,e=0.9$' ]
    labels += [ '3 | $M=200,e=0.1$', '4 | $M=200,e=0.9$' ]

    plt.figure( figsize = ( 12, 8 ) )
    for n in range( len( args ) ):
        fs   = keplers_eq( Es, args[ n ] )
        root = newton_root_single_args( keplers_eq, dkep_dE, 0.0, args[ n ] )
        plt.plot( Es_deg, fs, colors[ n ], label = labels[ n ] )
        plt.plot( root[ 0 ] * r2d, 0, colors[ n ] + 'o' )


    plt.ylabel( 'f( E )' )
    plt.xlabel( 'E $(degrees)$' )
    plt.grid( linestyle = 'dotted' )
    plt.legend()
    plt.show()
¿Se utiliza la anomalía hiperbólica para órbitas parabólicas? Las parábolas tienen esa propiedad molesta donde tienen un semieje mayor infinito, por lo que no existe un círculo osculador (para la anomalía elíptica) ni una hipérbola equilátera apropiada (para la anomalía hiperbólica), y tienes que fijar la anomalía media a otra cosa. . Dicho esto, las ecuaciones de movimiento son directamente resolubles para las parábolas, porque son un caso muy especial, similar a como lo son los círculos.
Al trazar una órbita elíptica, puede comenzar en mi = METRO = 0 , y luego para los puntos subsiguientes puede usar el mi del punto anterior como aproximación inicial.
@notovny No soy la mejor persona para hacer esta pregunta ya que no me he encontrado con órbitas parabólicas en la industria. Pero una aplicación probable para ellos sería al hacer un análisis de un cohete que lleva una nave espacial interplanetaria con C3 = 0.
@PM2Ring, ¿quiere decir solo E = M para la suposición inicial? Para todos los ejemplos trazados, sería una suposición inicial mucho mejor que E = 0 (que no debería haber usado). Olvidé mencionar eso / conectarlo en el script
@AlfonsoGonzalez ¿Alguien toma una nave espacial interplanetaria con C3=0 en la salida de la Tierra? Requiere niveles ridículos de precisión en sus quemaduras y desperdicia delta-V. Si va a algún lugar interplanetario que no esté exactamente en la órbita de la Tierra, su salida de la Tierra debería ser hiperbólica,
@notovny No en realidad, por supuesto, pero para un análisis preliminar se puede usar. Estuve en una situación en una pasantía en la que estábamos haciendo un diseño de trayectoria interplanetaria asumiendo que la nave espacial se dejaría caer con C3> 0, pero también hicimos un análisis con C3 = 0 para ver cómo eso afectaría el diseño de la misión (sabiendo que este número exacto no se aplica en la vida real)
@Alfonso No, aunque METRO es también una primera aproximación razonable. Otra opción es mi = METRO + mi pecado METRO . Mi sugerencia anterior es que al calcular el mi en el momento t , utilizar el mi en el momento ( t Δ t ) como su primera aproximación. Eso es el mi del punto anterior en la órbita que estás trazando. No hay mucha diferencia entre esas 3 opciones cuando mi es pequeño, pero para órbitas excéntricas, puede marcar la diferencia, especialmente si Δ METRO es pequeño, por lo que cada nuevo punto está cerca del anterior. Publicaré una pequeña demostración en el siguiente comentario.
@PM2Ring Gracias por esa información y me gustó tu demostración.
¿Funcionará para órbitas elípticas altas?
@Robotex sí, las líneas azul y magenta en el gráfico usan ecc = 0.9 (consulte la leyenda en la parte superior izquierda del gráfico)
Gracias. Voy a intentarlo. El método que estoy usando en este momento funciona perfectamente para e ~ 0 pero no funciona para e ~ 1
@AlfonsoGonzalez ¿Qué pasa con las trayectorias hiperbólicas y la anomalía hiperbólica?

Como dice el artículo de wikipedia, no hay una forma cerrada de expresar mi en términos de METRO .

Tendrías que aproximarlo, por ejemplo usando una expansión en serie:

mi METRO + ( mi 1 8 mi 3 ) pecado ( METRO ) + ( 1 2 mi 2 ) pecado ( 2 METRO ) + ( 3 8 mi 3 ) pecado ( 3 METRO )

Consulte Morrison 1882 para obtener detalles sobre cómo hacer su propia aproximación.

¿Qué tan precisa será esa aproximación? ¿Cuál es el rango permitido de valor e? ¿Funcionará con cualquier e?
@Robotex Los términos de la serie omitida serían el término de error. La aproximación sería más precisa para valores bajos de e que para valores altos de e.
¿Qué quieres decir con alto? ¿1.0 es alto? ¿O mas alto? ¿Qué tan grande puede ser este error? Lo necesito para el cálculo de la anomalía verdadera. ¿Entiendo bien que M(t) se calcula con suficiente precisión y calcular la verdadera anomalía a partir de ella no generará errores con el flujo de tiempo desde las mediciones iniciales de posición/velocidad?
@Robotex, puede pensar en la anomalía media como la proyección de anomalía verdadera en un círculo que incluye la órbita. Una órbita circular tiene una excentricidad de cero. Entonces, la proyección comienza a "romperse" a medida que la órbita es cada vez menos circular, es decir, cuando la excentricidad se aleja de 0. Cuando e>=1, la órbita ya no está cerrada, por lo que la aproximación de la anomalía media será totalmente incorrecta.
Pero, ¿cuántas potencias de e debo sumar para obtener E aproximadamente correcta para e = 1.0? ¿Existe alguna forma de calcular E para trayectorias parabólicas/hiperbólicas?
@Robotex Hyperbolas tiene su propia anomalía hiperbólica H , donde la relación es METRO = mi pecado H H . Las parábolas son lo suficientemente especiales como para manejarlas, por lo que generalmente evito trabajar con ellas por completo cuando realizo simulaciones de pasatiempos; a menos que su velocidad sea exactamente la velocidad de escape para su distancia, es elíptico o hiperbólico.
Está trabajando con órbitas elípticas, pero después de que me transfirieron a circular, se congela en el valor único 0_o
En el caso circular ( mi = 0 ) , no tienes que hacer nada. Para una órbita circular, anomalía media ( METRO ) = Anomalía excéntrica ( mi ) = Anomalía verdadera ( θ )
Hah, simplemente no actualicé la hora.
Muchas gracias. Todo está funcionando con precisión.
Voté negativamente porque este no es el mejor enfoque. Newton-Raphson funciona bastante bien, incluso para órbitas elípticas muy excéntricas.
Maldita sea, funciona idealmente para órbitas casi circulares pero no funciona con elípticas.