Você está na página 1de 17

INTRODUÇÃO

O seguinte relatório consiste numa proposta de resolução da ficha de trabalho prático nº2 da

unidade curricular Análise Numérica (M2018), presente na Licenciatura de Matemática e

Matemática Aplicada da Faculdade de Ciências da Universidade do Porto (FCUP), e tem

como objetivo o uso de métodos iterativos para o cálculo de valores aproximados de raízes

de uma função.

A Análise Numérica tem como propósito estudar as condições suficientes que asseguram a

existência e singularidade da solução de um problema. Além disso, envolve a escolha de um

método numérico para a sua resolução, o controle dos erros inerentes ao processo, fornece

um algoritmo para a aplicação da sua prática em computador ou em máquina de calcular, e

implica a interpretação dos resultados obtidos.

Desde modo, este trabalho insere-se no capítulo 2, que engloba a resolução numérica de

equações não lineares, que tem como foco a localização e determinação de um valor

aproximado de um zero de uma função. Para isso, podemos recorrer à utilização do método

das bisseções sucessivas e método de Newton, tal como iremos abordar no presente

trabalho.

Por fim, iremos apresentar todas as nossas resoluções dos exercícios bem como as

respectivas justificações. Posto isto, para a elaboração deste trabalho prático foram

utilizadas as seguintes plataformas: Microsoft Word, IDLE Shell e SageMath.


Pretende-se usar um método iterativo para determinar um valor aproximado de um
zero de
2
𝐹(𝑥) = 𝑥 |𝑠𝑖𝑛(𝑥)| − 4

Exercício 1
−1
Separem as raízes reais de F(x) = 0 e determinem um intervalo I de amplitude 10 que
contenha a menor raíz positiva.

Começamos por escrever 𝐹(𝑥) = 0 numa forma equivalente 𝑓(𝑥) = 𝑔(𝑥) e determinar os

pontos de interseção dos gráficos de 𝑓(𝑥) 𝑒 𝑔(𝑥).

2 2
𝐹(𝑥) = 0 ⇔ 𝑥 |𝑠𝑖𝑛(𝑥)| − 4 = 0 ⇔ 𝑥 |𝑠𝑖𝑛(𝑥)| = 4

2
Com isto, obtemos que 𝑓(𝑥) = 𝑥 |𝑠𝑖𝑛(𝑥)| 𝑒 𝑔(𝑥) = 4. Para determinar o intervalo 𝐼 de

−1
amplitude 10 que contenha a menor raíz positiva utilizamos o SageMath para obter o

gráfico representativo de 𝑓(𝑥) 𝑒 𝑔(𝑥) .

Fig.1 - Código que imprime o gráfico em SageMath

Fig.2- Gráfico representativo das funções 𝑓(𝑥) 𝑒 𝑔(𝑥) em SageMath


Fig.3 - Código que imprime a menor raíz positiva e o seu resultado

Como podemos observar na Fig.2, as funções intersetam-se várias vezes, isto é, 𝐹(𝑥) = 0

tem várias raízes sendo a mais pequena no ponto 𝐴 = (3. 48, 4). Com isto, podemos

−1
considerar o intervalo de amplitude 10 , 𝐼 = [3. 4, 3. 5] para resolver os exercícios que se

seguem.

Fig.4 - Código em SageMath que imprime o gráfico representativo do ponto de interseção


das funções

Fig.5 - Gráfico representativo do ponto de interseção com a raíz mais pequena em


SageMath
Exercício 2

1) Método das bisseções sucessivas

Alínea a) Mostrem que as condições de aplicabilidade do método são satisfeitas em I.

As condições de aplicabilidade deste método são:

- 𝐹(𝑥) é 𝑐𝑜𝑛𝑡í𝑛𝑢𝑎 𝑒𝑚 [𝑎, 𝑏]

- 𝐹(𝑎) × 𝐹(𝑏) < 0

Pelo corolário do Teorema de Bolzano-Cauchy, se estas condições se verificarem então

