luizaspan icon

Método de Newton-Raphson (c/ do while e derivada numérica)

luizaspan | PRO | 09/04/15 07:42:48 PM UTC | 0 ⭐ | 722 👁️ | Never ⏰ | []
C |

640 B

|

None

|

0 👍

/

0 👎

#include <stdio.h>
#include <math.h>
 
#define eps 1e-6
#define x0 0
#define dx 1e-5
 
double f(double x)
{
    return (exp(-x)-x);
}
 
double df(double x)
{
    return ((f(x+dx)-f(x))/dx); // não preciso saber da função
}
 
int main(void)
{   
    double x=x0,delta,y;
    int i,k=0;
 
    // for (i=0;i<n;i++) // for (i=0;i<n && f(x)!=0;i++)
    // {
    //  x=x-f(x)/df(x);
    //  printf("f(%.15e)=%e \n",x,f(x));
    //  k++;
 
    //  if (f(x)==0)
    //      break;
    // }
 
    do 
    {
        y=x;
        x=x-f(x)/df(x);
        k++;
        delta=(x-y);
        printf("f(%.15e)=%e \n",x,f(x));
    } while (delta>eps);
 
    printf("Número de iterações: %d \n",k);
 
    return 0;
}

Comments