Anterior

Distancia focal óptima

Hallar la raíz de la ecuación trascendente por el procedimiento del punto medio

h R R 2 h 2 +f (xf)= h max R R 2 h max 2 + f min (x f min ) x=f+( f h ) f+R R 2 h 2 f+R R 2 h 2 h f h + h R 2 h 2 f= n R 2 n 2 h 2 ( n 2 1 )R+ n 2 R 2 h 2 n 2 1 f h = n 2 h n 2 1 ( n R 2 n 2 h 2 + h R 2 h 2 )

  public class Funcion extends Ecuacion{
    double n;
    double R;
    double x;
     final double hMax=5.85;
    public Funcion(double n, double R){
        this.n=n;
        this.R=R;
     }
     void setPos(double x){
        this.x=x;
     }
    public double f(double h){
         double x=caustica(h);
         return(recta(h, x)-recta(-hMax, x));
    }
     double focal(double h){
      double f=(n*Math.sqrt(R*R-n*n*h*h)-(n*n-1)*R+n*n*Math.sqrt(R*R-h*h))/(n*n-1);
      return f;
    }
    public double recta(double h, double x){
        double y=-h*(x-focal(h))/(focal(h)+R-Math.sqrt(R*R-h*h));
        return y;
    }
    private double dervFocal(double h){
        double z=-(n*n*h/(n*n-1))*(n/Math.sqrt(R*R-n*n*h*h)+h/Math.sqrt(R*R-h*h));
        return z;
    }
    public double caustica(double h){
          double z=focal(h)+h*dervFocal(h)*(focal(h)+R-Math.sqrt(R*R-h*h))
/(focal(h)+R-Math.sqrt(R*R-h*h)-h*dervFocal(h)-h*h/Math.sqrt(R*R-h*h)); return z; } }

Distancia focal óptima

     Funcion lente=new Funcion(iRefraccion(lonOnda), radio);   
	try{
         double hRaiz=lente.puntoMedio(0.0, hMax);
         x0=lente.caustica(hRaiz);
         y0=lente.recta(hRaiz, x);
    }catch(RaizExcepcion ex){
            System.out.println(ex.getMessage());
    }
//...
    double iRefraccion(int lonOnda){
        double n=2.099-1.9446e-3*lonOnda+2.8756e-6*lonOnda*lonOnda-
1.4745e-9*lonOnda*lonOnda*lonOnda; return n; }

Anterior