Anterior

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.

h = a b ( 1 exp ( b a ( h + b t ) ) )

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