Sei sulla pagina 1di 10

Universidade Federal do Vale do São Francisco

Projeto I - Cálculo Numérico

Discentes:
Ciro Gabriel Costa Castro
Joice Beanes Maltez do Espírito Santo
Marina de Paula Soares
Yasminne Tauanna Vieira Miranda
Zyredine Zydane Santos Santana
Docente: Lino Marcos

Juazeiro- BA
2019
1. Descrição do Problema
Frequentemente, em diversas áreas das ciências exatas, surge a necessidade de
determinar as raízes de equações da forma 𝑓 (𝑥 ) = 0. A função 𝑓 (𝑥 ) pode ser um
polinômio em 𝑥, ou uma função transcendente. Resolver a equação 𝑓(𝑥 ) = 0 consiste em
determinar a solução real, ou complexa, 𝑥, tal que 𝑓 (𝑥 ) = 0.

Para equações, como as polinomiais do segundo graus, existem fórmulas


específicas que permitem calcular as raízes em função dos coeficientes, como a fórmula
de Báskara. Entretanto, para polinômios de grau mais elevado, ou funções mais
complexas, é praticamente impossível obter uma solução exata para estas raízes,
necessitando fazer uso de aproximações (soluções numéricas) como resposta para tal
cálculo.

Existem métodos que fornecem essas aproximações, permitindo encontrar os


zeros de uma dada função com qualquer precisão prefixada. A ideia central destes
métodos é partir de uma aproximação inicial para a raiz e, em seguida, refinar essa
aproximação através de um processo iterativo. Portanto, os métodos possuem duas fases:

• Fase 1 – Localização, ou isolamento das raízes, que consiste em obter um


intervalo que contenha a raiz.
• Fase 2 – Refinamento, na qual, uma vez escolhidas as aproximações
iniciais na fase 1, melhora-las sucessivamente até se obter uma
aproximação para a raiz dentro de uma precisão ε prefixada.
✓ Fase 1: Isolamento das Raízes

Nesta etapa, é necessário determinar um intervalo finito [𝑎, 𝑏], tal que 𝑥 ∈ [𝑎, 𝑏].
Para isto, realiza-se uma análise teórica e gráfica de 𝑓(𝑥), utilizando o seguinte teorema:
Seja 𝑓(𝑥) uma função contínua no intervalo [𝑎, 𝑏]. Se 𝑓 (𝑎)𝑓(𝑏) < 0, então existe pelo
menos uma raiz real de 𝑓 no intervalo [𝑎, 𝑏].

A análise gráfica da função 𝑓(𝑥) é fundamental para obter boas aproximações da


raiz. Uma forma prática de se investigar intervalos [𝑎, 𝑏] que contenham a raiz da função
é expressar 𝑓 em uma forma equivalente, como mostrado a seguir:

𝑓 (𝑥 ) = 𝑓1 (𝑥 ) − 𝑓2 (𝑥).

Para este caso, 𝑓(𝑥 ) = 0 se 𝑓1 (𝑥 ) − 𝑓2 (𝑥 ) = 0, ou seja, 𝑥̅ é a raiz de 𝑓, se, e


somente se, em 𝑥̅ , 𝑓1 (𝑥 ) e 𝑓2 (𝑥 ) se interceptam. Logo, a partir da interseção do gráfico
de 𝑓1(𝑥 ) com 𝑓2 (𝑥 ), pode-se determinar geometricamente um intervalo que contenha a
raiz de 𝑓(𝑥 ), ou uma aproximação dela.

✓ Fase 2: Refinamento

O refinamento da raiz pode ser obtido por meio de diferentes métodos numéricos.
A forma de refinamento é o critério de diferenciação entre os diversos métodos iterativos
que existem para este fim. Um método iterativo consiste em uma sequência de instruções
que são executadas passo a passo, algumas das quais são repetidas em ciclos, até que um
critério de parada seja satisfeito.

✓ Critérios de Parada

O critério de parada interrompe a sequência de aproximações gerada pelos


métodos iterativos. Ele tem por objetivo avaliar se uma dada aproximação está
suficientemente próxima da raiz exata. Quando isto ocorre, o processo iterativo é
interrompido e pelo menos um dos seguintes critérios é satisfeito:

|𝑥𝑘 −𝑥𝑘−1 | |𝑥𝑘+1 −𝑥𝑘 |


i. <𝜀 ii. <𝜀 iii. 𝑓 (𝑥𝑘 ) < 𝜀
𝑚𝑎𝑥(1,|𝑥𝑘 |) |𝑥𝑘+1 |

Sendo 𝑥𝑘 o valor aproximado da raiz na “k-ésima” iteração e 𝜀 a precisão


desejada.

2. Implementação dos Algoritmos

2.1. Função para cálculo de raiz cúbica

Para encontrar a raiz cúbica de um número N real, através dos métodos iterativos,
vamos utilizar duas funções para fins de comparações de convergência e de número de
iterações para funções distintas, sendo a Função 1 a mais simples, utilizada no Método da
Tentativa e Erro a Função 2 tem a demonstração detalhada por Lima (2013).

✓ Função 1

Seja N um número real para o qual se deseja determinar sua raiz cúbica, com x ∈
R
3
Temos que: √𝑁 = 𝑥
1
𝑁3 = 𝑥
3
√𝑁 (13) = 3√𝑥
𝑁 = 𝑥3
Teremos a função: 𝒙𝟑 − 𝑵 = 𝟎
✓ Função 2
Lima (2013) demonstra que para um número real N, pode ser usada a seguinte
3
aproximação para √𝑁
1 𝑁 3
𝑙𝑖𝑚 ( 2 + 𝑥𝑘 ) = √𝑁
𝑘→∞ 2 𝑥𝑘

Sabendo que k é o número de iterações, e quando k tende a infinito o valor de x


3
se aproxima de √𝑁 , logo, testaremos nos algoritmos a função de aproximação:
𝟏 𝑵
𝒚= ( + 𝒙𝒌 )
𝟐 𝒙𝒌 ²
2.2. Algoritmos e Testes de Implementação

✓ Método Bisseção

Este método basicamente divide um intervalo [a, b], de forma iterativa, ao meio. Para
verificar se a raiz está contida na primeira ou na segunda metade do intervalo inicial, o
processo é repetido para aquela metade que contém a raiz de 𝑓(𝑥 ) = 0, ou seja, aquela
em que a função 𝑦 = 𝑓(𝑥 ), tem valores numéricos com sinais opostos nos seus extremos.
✓ Entrada no valor de N que é o valor da raiz cúbica que se deseja encontrar
✓ Dados 𝑓 (𝑥 ), em um intervalo [a, b], sendo que o principal critério de convergência
do método é que 𝑓 (𝑎)𝑓(𝑏) < 0
✓ A proposta do algoritmo é calcular a raiz cúbica de um número real N qualquer,
logo, podemos ter números com raízes bem grandes, por isso o intervalo escolhido
foi [−1010 , 1010 ]
✓ ⅇ𝑝𝑠𝑙 é a precisão predefinida no problema, de 6 casas decimais (10−6 )
✓ k é o número de iterações, que começa em 0
𝑥0 +𝑥1
✓ Fazer a função de iteração 𝑥 = 2

✓ Enquanto o critério de parada |𝑓(𝑥 )| > ⅇ𝑝𝑠𝑙, faça o passo 5


✓ Se 𝑓 (𝑥0 )𝑓 (𝑥𝑚 ) < 0,
então 𝑥0 = 𝑥𝑚
senão 𝑥1 = 𝑥𝑚
𝑥0 +𝑥1
✓ Faça 𝑥𝑚 = 2

fim
✓ Escreva (k, 𝑥𝑚 )
Figura 1: Códigos Método da Bisseção pra Função 1 e Função 2 respectivamente

Foram realizados os testes para Função 1 e Função 2 para os valores: 343, -27 e
658,59. Como sabemos, o Método da Bisseção é um método de convergência lenta, por
isso a busca por uma função de aproximação que consiga tornar o algoritmo mais
eficiente. E o que vemos nos testes realizados para as duas funções, temos para a Função
2 resultados com a precisão desejada com menor número de iterações que na Função 1,
como é possível perceber na Tabela 1. A função aproximação é bastante útil para os casos
que são necessários calcular raízes de números de ordem grande, como podemos perceber
com o resultado do último teste, no qual para um N muito grande, a Função 1 não
converge no intervalo para um número máximo de 1000 iterações, sendo que a Função 2
converge com relativamente poucas iterações, levando em conta a grandeza de N, o que
possibilita que encontremos valores de raiz cúbica para qualquer N real.

Tabela 1: Resultados dos Testes de Implementação Método da Bisseção

Função 1 Função 2
N x k x k
343 7.000000006724 59 7.000000579183 49
-27 -2.999999970665 55 -3.000000248221 49
658,59 8.697784263656 58 8.697784714684 51
47893021222299 Não Converge no Intervalo - 36315.392698549331 53
O método exige pouco esforço computacional, método sempre gera uma
sequência convergente embora tenha uma convergência lenta convergência é lenta.
Notadamente se o intervalo inicial tiver um tamanho, b – a, muito maior que a precisão,
epsl, estabelecida. Neste caso, o número de iterações tende a ser muito grande.

