Algoritmo da Bisseção
Publicado por Rafael Henrique da Silva Correia 02/05/2008
[ Hits: 17.807 ]
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; }
Desenhando Nuvens ou o Fractal de Plasma
Método eficiente de armazenamento utilizando containers (Vector e Map)
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
Utilização sistema operacional - Linux (1)
Impressora SAMSUNG não habilita/impr... (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta