Anterior

Procedimientos numéricos

Ecuación diferencial de segundo orden

Resolver la ecuación diferencial de segundo orden

d 2 θ d t 2 +2γ dθ dt + ω 0 2 sinθ=fcos(ωt)

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

public class Oscilador extends RungeKutta{
    final double w0=1.0;
    double w;
    double fuerza;
    double gamma;
    public Oscilador(double w, double fuerza, double gamma, double h){
      super(h);
      this.w=w;
      this.fuerza=fuerza;
      this.gamma=gamma;
    }
    public double f(double x, double v, double t){
         return (-w0*w0*Math.sin(x)-gamma*v+fuerza*Math.cos(w*t));
    }
} 
//Objetos de la clase Oscilador Estado estado=new Estado(0.0, x0, v0); Oscilador oscilador=new Oscilador(w, fuerza, gamma, 0.02); //rutina que calcula la trayectoria paso a paso oscilador.resolver(estado);
Anterior