
Distancia focal óptima
Hallar la raíz de la ecuación trascendente por el procedimiento del punto medio
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)) |
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- |