Anterior

Procedimiento del punto medio

Resolver la ecuación trascendente por el procedimiento del punto medio

1.5·(1-cosθ)-θ=0

public class Funcion extends Ecuacion{
        public Funcion(){
    }
    double f(double x){
         double y=1.5*(1-Math.cos(x))-x;
        return y;
  }
} 

 

public class Aplicacion {
 public static void main(String[] args) {
     Funcion f=new Funcion();
     try{
            double raiz=f.puntoMedio(0.0, Math.PI/2);
            System.out.println(raiz*180/Math.PI);
        }catch(RaizExcepcion ex){
            System.out.println(ex.getMessage());
        }
  }

}

Ecuación diferencial de segundo orden

Resolver la ecuación diferencial de segundo orden

( 1 2 m d R 2 +m r 2 +M R 2 ) d 2 θ d t 2 =MgRmgrsinθ

por procedimientos numéricos con las condiciones iniciales: en el instante t=0, dθ/dt=0, θ=0.

public class Sistema extends RungeKutta{
    double mIzq, mDcha;
    double r, R;
    final double mDisco=1.0;
    public Sistema(double mIzq, double mDcha, double r, double R, double h){
      super(h);
      this.mIzq=mIzq;
      this.mDcha=mDcha;
      this.r=r;
      this.R=R;
    }
    public double f(double x, double v, double t){
         double y=(-mIzq*9.8*r*Math.sin(x)+mDcha*9.8*R)/
(0.5*mDisco*R*R+mIzq*r*r+mDcha*R*R);
         return y;
    }
}

Se establece el estado incial

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

Se crea un objeto de la clase derivada

 Sistema sis=new Sistema(mIzq, mDcha, r, radio, 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

sis.resolver(estado);

Anterior