Procedimientos numéricos
Ecuación diferencial de segundo orden
Resolver la ecuación diferencial de segundo orden
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);![]()
