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