Algoritmo do método de Newton
Publicado por Rafael Henrique da Silva Correia 02/05/2008
[ Hits: 32.280 ]
Homepage: http://abraseucodigo.com.br
Script para achar 0 em funções reais!! Em termos computacionais o método de Newton é o mais eficaz para fazer isso, pois é o que usa menos iterações possíveis!
OBS: O código ainda não lê funções digitadas, por isso mude a função Fxnovo e Fdxnovo para as funções que você desejar, lembrando que Fdxnovo é a derivada de Fxnovo e a função colocada no exemplo é a função F(x)=x^3-9*x+3
#include <stdio.h>
#include <stdlib.h>
float Abs( float x ){
x = ( x * x ) / -(x);
return x;
};
int main(){
float solucao = 0., xini = 0., xnovo = 0., Fxnovo = 0.,
Fdxnovo = 0., E = 0.;// Fdxini = derivada de Fxini
int k = 0;
printf( "Digite o x inicial: " );
scanf( "%f", &xnovo );
printf( "Digite a precisao: " );
scanf( "%f", &E );
do{
xini = xnovo;
Fxnovo = ( xini * xini * xini ) - 9. * xini + 3.; //inserir sua função principal aqui
Fdxnovo = 3. * ( xini * xini ) - 9.; //inserir a derivada da função principal aqui
xnovo = xini - ( Fxnovo / Fdxnovo );
k += 1;
printf( "\niteracao = %d", k );
printf( "\nxini = %f\nxnovo = %f", xini, xnovo );
} while( Abs( xnovo - xini ) >= E || Abs( Fxnovo ) >= E );
printf( "\n\nxnovo - xini = %f\n", xnovo - xini);
printf( "A solucao final eh: %f\n", xnovo );
return 0;
}
Desenhando uma curva Dragão ou o Fractal Jurassic Park
Método eficiente de armazenamento utilizando containers (Vector e Map)
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Como programar um sistema de controle para distribuições linux em c? (0)
Compartilhar ZEBRA ZD220 na rede (2)
Como programar um software que seja utilizado para coleta de dados em ... (1)









