Anterior

Procedimientos numéricos

Integral elíptica

Periodo de un péndulo cuando su energía es menor que la máxima (e<1), se calcula la integral elíptica de primera especie

P P 0 = 2 π 0 π 2 dϕ 1 k 2 sin 2 ϕ k=sin θ 0 2

Cálculo del cociente P/P0 cuando se proporciona el dato de la amplitud θ0 de la oscilación.

//aplicación, periodo de un péndulo P/P0
 	double angulo=120.0;
	double k=Math.sin(angulo*Math.PI/360);
	double periodo=2*Eliptica.primera(Math.PI/2, k)/Math.PI;
	System.out.println(((double)Math.round(periodo*1000)/1000);

Ecuación diferencial de segundo orden

Resolver la ecuación diferencial de segundo orden

d 2 θ d t 2 + ω 2 sin θ = 0

con las condiciones iniciales: t=0, dθ/dt=0, θ=θ0

public class Oscilador extends RungeKutta{
    double frecAngular; 
    public Oscilador(double frecAngular, double h){
      super(h);
      this.frecAngular=frecAngular;
    }
    public double f(double x, double v, double t){
         return (-frecAngular*frecAngular*Math.sin(x));
    }

} 
} 
//Objetos de la clase Oscilador Estado estado=new Estado(0.0, x0, 0.0); Oscilador oscilador=new Oscilador(frecAngular, 0.02); //rutina que calcula la trayectoria paso a paso oscilador.resolver(estado);

Integral definida

Cuando la energía total E del péndulo es mayor que el máximo valor de la energía potencial (e>1), el péndulo da vueltas completas.

Cálculo del cociente P/P0cuando se proporciona la energía e del péndulo, aplicando el procedimiento de Simpson

P P 0 = 1 2 2 π 0 2π dθ 2e1+cosθ

public class Funcion extends Simpson{
     double energia;
	 public Funcion(double energia){
	      this.energia=energia;
     }    
public double f(double x){
      double y=1.0/Math.sqrt(2*energia-1.0+Math.cos(x));
      return y;
    }
}
//objetos de la clase Funcion
      Funcion f=new Funcion(energia);
      double res=f.integral(1000)/(2*Math.PI*Math.sqrt(2));
	  System.out.println(res);

Anterior