Método de Newton-Raphson
Publicado por Renan Birck Pinheiro (última atualização em 27/05/2010)
[ Hits: 34.956 ]
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); }
Binário para Decimal, Hexa, Char
Entrar com um número e imprimir todos os seus divisores
simples gerador de numeros primos
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba