Método de Newton-Raphson
Publicado por Renan Birck Pinheiro (última atualização em 27/05/2010)
[ Hits: 35.875 ]
Homepage: http://renanbirck.rocks
Implementação na linguagem C do método de Newton-Raphson, usado para obtenção numérica do zero de funções. Não pretendo explicar o funcionamento do método aqui; recomendo a leitura de um livro de Cálculo Numérico para tal fim.
float f(float x) é a função cujo zero queremos descobrir.
float der(float x) é a derivada da função f(x); uma derivada errada tornará a convergência lenta ou impossível.
#include <stdio.h>
#include <math.h>
float f(float x) {
return pow(x,2)-5*x+6;
}
float der(float x) {
return 2*x-5; // derivada de f(x).
}
int main() {
float eps, x0, *iter; // erro, ponto inicial, vetor iterações.
int i, numiter; // iteração atual, número de iterações.
printf("Método de Newton-Rhapson para o zero da função f(x).\n");
printf("Digite o erro: \n");
scanf("%f",&eps);
printf("Digite o número máximo de iterações?\n");
scanf("%d", &numiter);
printf("Digite o X0 inicial? \n");
scanf("%f", &x0);
// Alocar dinâmicamente memória para o vetor das iterações.
iter = malloc(sizeof(float) * numiter);
// Condições iniciais.
iter[0] = x0;
i = 0;
// Iterações.
while(f(iter[i]) > eps) {
// Excedeu o nosso limite de iterações.
if(i > numiter) {
printf("Não convergiu em %d iterações!!!\n", numiter);
printf("Provavelmente f'(x) está errada.\n");
}
iter[i+1] = iter[i] - f(iter[i])/der(iter[i]);
i++;
}
printf("X ~= %f ", iter[i]);
printf("\nForam feitas %d iterações.\n",i);
}
Manipulação de letras maiusculas e minusculas
Retirar ocorrências de uma substring dentro de uma string
Manipulando argumentos com getopt_long
librePods: liberte seus AirPods em 2026
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Instalando e definindo as novas fontes Adwaita no GNOME
Configurar aviso da temperatura da CPU no Conky
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Conky não mostra temperaturas da CPU no notebook (15)
Após todos esses anos... youtube! (2)
archlinux resolução abaixou após atualização [RESOLVIDO] (19)
Registro do 'last&qu... errado [RESOLVIDO] (9)
O WiFi não reconhece minha rede depois que o processo de suspensão é r... (2)









