Anterior

Procedimientos numéricos

Sistema de dos ecuaciones diferenciales de segundo orden

Resolver el sistema de dos ecuaciones diferenciales de segundo orden

d 2 x d t 2 = k m (L L 0 ) x L d 2 y d t 2 = k m (L L 0 ) ( L e y) L k m ( L e L 0 ) L= ( L e y) 2 + x 2

con las condiciones iniciales:en el instante t=0, la posición inicial es x0, y0, y parte del reposo

public class Oscilador extends RungeKutta2{
    double cte_masa;
    double lonMuelle;
    double lonEquilibrio;
    Oscilador(double cte_masa, double lonMuelle, double lonEquilibrio, double h){
        super(h);
        this.cte_masa=cte_masa;
        this.lonMuelle=lonMuelle;
        this.lonEquilibrio=lonEquilibrio;
    }
    public double f(double x, double y, double vx, double vy, double t){
        double lonActual=Math.sqrt((lonEquilibrio-y)*(lonEquilibrio-y)+x*x);
        return (-cte_masa*(lonActual-lonMuelle)*x/lonActual);
    }
    public double g(double x, double y, double vx, double vy, double t){
        double lonActual=Math.sqrt((lonEquilibrio-y)*(lonEquilibrio-y)+x*x);
        return (cte_masa*(lonActual-lonMuelle)*(lonEquilibrio-y)
/lonActual-cte_masa*(lonEquilibrio-lonMuelle)); } }
//Objetos de la clase Oscilador Estado estado=new Estado(0.0, x0, y0, 0, 0); Oscilador oscilador=new Oscilador(cteMuelle/masa, lonMuelle, yEquilibrio, 0.01); //rutina que calcula la trayectoria paso a paso oscilador.resolver(estado);
Anterior