✓ Método de Newton

O Método de Newton consiste em atribuir uma estimativa inicial 𝑥0 ∈ [a, b] para


uma raiz de 𝑓 (𝑥 ) = 0 e gerar uma sequência de estimativas, {𝑥𝑘+1 }, k = 0, 1, 2, 3, ...;
onde cada ponto é a interseção da reta tangente a 𝑦 = 𝑓 (𝑥 ) em [𝑥𝑘 , 𝑓(𝑥𝑘 )], com o eixo
das abscissas.

1. Entrada no valor de N que é o valor da raiz cúbica que se deseja encontrar


2. Dados 𝑓(𝑥 ), em um intervalo [a, b], sendo que os principais critérios de
convergência são:
2.1.1 f(a) f(b) < 0
2.1.2 f ' (x)  0 para qualquer x em [a,b]
2.1.3 f ''(x) > 0 ou f ''(x) < 0 para qualquer x em [a,b]
2.1.4 f(x0 ) f ''(x) > 0 para qualquer x em [a, b]

3. O Método de Newton é conhecido por ter convergência rápida, mas isso depende
do quão próximo o chute inicial está da raiz, logo, para otimizar o número de
otimizações, foi decidido que o chute inicial seria a raiz quadrada de N, que é o
número “conhecido” mais próximo da raiz cúbica. Se o N informado por
negativo, o chute inicial será -1000, usando a lógica de implementar o maior
intervalo possível, o que aumenta consideravelmente o número de iterações para
o cálculo de raízes para N negativo.
4. ⅇ𝑝𝑠𝑙 é a precisão predefinida no problema, de 6 casas decimais (10−6 )
5. k é o número de iterações, que começa em 0
𝑓(𝑥 )
6. Fazer a função iteração 𝑥𝑘+1 = 𝑥𝑘 − 𝑓′ (𝑥𝑘 )
𝑘

𝑥𝑘+1 −𝑥𝑘
7. A iterações param quando | | < ⅇ𝑝𝑠𝑙
𝑥𝑘+1

fim
8. Escreva (k, 𝑥𝑚 )
Figura 2::Códigos Método de Newton pra Função 1 e Função 2 respectivamente

Como podemos observar na Tabela 2, não se pode obter um resultado consistente


através do uso da Função 1 para o Método de Newton, isso acontece porque a função não
atende os dos critérios de convergência.

Foram realizados os testes os mesmos testes que no Método, e já percebemos uma


convergência com um número bem menor de iterações, mas como foi dito acima, para o
número negativo, seriam necessárias mais iterações por conta da precisão do chute inicial.

Tabela 2: Resultados dos Testes de Implementação Método Newton

Função 1 Função 2
N x k x k
343 7.32666e-316 5 7 19
-27 7.32666e-316 4 -3 26
658,59 7.32666e-316 4 8.69778 17
47893021222299 7.32666e-316 4 36315.4 23

O Método de Newton tem convergência quadrática e isso proporciona um número


pequeno de iterações, mas o algoritmo não é de fácil implementação pois é necessária
uma análise do sinal de f ´(x) e f ´´(x), o cálculo do valos da primeira derivada, e cada
uma das iterações e talvez por isso não tenhamos chegado a resultados tão consistentes,
por dificuldade de implementação. Outra dificuldade é a escolha da estimativa inicial,
que através de observação dos gráficos de raiz quadrada e raiz cúbica, percebemos que a
raiz quadrada de N seria um bom chute, entretanto não funciona para valores negativos
de N.
✓ Método da Secante

Este método baseia-se na aproximação de f(x) por uma reta, na vizinhança da raiz
de f(x). O ponto de interseção da reta com o eixo é considerado como aproximação à raiz
de f(x) = 0. Se ainda estiver longe da solução a, o processo é repetido iterativamente. Para
iniciar o processo iterativo são escolhidos dois pontos x0 e x1 . O intervalo definido por
eles não necessita de conter a raiz.

1. Entrada no valor de N que é o valor da raiz cúbica que se deseja encontrar


2. Dados 𝑓 (𝑥 ), em um intervalo [a, b], sendo que os principais critérios de
convergência é de que se as estimativas iniciais, x0 e x1, são tais que f(x0). f ´´(x0)
> 0 e f(x1). f ´´(x1) > 0
3. Para otimizar o número de otimizações, foi decidido que o chute inicial seria a
raiz quadrada de N, que é o número “conhecido” mais próximo da raiz cúbica. Se
o N informado por negativo, o chute inicial será -1000, usando a lógica de
implementar o maior intervalo possível, o que aumenta consideravelmente o
número de iterações para o cálculo de raízes para N negativo.
4. ⅇ𝑝𝑠𝑙 é a precisão predefinida no problema, de 6 casas decimais (10−6 )
5. k é o número de iterações, que começa em 0
𝑓(𝑥𝑘 )⋅𝑥𝑘−1 −𝑓(𝑥𝑘−1 )⋅𝑥𝑘
6. Fazer a função de iteração 𝑥𝑘 = 𝑓(𝑥𝑘 )−𝑓(𝑥𝑘−1 )
7. Enquanto o critério de parada |xk+1 – xk| ≤  ou |f(xk+1)| ≤ , faça o passo 5
8. então 𝑥0 = 𝑥𝑚
9. senão 𝑥1 = 𝑥𝑚

Figura 3:Códigos Método da Secante pra Função 1 e Função 2 respectivamente


Tabela 3: Resultados dos Testes de Implementação Método da Secante

Função 1 Função 2
N x k x k
343 7.000000000000 13 7.000000000000 230
-27 -3.000000000000 16 -3.000000000000 65
658,59 8.697784259800 13 8.697784259800 804
47893021222299 36315.392698943033 28 Não Converge no Intervalo -

Como podemos perceber a Função 2 não foi eficiente para este método, tendo em
vista, principalmente que não convergiu para grandes valores de N e que muitas iterações
foram necessárias para que convergissem os valores testados anteriormente.

Apesar de a ordem de convergência do método das Secantes ser inferior à do


método de Newton, o método da Secante foi eficiente para uma função sem convergência
no método de Newton. O método é uma é uma alternativa viável uma vez que requer
somente a avaliação da função 𝑦 = 𝑓(𝑥 ) em cada iteração, não sendo necessário avaliar
𝑓 ′(𝑥 ). (𝑑 ), se 𝑓(𝑥𝑘 ) ≈ 𝑓 (𝑥𝑘−1 ) pode não ser possível aplicar o método das Secantes e
não ocorrer convergência.

3. Conclusão
Após a implementação dos métodos numéricos, foi possível concluir que estes
possuem desempenho satisfatório para o cálculo da aproximação da raiz de uma função
𝑓 (𝑥 ) real e contínua, embora as dificuldades a respeito de entender as alternativas para
as funções que poderiam solucionar os problemas de raiz cúbica. Percebemos que existem
tipos de funções que se comportam de forma melhor e mais eficiente para cada método.

Outra grande dificuldade é a definição dos chutes iniciais, principalmente pela


exigência de serem algoritmos que calculem qualquer valor de N pertencente aos reais.
Uma forma de melhorar os códigos, seria incluir o cálculo de um intervalo que existe uma
raiz real, o que não foi feito nesse projeto por limitações de conhecimento de
programação.

4. Referências Bibliográficas
CHERRI, Adriana; VIANNA, Andréa; BALBO, Antônio; BAPTISTA, Edméa. Métodos
Numéricos Computacionais. Faculdade de Ciências, UNESP : Bauru. São Paulo. 18p.
PILLING, Sergio. Métodos numéricos para achar raízes de funções. Faculdade de
Engenharia, Arquitetura e Urbanismo, UNIVAP: São José dos Campos. São Paulo. 31p.
FERREIRA, José Álvaro. Cálculo Numérico – Notas de Aula. Universidade Federal de
Ouro Preto, Instituto de Ciências Exatas e Biológicas, Departamento de Computação:
UFOP: Ouro Preto, Minas Gerais, 2013.
LIMA, Marcos Vinicius Aurelio de. Uma contribuição ao ensino do cálculo de raízes
quadradas e cúbicas. Trabalho de Conclusão de Curso (Mestrado em Matemática) -
Universidade Federal de Campina Grande, Centro de Ciências e Tecnologia. UFCG:
Campina Grande, 2013. 59 f.:il. color.

RUGGIERO, M. A. G; LOPES, V. L R. Cálculo Numérico Aspectos Teóricos e


Computacionais. 2ª Ed. São Paulo: MAKRON Books, 1996.

CAMPOS, Frederico F. Filho.. Universidade Federal de Minas Gerais, Departamento


de Ciência da Computação do ICEx. UFMG: Belo Horizonte, Minas Gerais, 2010.

Potrebbero piacerti anche