Pesquisar neste blog

24/11/2018

Algoritmo Método de Newton-Rapson C/C++







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

double f(double a){ //Funcao
    return (pow(M_E,-a)-a);
}
//M_E = epsilon
double df(double a){    // Derivada da funcao
    return (-pow(M_E,-a))-1;
}

void metodo (double x, double error, int iteracao){ //metodo
    double y, errorAtual;
    int i = 0;

    printf("\n|%-3s|%-13s|%-21s|\n","i","valor de x ", "Erro Aproximado");

    do{
        i++;
        y = x-(f(x)/df(x));//calculo no novo x

        errorAtual = fabs((y - x)/y) * 100;//calculo do erro
        x = y;

        if(i > iteracao){ //verifica as interacoes
            printf("Nao foi encontrada raiz dentro do numero dessas interacoes\n ");
            return 0;
        }else{
               
        printf("|%-3d| %.10lf|  %.14lf\t|\n", i, x, errorAtual);
}
    }while (errorAtual >= error);
 
    printf("\n\nRaiz = %f \n", x);
}

void main(){
    metodo(0,0.0001, 15); //Chama o metodo ja passando os parametros
// valor do x, precisão, numero máximo de interações
}

Nenhum comentário: