O Calculo Númerico
Por: Salezio.Francisco • 9/2/2018 • 976 Palavras (4 Páginas) • 349 Visualizações
...
[pic 20][pic 21]
Algoritmo de Newton-Raphson Algoritmo de Halley
[pic 22]
Algoritmo da Bisseção
Exemplo 2. [pic 23]
[pic 24]
O intervalo que se encontra a raiz é (0,1)
Pode-se montar também uma tabela para relacionara velocidade de cálculo dos métodos:
Método
Iterações
Tempo médio
Raiz
Bisseção
20
51 µseg
0.497200489044189
Halley
2
8 µseg
0.497200366107629
Newton
2
3 µseg
0.497200366107651
Gráfico de erros relacionados ao número da iteração para cada método:
[pic 25][pic 26]
Método de newton Método de Halley
[pic 27]
Algoritmo da bisseção
Exemplo 3. [pic 28]
[pic 29]
O intervalo que se encontra a raiz é [1,2]
Pode-se montar também uma tabela para relacionara velocidade de cálculo dos métodos
Método
Iterações
Tempo médio
Raiz
Bisseção
20
20 µseg
1.129980564117432
Halley
3
5 µseg
1.129980498650832
Newton
4
2 µseg
1.129980498650838
Gráfico de erros relacionados ao número da iteração para cada método
[pic 30][pic 31]
Método de newton Algoritmo de Halley
[pic 32]
Algoritmo da Bisseção
Exemplo de formatação entrada-saída
Para o exemplo 3, obteve-se:
Entrada:
0 0 1 1 1 -4 1000 0.000001 0.000001 1 2
Saída:
Entrada: 1
Método: Newton-Raphson -->Tempo de execução: 2.00 microssegundos
CONVERGIU
Número de iterações: 4
Raiz final: 1.129980498650838
|x_(i)-x_(i-1)|: 0.000000126609406
|f(x_i)|: 0.000000000000018
Método: Halley -->Tempo de execução: 5.00 microssegundos
CONVERGIU
Numero de iterações: 3
Raiz final: 1.129980498650832
|x_(i)-x_(i-1)|: 0.000000000033223
|f(x_i)|: 0.000000000000000
Método: Bisseção -->Tempo de execução: 20.00 microssegundos
CONVERGIU
Número de iterações: 20
Raiz final: 1.129980564117432
|x_(i)-x_(i-1)|: 0.000000476837158
|f(x_i)|: 0.000000230591277
Dificuldades enfrentadas
As dificuldades enfrentadas foram as relacionadas a sintaxe da linguagem utilizada, principalmente na parte do cálculo do tempo de execução, que se mostrava ser da ordem de microsegundos. Essa dificuldade foi solucionada com o uso da biblioteca e das funções time() e difftime() e de variáveis do tipo time_t.
Outra dificuldade foi a da declaração de todas as variáveis usadas no programa na main(locais), fazendo com que precisassemos passar, insistentemente , várias variáveis como parâmetro pra todas as funções, prejudicando muito a legibilidade e a construção do código. Por isso, decidimos usar variáveis globais, evitando ao máximo variáveis locais, fazendo com que a lista de argumentos das funções diminuisse drasticamente, aumentando a legibilidade.
Conclusão
Com relação aos métodos, o da bisseção precisa sempre que dentro do intervalo dado possua uma raiz, mas o método é simples computacionalmente. O método de Halley é mais sofisticado e converge para a raiz mais rapidamente que o método da bisseção, mas por possuir uma maior quantidade de operações algébricas demora mais que o de Newton-Rhapson.
O método de Newton e de Halley demandam que a raiz procurada ocorra “longe” de pontos
...