Anuncio

Colapsar
No hay ningún anuncio todavía.

Cálculo de posiciones astronómicas.

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • C/C++ Cálculo de posiciones astronómicas.

    Hola:
    Tengo en mente hacer un programa en C que me calcule las posiciones en coordenadas cartesianas y polares de la órbita de Venus respecto al Sol. La idea sería que el programa fuera sacando las sucesivas posiciones, velocidades y aceleraciones en cartesianas por integración numérica -método de Euler-, con un bucle for, y que el usuario seleccionara el infinitesimal de tiempo para hacer la integración.

    No me hace falta introducir nada relacionado con perturbaciones gravitacionales de la órbita.

    Había pensado dividir la órbita en cuatro cuadrantes y ver qué pasa con la aceleración centrípeta, la velocidad y la aceleración en cada uno de ellos, pero no me funciona. Éste sería el código para el tercer cuadrante:
    Código:
    posiciony = 0, posicionx = -1.082082e11, velocidadx = 0, velocidady =  3.501e4, aceleracionx = 1.133e-2;
    
       
    /*  Las sucesivas posiciones y valores de la velocidad y la aceleración se  calculan por la intergración de Euler. El Sol es el centro de  coordenadas */
       for( i = 0; i <= repeticiones; i++ )
       {
          
          if( posicionx <= 0 && posiciony >= b ) // Condiciones para el 3º cuadrante.
          {
             velocidadx = aceleracionx * diferencial;
             velocidady = aceleraciony * diferencial;
             posicionx += velocidadx * diferencial;
             posiciony -= velocidady * diferencial;
             unitariox = posicionx / ( sqrt( ( pow( posicionx, 2 ) ) + ( pow( posiciony, 2 ) ) ) );
             unitarioy = posiciony / ( sqrt( ( pow( posicionx, 2 ) ) + ( pow( posiciony, 2 ) ) ) );
             aceleracionx = ( G * masasolar / ( sqrt( ( pow( posicionx, 2 ) ) + pow( posiciony, 2 ) ) ) ) * unitariox;
             aceleraciony = ( G * masasolar / ( sqrt( ( pow( posicionx, 2 ) ) + pow( posiciony, 2 ) ) ) ) * unitarioy;
          }
    }
    Toda ayuda es bienvenida.
    Última edición por Tuxero; 11/10/2010, 00:32:53.
     \dst \iint_{\partial V} \boldsymbol{A}\cdot \boldsymbol{n} \,dS = \iiint_{V} \nabla \boldsymbol{A}\, dV

  • #2
    Re: Cálculo de posiciones astronómicas.

    Yo te sugeriría mover el burro y ponerlo delante de la carreta Calcula primero la aceleración y después mueve el cuerpo.

    En el cálculo de la aceleración estás tomando una raiz cuadrada que no deberías tomar, la aceleración varía con el inverso del cuadrado de la distancia.

    Saludos,

    Al
    Última edición por Al2000; 11/10/2010, 01:58:53. Motivo: Error de tipeo.
    Don't wrestle with a pig in the mud. You'll both get dirty, but the pig will enjoy it. - Parafraseando a George Bernard Shaw

    Comentario


    • #3
      Re: Cálculo de posiciones astronómicas.

      Es verdad, muchas gracias Al. De todas formas, me he dado cuenta que lo puedo hacer calculando la arcotangente del ángulo del radiovector con el eje x, y usando el ángulo para el vector unitario del campo gravitatorio. Cuando haya programado todo el código ya lo postearé por si le interesa a alguien.
      ¡Saludos!
      Última edición por Tuxero; 11/10/2010, 03:11:31.
       \dst \iint_{\partial V} \boldsymbol{A}\cdot \boldsymbol{n} \,dS = \iiint_{V} \nabla \boldsymbol{A}\, dV

      Comentario


      • #4
        Re: Cálculo de posiciones astronómicas.

        Bueno, es tu programa y tu lo haces a tu gusto, pero a menos que desees el valor del vector unitario para alguna otra cosa, sería mas simple y mas rápido precalcular el factor GM = G * masa_solar fuera del bucle y dentro del bucle calcular r32 = (sqrt(x^2+y^2))^3 seguido por cada componente de la aceleración como ax = - GM x / r32 y ay = - GM y / r32.

        Y si no te importa que me meta donde no me han llamado, no veo porqué divides el cálculo en cuatro partes, una para cada cuadrante, si las ecuaciones son las mismas y los cálculos te van a dar los signos apropiados para las aceleraciones, velocidades y posiciones.

        Por cierto que en el mensaje anterior pasé por alto (en verdad no me fijé) que no estás calculando las velocidades en forma correcta. Tienes que incrementar la velocidad en cada pase del bucle, similar a lo que haces con la posición.

        Saludos,

        Al
        Don't wrestle with a pig in the mud. You'll both get dirty, but the pig will enjoy it. - Parafraseando a George Bernard Shaw

        Comentario


        • #5
          Re: Cálculo de posiciones astronómicas.

          El problema dado se puede resolver de una forma más sencilla. Sabemos que las órbitas son elipses de excentricidades dadas, y la velocidad angular se puede calcular a partir de la ley de las áreas fácilmente en función de la distancia en cada punto. No hace falta calcular la fuerza en ningún momento, ya que sabemos la solución analítica en este caso ideal.

          De hecho, sería interesante que hicieras el calculo de las dos formas y lo calcules.
          La única alternativo a ser Físico era ser etéreo.
          @lwdFisica

          Comentario

          Contenido relacionado

          Colapsar

          Trabajando...
          X