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
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);
