Autor Tema: Programa C++ NEWTON-RAPHSON

0 Usuarios y 1 Visitante están viendo este tema.

18 Septiembre, 2016, 02:22 am
Leído 803 veces

rafamatemático

  • Junior
  • Mensajes: 58
  • Karma: +0/-0
  • Sexo: Masculino
Saludos, estoy intentando programar el método de newton en C++ desearia que el programa me arroje una tabla donde se aprecie el numero de interación la raíz (xi) y el error para el momento del calculo de esa raíz. tengo el siguiente código, soy nuevo en estos temas no sé si voy por buen camino, agradecería las ideas y sugerencias sobre posibles modificaciones a realizar en el código


#include<stdio.h>
#include<cmath>
#include<math.h>
#include <iostream>

float f(float x);
float df(float x);

int main()
{
   int imax,iter;
   float error,x0,x1,Ea;
   
   printf ("***METODO DE NEWTON***\n\n");
   printf ("\nDigite el primer valor\n");
    scanf ("%f",&x0);
    printf("\nIntroduce el numero de iteraciones maximas\n");
   scanf("%d",&imax);
   printf("\nIndique el error minimo deseado\n");
    scanf("%f",&error);
    printf("\nIter     Raiz     Error aprox.\n");
   Ea=error+1;
   iter=0;
   
   do {
      iter++;
      x1=x0-(f(x0)/df(x0));
      Ea=fabs(x0-x1);
      printf("\n %d  %2.15lf  %2.15lf", iter,x1,Ea);
   if(Ea<error)
   printf("\n\nEl valor aproximado es %2.15f\n\n",x1);   
   }while(Ea>error && iter<imax);
   
    if(iter==imax) printf("\n\nERROR por numeros de Iteraciones\n\n");
   
   return 0;
 
 
 printf("\n\n\nEl valor aproximado es %2.20f\n\n",x1);
 return 0;


}

double f (double x)
{float f;
 f=(sin(x)-cos(x));
 return f;
}
 
double df (double x)
{float df;
   df=cos(x)+sin(x);
   return df;
}