Anterior

Ecuación diferencial de segundo orden

Resolver la ecuación diferencial de segundo orden

d 2 θ d t 2 + mgd I 0 cos(θ+φ)=0

por procedimientos numéricos con las condiciones iniciales: en el intante t=0, θ=0, dθ/dt=ω, velocidad angular después del choque.

public class Sistema extends RungeKutta{
    double masa;
    double ancho;
	double mInercia;
	double alto;
// la masa de la partícula deslizante es 1 kg
    public Sistema(double ancho, double alto, double mInercia, 
double masa, double h){ super(h); this.masa=masa; this.ancho=ancho; this.mInercia=mInercia; this.alto=alto; } public double f(double x, double v, double t){ double diagonal=Math.sqrt(ancho*ancho+alto*alto); double anguloDiagonal=Math.atan(alto/ancho); return (-9.8*masa*Math.cos(x+anguloDiagonal)*diagonal/(2*mInercia)); } }

Se establece el estado incial

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

Se crea un objeto de la clase derivada

Sistema sis=new Sistema(ancho,alto, mInercia, masa, 0.005);

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