∃𝑐 ∈ ]𝑎, 𝑏[ : 𝑓(𝑐) = 0, isto é, a função possui pelo menos um zero no intervalo ]𝑎, 𝑏[ .

2
- 𝐹(𝑥) é uma função contínua visto que 𝑥 |𝑠𝑖𝑛(𝑥)| é a multiplicação entre uma

2
função quadrática (𝑥 ) e uma função trigonométrica (|𝑠𝑖𝑛(𝑥)|) ambas contínuas

em ℝ , mas como 𝐼 ⊂ ℝ então são contínuas em 𝐼. 4 é uma função constante e

contínua em ℝ , em particular no subconjunto [3. 4, 3. 5]. Como 𝐹(𝑥) é o resultado

de sucessivas operações entre funções contínuas, 𝐹(𝑥) é também uma função

contínua em todo o seu domínio.

𝐷𝐹 = ℝ

Fig.6 - Gráfico de F(x) no intervalo 𝐼 = [3. 4, 3. 5] em SageMath


De acordo com a Fig.6, verifica-se que a função é contínua em 𝐼, e por isso, a primeira

condição é verificada.

- 𝐹(3. 4) ≃ − 1. 046 < 0 𝑒 𝐹(3. 5) ≃ 0. 297 > 0

Logo 𝐹(3. 4) × 𝐹(3. 5) < 0 e, por isso, a segunda condição é verificada.

Fig.7 - Gráfico de 𝐹(𝑥) com os pontos 𝐴 = (3. 4, 𝐹(3. 4)) 𝑒 𝐵 = (3. 5, 𝐹(3. 5)) em SageMath

Conforme demonstramos, satisfeitas as condições de aplicabilidade, isto é, continuidade

de 𝐹(𝑥) em 𝐼 e 𝐹(3. 4) × 𝐹(3. 5) < 0, o método das bisseções sucessivas gera uma

sequência convergente, ou seja, é sempre possível obter um intervalo que contém a raiz

da função em estudo, satisfazendo a precisão desejada.


Alínea b) Escrevam um programa, que usando este método, calcule um valor

aproximado de raiz 𝐹(𝑥) = 0 que pertence a 𝐼, com erro absoluto estimado inferior a

um valor ε dado, imprimindo também o número de iterações foi necessário efetuar.

Para resolver este problema utilizamos a linguagem Python onde escrevemos o seguinte

programa:

Fig.8 - Programa usando o método de bissecções sucessivas em linguagem Python

Começamos por definir três funções f(x), medio (a,b) e intervalo (a,b,erro) onde a, b, erro,

it, e u, têm os seguintes significados:

● a- valor mínimo do intervalo;

● b- valor máximo do intervalo;

● erro- erro absoluto estimado;

● it- número total de iterações;

● u- representa o ponto médio a cada iteração.


De seguida, criamos um ciclo while que irá continuar a executar enquanto a condição

abs(b-a)>=erro for verdadeira. Dentro do ciclo, a cada iteração é somado 1 a it, que nos

permite saber o número de vezes que o ciclo foi executado para atender à condição.

Além disso, o código verifica se o produto entre f(u) e f(a) é negativo, o que significa que a

raiz está entre a e u, nesse caso, b é atualizado para u. Caso contrário, o produto entre

f(u) e f(b) for negativo, a raiz está entre u e b, e a é atualizado para u. Este processo

divide o intervalo pela metade a cada iteração, aproximando-se assim da raiz

pretendida.

Após o fim do ciclo while, o código imprime o número total de iterações necessárias (it)

para encontrar a raiz com a precisão desejada (erro).


Alínea c) Usem o vosso programa para calcular um valor aproximado daquela raiz

−10
com erro absoluto estimado inferior a 5 × 10 .

Ao executar intervalo (3.4, 3.5, 0.0000000005) obtemos o seguinte:

Fig.9 - Resultado do código usando o método de bissecções sucessivas

Com isto, o valor aproximado da raiz 𝑋 que pertence a 𝐼 = [3. 4, 3. 5] com erro absoluto

−10
estimado inferior a 5 × 10 é 3. 47850851528 e, por este método, foi necessário efetuar

28 iterações.

𝑋 = 𝑋𝑜 ± |Δ𝑋𝑜|

−10
⇔ 𝑋 = 3. 47850851528 ± 5 × 10
2) Método de Newton

Alínea a)

As condições de aplicabilidade deste método são:

1. 𝐹(𝑥), 𝐹'(𝑥) 𝑒 𝐹''(𝑥) 𝑒𝑥𝑖𝑠𝑡𝑒𝑚 𝑒 𝑠ã𝑜 𝑐𝑜𝑛𝑡í𝑛𝑢𝑎𝑠 𝑒𝑚 [𝑎, 𝑏]

2. 𝐹(𝑎) × 𝐹(𝑏) < 0

