Jump to content
  • Nos complace invitarlos a registrarse y participar de una nueva locura que se llama microscopia.com.ar. Hace tiempo que con JavierAR teníamos ganas de tener un espacio dedicado a la microscopia amateur, y si bien recién empezamos creo que va a tan grande e interesante como la astronomía. Los esperamos en microscopia.com.ar!

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
Invitado
Este tema está cerrado a nuevas respuestas.
×
×
  • Crear nuevo...