Foro de elhacker.net

Programación => Java => Mensaje iniciado por: zaico en 6 Octubre 2011, 18:57 pm



Título: Ayuda con problema fisica! (Novato)
Publicado por: zaico en 6 Octubre 2011, 18:57 pm
Hacía tiempo que no me pasaba por aqui, y bueno ahora estoy empezando con el java en un curso y de momento me las apaño bastante bien. De hecho lo hago casi todo solo, pero llevo todo el dia atrapado con este problema.

/*

El periodo orbital de un planeta o satelite es el tiempo que tarda en dar
una vuelta completa alrededor de un cuerpo central.
Se puede calcular mediante la tercera ley de kepler a partir de la masa
del cuerpo central, el semieje mayor de la órbita eliptica ( o el radio
si la órbita es circular ) y la constante G de gravitacion universal.
Hacer un programa que pida los dos primeros datos y calcule el periodo
orbital segun esta ley.
Tener en cuenta las unidades utilizadas.

Consultar : http://es.wikipedia.org/wiki/Leyes_de_Kepler

Salida del programa
-------------------------------------------
Entra la masa en kg. del cuerpo central  : 5.97E24
Entra el semieje mayor ( o radio ) en km. : 384400
El periodo orbital es de 27.42 dias*/

import java.io.*;

public class P06_PeriodoOrbital {

  static final double G = (6.67*(Math.pow(10,-11)));

    public static void main(String args[]) throws IOException {

        BufferedReader entrada = new BufferedReader(
            new InputStreamReader(System.in));
       
        System.out.print("Entra la masa en kg. del cuerpo central :");
         double m = Double.parseDouble(entrada.readLine());
 
         System.out.print("Entra el semieje mayor ( o radio ) en km. :");
         double r= Double.parseDouble(entrada.readLine());
         
        // sabemos que la formula es : T^2= 4PI^2 * r^3 / G*M
       
         double c= (4*Math.pow(Math.PI,2));
         double d= Math.pow(r,3);
         double e= G*m;
         double f= c*d/e;
         double t= Math.sqrt(f);
         double h= t/3600;
         double i= h/24;
         System.out.printf("%f",t);
    }
                                 
  }

         el caso es que no me da el periodo que representa debería darme. Pero lo extraño del caso es que ni siquiera me da haciendolo con la calculadora, pero esto lo ha hecho el profe así que se supone que tiene que estar bien ... a ver si alguno me puedo ayudar.
gracias!!


Título: Re: Ayuda con problema fisica! (Novato)
Publicado por: Valkyr en 6 Octubre 2011, 22:30 pm
Según wikipedia la 3ª ley de Kepler:

(http://upload.wikimedia.org/wikipedia/es/math/6/a/0/6a000976cff4c58e6ef5319b658a2d1d.png)

y la definición:

Cita de: http://es.wikipedia.org/wiki/Leyes_de_Kepler
Donde, T  es el periodo orbital (tiempo que tarda en dar una vuelta alrededor del Sol), (L)  la distancia media del planeta con el Sol y K  la constante de proporcionalidad.

Así que la formula que dices, que yo sepa y vea con esto, no es correcta. Que me corrijan si me equivoco.

Saludos.


Título: Re: Ayuda con problema fisica! (Novato)
Publicado por: s00rk en 6 Octubre 2011, 22:44 pm
Según wikipedia la 3ª ley de Kepler:

(http://upload.wikimedia.org/wikipedia/es/math/6/a/0/6a000976cff4c58e6ef5319b658a2d1d.png)

y la definición:

Así que la formula que dices, que yo sepa y vea con esto, no es correcta. Que me corrijan si me equivoco.

Saludos.

Tercera ley (1618): para cualquier planeta, el cuadrado de su período orbital es directamente proporcional al cubo de la longitud del semieje mayor al de su órbita elíptica.

Pero ahi ya nos muestra que tenemos que para tal ley se ocupa el periodo de la orbita y mas abajo nos muestra la formula sobre como obtenerla esta misma

(http://upload.wikimedia.org/wikipedia/es/math/a/8/5/a8533e619bbfd652e7ff75a80b445940.png)

Cita de: http://es.wikipedia.org/wiki/Leyes_de_Kepler
Donde, T  es el periodo orbital, r  el semieje mayor de la órbita, M es la masa del cuerpo central y G  una constante denominada Constante de gravitación universal

Que es la formula que el esta utilizando en este proyecto, yo he estado checando aunque no me ha dado aun :/

P.D.El resultado de esta T^2 el resultado es en segundos^2 so ya de ahi empezariamos para ver lo de cuantos dias.