Anterior

Procedimientos numéricos

Ecuación diferencial de segundo orden

Resolver la ecuación diferencial de segundo orden

d 2 z d t 2 =C(1Acosz)

con las condiciones iniciales: t=0, z=z0 y dz/dt=0

public class Oscilador extends RungeKutta{
    double A;
    double C;
    public Oscilador(double A, double C, double h){
      super(h);
      this.A=A;
      this.C=C;
    }
    public double f(double x, double v, double t){
         return (C*(1-A*Math.cos(x)));
    }

} 
//Objetos de la clase Oscilador Estado estado=new Estado(0.0, x0, 0.0); Oscilador oscilador=new Oscilador(parametro, 1.0, 0.01); //rutina que calcula la trayectoria paso a paso oscilador.resolver(estado);

Raíces múltiples

Procedimiento del punto medio

Dada la energía E, las abscisas de los puntos de retorno, son las raíces de la ecuación

E=-z+Asin(z)

public class Funcion extends Ecuacion{
    double energia;
	double parametro;
	public Funcion(double energia, double parametro){
	    this.energia=energia;
		this.parametro=parametro;
	}
	public double f(double x){
        return(energia+x-parametro*Math.sin(x));
    }
}

Calcula las raíces

public class Aplicacion {
           public static void main(String[] args) {
                   double energia=2.2;
		          double parametro=4.0;
		         double[] raices=new Funcion(energia, parametro).
hallarRaices(-10.0, 10.0, 1.0); System.out.print("Raíces de la ecuación"); for(int i=0; i<raices.length; i++){ System.out.print(" "+raices[i]); } System.out.println("");
}

 

Anterior