Matlab
1- clear; clc; 2- a=1; b=-9; max=100; tol=0.001; 3- for k=1:max 4- c=(a+b)/2; 5- fa=a^3-a-1; 6- fb=b^3-b-1; 7- fc=c^3-c-1; 8- if fa*fc<0; b=c; else a=c; end 9- if abs(fc)<=tol; raiz=c; break; end 10- if abs(b-a)<=tol; raiz=c; break; end 11- if k==max; error('não houve convergência'); end 12- end 13- ezplot('x^3-9*x+3',[-4,4]); grid on 14- disp(' Metodo da Bisseccao'); 15- disp('_______________________________'); 16- sx=sprintf('x(raiz) = %e',raiz); 17- disp(sx); 18- serro=sprintf('Fx = %e',abs(fc)); 19- disp(serro); 20- serro=sprintf('Erro em x = %e',abs(b-a)); 21- disp(serro); 22- siter=sprintf('Numero de iteracoes = %d',k); 23- disp(siter);
O algoritmo acima foi escrito para implementar o método da Bissecção, cuja equação é f(x)=x3 - 9x + 3. A figura abaixo compara os resultados obtidos com o programa e os cálculos feitos à mão.
Conclusão
Neste trabalho o algoritmo utilizado para resolução de equações do tipo f(x)=0 foi desenvolvido a partir do método da Bissecção. Através de um algoritmo desenvolvido no MatLab, percebemos que através deste método podemos determinar uma raiz real de uma função, ou seja, através de iterações consecutivas utilizando a função de iteração do método da bissecção podemos encontrar um valor para x, tal que f(x) seja nulo.
As vantagens da utilização deste método em relação aos outro é, a facilidade de implementação, estabilidade e convergência para a solução procurada e apresenta um desempenho regular e previsível.
Observamos que o único dado que o programa nos fornece quanto a sua eficiência é o número de iterações efetuadas, o que não nos permite tirar conclusões sobre o tempo de execução