3. 𝐹'(𝑥) ≠ 0 ∀𝑥 ∈ [𝑎, 𝑏]

4. 𝐹''(𝑥) ≥ 0 𝑜𝑢 𝐹''(𝑥) ≤ 0 ∀𝑥 ∈ [𝑎, 𝑏]

5. 𝐹(𝑥0)𝐹''(𝑥0) > 0, 𝑥0 ∈ [𝑎, 𝑏]

1.

2
𝐹(𝑥) = 𝑥 |𝑠𝑖𝑛(𝑥)| − 4

Para calcular as derivadas de 𝐹(𝑥) é necessário avaliar o comportamento da função

𝑠𝑖𝑛(𝑥) no intervalo [3. 4, 3. 5].

Fig.10 - Gráfico da função sin(x) no intervalo 𝐼

De acordo com a Fig.10 conclui-se que a função sin(x) apresenta sempre valores

negativos no intervalo 𝐼 e, por isso,


2
𝐹(𝑥) = − 𝑥 𝑠𝑖𝑛(𝑥) − 4. 𝐷𝐹 = ℝ

2
𝐹'(𝑥) = − 2𝑥 𝑠𝑖𝑛(𝑥) − 𝑥 𝑐𝑜𝑠(𝑥) 𝐷𝐹' = ℝ

2
𝐹''(𝑥) = 𝑥 𝑠𝑖𝑛(𝑥) − 2𝑠𝑖𝑛(𝑥) − 4𝑥 𝑐𝑜𝑠(𝑥) 𝐷𝐹'' = ℝ

Fig. 11- Código em SageMath que imprime os gráficos de 𝐹(𝑥), 𝐹'(𝑥) 𝑒 𝐹''(𝑥) 𝑒𝑚 𝐼

Fig.12 - Gráfico que representa 𝐹(𝑥), 𝐹'(𝑥) 𝑒 𝐹''(𝑥) 𝑒𝑚 𝐼

Assim, conclui-se que 𝐹(𝑥), 𝐹'(𝑥), 𝐹''(𝑥) existem e são contínuas em 𝐼, verificando a

primeira condição.

2.

Esta condição já foi verificada no método anterior, 𝐹(3. 4) × 𝐹(3. 5) < 0.


3.

Pela observação do gráfico representado a azul presente na Fig.12 sabemos que

2
𝐹'(𝑥) = − 2𝑥 𝑠𝑖𝑛(𝑥) − 𝑥 𝑐𝑜𝑠(𝑥) ≠ 0 ∀𝑥 ∈ [3. 4, 3. 5], visto que, a função não interseta a

reta y = 0 em 𝐼. Logo, a condição 3 é satisfeita.

4.

De acordo com a Fig.12, pelo gráfico a verde identificamos que

2
𝐹''(𝑥) = 𝑥 𝑠𝑖𝑛(𝑥) − 2𝑠𝑖𝑛(𝑥) − 4𝑥 𝑐𝑜𝑠(𝑥) ≥ 0 ∀𝑥 ∈ [3. 4, 3. 5]. Logo, a condição 4 é

satisfeita.

5.

Através da condição anterior e pela observação do gráfico a verde da Fig.12 concluímos

2
que, 𝐹''(𝑥0) = 𝑥 𝑠𝑖𝑛(𝑥0) − 2𝑠𝑖𝑛(𝑥0) − 4𝑥 𝑐𝑜𝑠(𝑥0) ≥ 0 ∀𝑥0 ∈ [3. 4, 3. 5] e, temos ainda que

𝐹(3. 5) ≃ 0. 297 > 0 . Então 𝐹(3. 5) × 𝐹''(3. 5) > 0, desta maneira , esta condição é

satisfeita.

Assim, todas as condições estão verificadas e por isso, podemos aplicar o método de

Newton e calcular um valor aproximado da raíz de 𝐹(𝑥).


Alínea b)

Para resolver este problema utilizamos a linguagem Python onde escrevemos o seguinte

programa:

Fig.13 - Programa usando o método de Newton em linguagem Python

Começamos por definir três funções f(x), df (x) e newton (a,erro) onde a, erro, x, x_next e

it têm os seguintes significados:

● a- valor mínimo do intervalo;

● erro- erro absoluto estimado;

● x- armazena a estimativa atual da raíz, inicializada com o valor a.

● x_next- próxima estimativa da raíz, calculada usando o método de Newton.

