Anterior

Procedimientos numéricos

Ecuación diferencial de segundo orden

Resolver la ecuación diferencial de segundo orden

d 2 x d t 2 = B 0 2 a 2 mR ( 1exp(t/τ) )( exp(t/τ) τ x+( 1exp(t/τ) ) dx dt )

por procedimientos numéricos con las condiciones iniciales: en el instante t=0, la varilla se encuentra en la posición x=x0, en reposo, dx/dt=0.

public class Sistema extends RungeKutta {
    double tau;    //constante de tiempo
  public Sistema(double h, double tau){
     super(h);
     this.tau=tau;
   }
  public double f(double x, double v, double t){
     double y=-(1-Math.exp(-t/tau))*((1-Math.exp(-t/tau))*v+x*Math.exp(-t/tau)/tau);
     return y;
  }
}

Se establece el estado incial

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

Se crea un objeto de la clase derivada

 Sistema sis=new Sistema(0.01, tau);

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

sis.resolver(estado);Anterior