You are on page 1of 2

namespace ConsoleApplication1

class Program
{
static double PedirDatos(string mensaje)
{
Console.WriteLine("Digite el {0}:", mensaje);
double dato = double.Parse(Console.ReadLine());
return dato;
}
static double funcion(double x)
{
return (667.38f / 14.75f) * (1 - Math.Exp(-0.146843 * x)) - 40;
}
static double Biseccion(double xi, double xs, double xm, double es, int imax)
{
double ea = 1;
int iter = 0;
double fi = funcion(xi);
do
{
double xmante = xm;
xm = (xi + xs) / 2;
double fm = funcion(xm);
iter++;
if (xm != 0 && iter > 1)
{
ea = Math.Abs((xm - xmante) / xm) * 100;
}
Console.WriteLine(" {0}
{1:F4}
{2:F4}
{3:F4}
{4:F4}", iter, xi, xs, xm, ea);
double test = fi * fm;
if (test < 0)
xs = xm;
else if (test > 0)
{
xi = xm;
fi = fm;
}

else
{
ea = 0;
}
} while (ea > es || iter > imax);
return xm;
}
static void Main(string[] args)
{
double xi = PedirDatos("Limite Inferior");
Console.WriteLine();
double xs = PedirDatos("Limite Superior");
Console.WriteLine();
double deter = funcion(xi) * funcion(xs);
if (deter>0)
Console.WriteLine("No hay raices en este intervalo");
else
{
double xm = (xi + xs) / 2;
double es = 0.5;
int iter = 0;
int imax = 10;
Console.WriteLine(" Iter
Xi
Xs
Xm
double raiz = Biseccion(xi, xs, xm, es, imax);
Console.WriteLine();
Console.WriteLine("La raiz es: {0}", raiz);
Console.WriteLine();
}
}
}

Ea");

You might also like