Autor Tema: Ayuda con Programa de Método de Bisección ecuación en C (lenguajeC)  (Leído 5368 veces)

Eusebio

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Hola, necesito ayuda con un código que me han pasado, cuando meto los valores para A:3 y B:3.5 me funciona bien, pero quiero que al meter otros números me diga que "(a,b) debe ser un intervalo de la raíz de la ecuación". quiero que me mande este mensaje. como puedo meter esa parte!. se los agradecería mucho!

Código: [Seleccionar]
#include<conio.h> //entrada y salida de datos
#include<stdio.h> //manipula los datos
#include<stdlib.h>  //para funciones macros, utilidades de uso general
#include<math.h>


float fa(float);
float fb(float);
float fra(float);
main()
{
      float x1=0.0,x2=0.0,ra=0.0,Er=0.05;
      int iteracion=0;
     
      printf("    METODO DE BISECCION\n");
      printf("localizar intervalo que contenga una raiz\n en la ecuacion: x - ln x - 2\n\n");
      printf("\n\nIngrese valor de a: ");
      scanf("%f",&x1);
      printf("\n\nIngrese valor de b: ");
      scanf("%f",&x2);
     
//paso1:
      if( fa(x1) * fb(x2) < 0)
      {
          do
          {
                  //paso2:
                  ra = ( x1 + x2 ) / 2;  //formula
                 
                  //paso3:
                  if( fa(x1)*fra(ra) < 0 )
                  {
                      x2 = ra;
                      //goto paso4;  //el paso 3 se pasa al 4
                  }
                  else
                      if( fa(x1)*fra(ra) > 0 )
                      {
                          x1 = ra;
                          //goto paso4;
                      }
                     
                  //paso4:
                  if( iteracion > 0 )
                  {
                      //Er= abs( x2 - ra );    // abs( x2 ) *100;
                      Er = abs( Er );
                      ++iteracion;
                      //goto paso5;
                  }
                  else
                  {
                      ++iteracion;
                      //goto paso2;
                  }
                  /*PASO 5*/
                  //paso5:
                  //if( Er >0)
                 // {
                     // ++iteracion;
                      //goto paso3;
                  //}
                  //if( Er <= 0)
                  //{
                      if (iteracion == 20)
                      printf("\n\nLa Raiz aproximada es: %f",ra);
                  //}
          }
          while(iteracion <= 20);
      }
      getche();
      return(0);
}

float fa( float x )
{
      float res = 0.0;
      res= ((x)-(log (x))-2);
      return(res);
}
float fb( float x )
{
      float res = 0.0;
      res= ((x)-(log (x))-2);
      return(res);
}
float fra( float x)
{
      float res = 0.0;
      res= ((x)-(log (x))-2);
      return(res);
}

« Última modificación: 11 de Junio 2016, 18:33 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Ayuda con Programa de Método de Bisección ecuación en C (lenguajeC)
« Respuesta #1 en: 11 de Junio 2016, 18:33 »
Hola Eusebio, ¿tú sabes el intervalo solución o tiene que calcularlo el programa?

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".