private staticdouble f2(double x, double y, int n, double rata){
double montante = n * rata;
return (montante - CalcolaVA(n, 0, rata, x)) - y;
}
private staticdouble bisezionef2(double a, double b, double y, int n, double rata)
{
double fa = f2(a, y, n, rata);
if (fa == 0) return a;
double fb = f2(b, y, n, rata);
if (fb == 0) return b;
double m = (a + b) / 2;
double fm = f2(m, y, n, rata);
if (fm == 0) return m;
if (b - a < 1e-8) return m;
if (fa * fm < 0)
return bisezionef2(a, m, y, n,rata);
else
return bisezionef2(m, b, y, n,rata);
}
public staticdouble CalcolaTanInversa(double y, int n, double rata)
{
double ik = bisezionef2(1, 20, y, n, rata);
returnMath.Round(ik * 100) / 100;
}