Procedimientos numéricos
Ecuación diferencial de segundo orden
Resolver la ecuación diferencial de segundo orden
con las condiciones iniciales: En el instante t=0, la posición inicial de la partícula es x=0.02 y parte del reposo, su velocidad inicial es dx/dt=0 y su masa inicial es m0=1.0·10-6
public class Oscilador extends RungeKutta{
final double k=0.01;
final double beta1=0.0003;
final double beta2=0.1;
double flujo;
double masaIni=1.0e-6;
double masa;
public Oscilador(double flujo, double paso){
super(paso);
this.flujo=flujo;
}
void setMasa(double m){
masaIni=m;
}
double getMasa(){
return masa;
}
public double f(double x, double v, double t){
masa=masaIni+flujo*t;
double y=9.8-k*x/masa-(beta1+beta2*flujo)*v/masa;
return y;
}
} |
