Jump to content

Programa en C


Tuxero

Publicaciones recomendadas

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 quiero introducir nada de perturbaciones gravitacionales ni ecuaciones diferenciales.

De momento 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.De momento éste es el código para el tercer cuadrante:

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;
	}
}

Agradezco toda la ayuda que puedan darme.

Saludos.

Enlace al comentario

Tuxero, el código que proponés ni siquiera debería complilar, tiene errores de sintaxis y falta la declaración de las variables.

En C todas las variables deben declararse antes de ser utilizadas.

Te recomiendo que utilices algún lenguaje de programación de alto nivel (por ej. Visual Basic) ya que son más fáciles y ágiles de aprender.

Con el tema de los cálculos no sabría ayudarte, sin embargo en el foro hay gente que sabe mucho de matemáticas y podrían darte una mano.

Saludos

Enlace al comentario

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.

Conectar ahora
×
×
  • Crear nuevo...