Procedimientos numéricos
Diferencia de dos integrales elípticas
double angulo=Double.valueOf(textAngulo.getText()).doubleValue();
double k=Math.cos(angulo*Math.PI/360);
double angFi=Math.asin(1.0/(Math.sqrt(2)*k));
double res1=Integral_Eliptica.primera(Math.PI/2, k); //completa
double res2=Integral_Eliptica.primera(angFi, k); //incompleta
System.out.println(res1-res2);
|
Ecuación diferencial de segundo orden
Resolver la ecuación diferencial de segundo orden
por procedimientos numéricos con las condiciones iniciales: en el instante t=0, la varilla está inclinada un ángulo θ=θ0 y parte del reposo, ω=dθ/dt=0.
public class Sistema extends RungeKutta{
double lonVarilla;
public Sistema(double lonVarilla, double h){
super(h);
this.lonVarilla=lonVarilla;
}
public double f(double x, double v, double t){
return (14.7*Math.sin(x)/lonVarilla);
}
}
|
Se establece el estado incial
Estado estado=new Estado(0.0, angInicial, 0.0);
Se crea un objeto de la clase derivada
Sistema sis=new Sistema(lonVarilla, 0.002);
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);
