Anterior

Procedimientos numéricos

Ecuación diferencial de segundo orden

Resolver la ecuación diferencial de segundo orden

m d 2 x d t 2 = qQx 2π ε 0 ( 1 ( x 2 + (D+d) 2 ) 3/2 1 ( x 2 + (Dd) 2 ) 3/2 ) 

por procedimientos numéricos con las condiciones iniciales: en el instante t=0, dx/dt=0,x=3.0.

public class Oscilador extends RungeKutta{
    double d;
    double Q;
    final double D=0.5;  //mitad de la separación
    final double q=1.0;
    public Oscilador(double d, double Q, double h){
        super(h);
        this.d=d;
        this.Q=Q;
    }
    public double f(double x, double v, double t){
        double r1=x*x+(D-d)*(D-d);
        double r2=x*x+(D+d)*(D+d);
        double fuerza=2*Q*q*x*(Math.pow(r2, -1.5)-Math.pow(r1, -1.5));
        return fuerza;
    }
}

Se establece el estado incial

Estado estado=new Estado(0.0, 3.0, 0.0);

Se crea un objeto de la clase derivada

 Oscilador oscila=new Oscilador(d, carga, 0.01);

Se llama a la función resolver que determina el estado del sistema en el instante t+h conocido el estado en el instante t

oscila.resolver(estado);Anterior