
Procedimiento numérico
Raíces de una ecuación, procedimiento de iteracción
Para obtener h cuando se proporciona el valor de t, es necesario resolver una ecuación implícita en h por procedimientos numéricos. En este caso se ha empleado el procedimiento de aproximaciones sucesivas.
public class Iteracion { static final double[] tensionSup={0.0728, 0.0331, 0.0228, 0.0594}; // en N/m static final double[] densidad={1000, 900, 790, 1260}; //en kg/m3 static final double[] viscosidad={0.00105, 0.113, 0.00122, 1.393}; // en S.I static double m, n; public static void main(String[] args) { int iLiquido=0; //agua double radio=0.1*0.001; //radio capilar en m m=tensionSup[iLiquido]*radio/(4*viscosidad[iLiquido]); n=densidad[iLiquido]*9.8*radio*radio/(8*viscosidad[iLiquido]); double h=0.0001; for(double t=0; t<180.0; t+=10.0){ h=raiz(h, t); System.out.println(t+" "+h); } } static double raiz(double x0, double t){ double x1; while(true){ x1=(m/n)*(1.0-Math.exp(-(n/m)*(x0+n*t))); if(Math.abs((x1-x0)/x1)<0.0001) break; x0=x1; } return x0; } } |
