package ejemplos;
/**
 * Title: Cruce por cero
 * Description: este algoritmo calcula el cruce por cero de una funcion
                haciendo por aproximaciones sucecivas.
Programa para desplegar el letrero de Hola Mundoi
 * Copyright: Copyright (c) 2003
 * Company: UMSNH
 * author Dr. Felix Calderon Solorio
 * version 1.0
 */

class ej006
{
  public static void main (String args[])
  {
    float a = (float) 0.7;
    float b = (float) 0.8;

    cruce_por_cero(a, b, 1000);
  }

  public static float f(float x)
  {
    float y;
    y=x-(float)Math.cos((double)x);
    return y;
  }

  public static void cruce_por_cero(float a, float b,int ndiv)
  {
     // este algoritmo calcula el cruce por cero de una funcion
     // haciendo por aproximaciones sucecivas.

     float inc,x,nvo,ant;
     inc=(b-a)/ndiv;
     x=a;

     do
     {
       ant=f(x);
       x=x+inc;
       nvo=f(x);
     }
     while((ant*nvo)>0);

     System.out.println("La solución esta en  "+ (x-inc) + " y " +x);
     a = x-inc; b = x;
  }
}

