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