● it- número total de iterações;

Seguidamente, criamos um ciclo while que irá continuar a executar enquanto a condição

abs(x_next - x) > erro for verdadeira. Dentro do ciclo, ​é calculado a próxima estimativa da

raíz (x_next), usando o método de Newton, através da fórmula x_next= x- f(x)/df(x) e, em

cada iteração, é imprimido o valor de x_next com 11 casas decimais.

O número de iterações necessárias para encontrar a raíz com a precisão especificada é

registrado e impresso no fim.


Alínea c)

Ao executar newton (3.4, 0.0000000005) obtemos o seguinte:

Fig.14- Resultado do código utilizando o método de Newton

Com isto, o valor aproximado da raiz 𝑋 que pertence a 𝐼 = [3. 4, 3. 5] com erro absoluto

−10
estimado inferior a 5 × 10 é 3. 47850851557 e, por este método, foi necessário efetuar 3

iterações.

𝑋 = 𝑋𝑜 ± |Δ𝑋𝑜|

−10
⇔ 𝑋 = 3. 47850851557 ± 5 × 10
Exercício 3
Comparem o comportamento dos dois métodos na resolução deste problema.

Método das bisseções


Método de Newton
sucessivas

Raíz estimada 3.47850851528 3.47850851557

Nº de iterações 28 3

Tabela 1

Com base nos resultados apresentados na Tabela 1, notamos que, para alcançar os valores

desejados por meio dos métodos propostos, o número de iterações necessárias variou

consideravelmente, sendo esta a principal discrepância.

Nesse contexto, observamos que o método de Newton convergiu em apenas 3 iterações,

enquanto o método das bisseções sucessivas demandou 28 iterações. Isto evidencia,

que o primeiro método converge mais rapidamente que o segundo, sendo este mais

demorado e trabalhoso. Isso ocorre, especialmente, quando o intervalo inicial é tal que 𝑏0 −

𝑎0 > ε e se ε for muito pequeno (como é o caso), o número de iterações tende a ser muito

grande.

Conforme verificado no nosso estudo teórico, o método das bisseções sucessivas têm

convergência garantida, desde que as poucas condições necessárias sejam satisfeitas.

Em contrapartida, o método de Newton apresenta condições de convergência mais

restritas, apresentando a desvantagem de poder divergir caso a aproximação inicial não

esteja suficientemente próxima da raiz, e requer o cálculo da derivada da função, o que

implica um maior esforço computacional.


Além disso, as estimativas das raízes em ambos os métodos são muito semelhantes, com

−10
uma diferença mínima de apenas 2. 9 × 10 .

Em resumo, a escolha entre cada método tem as suas próprias vantagens e

desvantagens, e a decisão mais adequada deve ser baseada nas características

específicas de cada função e intervalo em questão.


CONCLUSÃO

Com a elaboração deste trabalho, é notória a nossa expansão no conhecimento e aplicação

dos métodos iterativos pedidos no trabalho ( método das bisseções sucessivas e método de

Newton) para a resolução numérica de equações não lineares, conforme abordado no

capítulo 2 da unidade curricular. Ao aplicarmos estes, obtivemos uma perspetiva sobre a

aplicabilidade destes métodos em situações reais.

Neste relatório, os conceitos teóricos de cada método numérico citado anteriormente foram

estudados, e para a implementação dos algoritmos, a linguagem de programação Python foi

utilizada na plataforma IDLE Shell, de forma a tornar a resolução dos exercícios mais fácil,

visto que nos deparamos com dificuldades em calcular alguns valores aproximados, devido

à eficiência do código no trabalho prático anterior, sendo esta linguagem escolhida devido à

sua praticidade. Além disso, decidimos usar a plataforma SageMath onde nos foi

essencialmente útil na representação gráfica das funções e o uso do MicroSoft Word para a

estruturação do trabalho foi apropriado, demonstrando uma organização eficiente na

apresentação dos resultados.

Por fim, acreditamos que tenhamos conseguido atingir os objetivos estabelecidos e

respondido ao solicitado.

BIBLIOGRAFIA

● https://moodle2324.up.pt/pluginfile.php/149263/mod_resource/content/1/slides37_86.
pdf
● https://www.mat.uc.pt/~alma/aulas/matcomp/sebenta/apontamentos_1011.pdf
● https://paginas.fe.up.pt/an/ficheiros/an.pdf

Você também pode gostar