Algoritmo da Bisseção
Publicado por Rafael Henrique da Silva Correia 02/05/2008
[ Hits: 18.207 ]
Homepage: http://abraseucodigo.com.br
Quer encontrar 0 em funções reais? Aí vai o primeiro algoritmo, lembrando que o algoritmo da bisseção de acordo com os matemáticos é o menos eficaz para se achar 0 de funções devido ao número de iterações que ele executa.
OBS: este código ainda não pega sua função, você tem que inserí-la manualmente no código. Neste código exemplo calculo a função F(x) = x^3 - 9*x + 3.
#include <stdio.h>
#include <stdlib.h>
int main(){
float a = 0., b = 0., E = 0., M = 0., Fa = 0., Fb = 0., Fm = 0.;
int k = 0;
printf( "Digite valor de A:" );
scanf( "%f", &a );
printf( "Digite valor de B:" );
scanf( "%f", &b );
printf( "Digite valor de E:" );
scanf( "%f", &E );
printf("\n");
do{
M = ( a + b ) / 2.;
Fa = ( a*a*a ) - (9. * a) + 3.; //insira a sua função aqui para calcular F(a)
Fm = ( M*M*M ) - (9. * M) + 3.; //insira a sua função aqui para calcular F(M)
Fb = ( b*b*b ) - (9. * b) + 3.; //insira a sua função aqui para calcular F(b)
if ( Fa * Fm < 0 )
b = M;
else
a = M;
k += 1;
printf( "iteracao = %d\n", k );
printf( "A = %f\nB = %f\n", a, b );
} while( b - a >= E || Fa >= E || Fb >= E);
//se for verdade ele continua o laço
printf("\nb - a = %f\n", b - a);
printf( "A solucao final eh: %f\n", ( a + b ) / 2. );
return 0;
}
Passando uma matriz para funcao
Desenhando uma curva Dragão ou o Fractal Jurassic Park
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)
Vou destruir sua infância:) (7)
Interface gráfica com problema (0)









