Você está na página 1de 2

Exercício 01: Raízes e otimização de funções

Marta Ferreira nº58706, João Botas nº 59759 , Francisco Lopes nº59750


Este trabalho teve como objetivo a utilização de métodos para determinar as raízes e mínimos de
funções, observando também a sua evolução com o número de iterações e a sua convergência para
os valores desejados.

I. RAIZ QUADRADA DE UM NÚMERO:


De forma a se estimar o valor de 4 utilizaram-se
os métodos da bissecção, de Newton e da secante, que
para os quais utilizou-se a função f (x) = x2 − 4 e o
mesmo critério de convergência ϵ = 10−5 .

Para o método da bissecção usou-se como intervalos


iniciais, [0.7, 2.6], [0.4, 1.7] e [−3.0, 0.6] para se calcu-
lar o valor pretendido, obtendo-se os valores A1 =
1.999995..., A2 = 1.699990... e A3 = −2.000003..., res-
petivamente.
Figura 2. Gráfico do erro obtido em função do número de
Sabendo que os valor esperados para os zeros da iterações, para cada método utilizado no cálculo da raiz.
função, são de −2 e 2, verifica-se que A1 e A3 se
aproximam dos valores esperados. Enquanto que, A2 ,
afasta-se do previsto, sendo que no intervalo escolhido
não se encontra nenhum zero, pelo que o método rea- II. CORRENTE OSCILANTE EM
liza consecutivas iterações, convergindo para o limite CIRCUITOS:
superior do intervalo, 1.7 - como podemos observar na
figura 1.
A corrente oscilante num circuito é descrita através
da expressão 9e−t sin(2πt) = I, com I em mA. De
modo a determinar os valores do tempo para os quais
I = 1.5 mA, utilizou-se o Método de Newton de modo
a determinar os zeros da função 9e−t sin(2πt) − 1.5,
com uma precisão de 10−6 . Para a utilização deste mé-
todo calculou-se também a derivada da função, com o
auxílio do programa Mathematica, obtendo a seguinte
expressão: 18e−t πcos(2πt) − 9e−t sin(2πt).

Em baixo encontram-se os valores das raizes da fun-


ção obtidos através da aplicação do método de New-
ton, assim como os valores obtidos através do Findroot
no Mathematica para verificação dos valores.

Raízes obtidas
Figura 1. Gráfico dos valores obtidos no cálculo da raiz x0 Python Mathematica
utilizando o método da bissecção, em função do número 0.6 0.4575814699215208 0.457582
de iterações, em intervalos diferentes. 0.7 -0.5158617879572158 1.08181
0.75 OverflowError 1.38416
0.8 1.3841631272932045 1.38416
0.9 1.0818061316330885 1.08181
De seguida, foram implementados os métodos de
Newton e da secante para a mesma função e como se Tabela I. Raizes obtidas para os valores de x0 em python
pode observar na figura 2, comparando também com o e no Mathematica
método da bissecção, verifica-se que o método de New-
ton é o mais eficiente, sendo aquele que se verifica uma É possível constatar que para os valores de x0 =
maior precisão para um menor número de iterações, 0.6, 0.8 e 0.9 se observa os mesmos resultados, com
enquanto o método da bissecção foi o que se verificou apenas a diferença por alguns arredondamentos.
com menor precisão para um maior número de ite-
rações. Para o método da secante verifica-se também No entanto, para x0 = 0.7 , o método não obteve
que é um método eficiente com uma boa precisão para o resultado pretendido, resultando num valor nega-
um baixo número de iterações. tivo. Para x0 = 0.75 observou-se um OverflowError,
2

uma vez que a derivada obtida no denominador chega fim, para λ = 2.1, com cada iteração é possível obser-
tão próximo de 0 que o resultado se torna demasiado var que o valor se afasta exponencialmente do valor
grande para o programa definir. pretendido, isto porque λ é demasiado grande. Atra-
vés destes resultados conclui-se que a escolha do valor
Assim, através dos resultados próximos obtidos de λ para a utilização deste método tem um grande
para alguns dos valores iniciais utilizados é possível impacto no resultado obtido.
concluir que o Findroot do Mathematica utiliza uma
variante do Método de Newton. Isto porque não apre-
sentou os erros que o programa em Python obteve
para os valores x0 = 0.7 e x0 = 0.75. IV. DISTÂNCIA EM LIGAÇÃO IÓNICA:

Usou-se o método do gradiente para se encontrar


III. CORPO PRESO A UMA MOLA: numericamente a distância de equilíbrio, r, entre os
iões N a+ e Cl− , onde o potencial de interação entre
os dois iões é dado pela função: U (r) = Ae−Br − Cr .
Um corpo preso a uma mola está sujeito a um po-
tencial cuja função é P (x) = 0.5(x − 2)2 . Considerando A = 80eV, C = 10eVÅ, B = 2Å−1 ,
assumindo uma precisão de ϵ = 10−5 , x0 = 2 e
De modo a encontrar a posição de equilíbrio, λ = 0.5, obteve-se uma distância de equilíbrio, r =
utilizou-se o método do Número de Ouro, com um 2.153289.
erro relativo de 0.001%. Para o intervalo [−0.7, 2.6]
obteve-se 2.00000 e para o intervalo [0.4, 1.7] obteve- Comparando com o valor obtido pelo Mathematica,
se 1.69998. O primeiro valor converge para o valor 2.15329, é possível observar uma precisão de 0.00001.
esperado, o mínimo local. O segundo valor representa
o valor do seu limite superior, mais próximo do mí- De seguida, foi aplicado o método do gradiente a
nimo, uma vez que o intervalo não inclui o mínimo da duas dimensões ao mesmo problema, considerando
função. x0 = 5, y0 = −5, λ = 0.25 e 100 iterações obteve-
se o resultado de r = 2.15330. Através da função
Utilizando agora o método do Gradiente, utilizou-se Findminimum do Mathematica, obtém-se os mesmos
um máximo de 10 iterações, x0 = 0 , precisão de 10−5 e valores de x e y obtidos através do python (x, y) =
valores de λ = 0.1; 0.5; 1; 2; 2.1. Os resultados obtidos (1, 52261; −1, 52261), observando-se um valor seme-
foram respetivamente [1.37238; 1.99902; 2; 4; 7.70623]. lhante ao valor de r obtido, apenas com uma ligeira
No gráfico seguinte estão representados os mínimos diferença na última casa decimal, provavelmente de-
para cada valor de λ em função do número de itera- vido a arredondamentos.
ções.
Traçou-se o seguinte gráfico de y e x em função do
número de interações, e um inset com a trajetória.

Figura 3. Gráfico dos valores mínimos para cada lambda


em função do nº de iterações.
Figura 4. y e x da posição de equilíbrio em função do
número de interações, e um inset com a trajetória.
Na figura 3, é possível observar que para λ = 0.1, ao
fim das 10 iterações quase alcança o valor do mínimo
esperado, mas não consegue devido a ser um valor Na figura 4 é possível observar os valores de x e y
muito pequeno. Para λ = 0.5 ao fim das iterações al- a convergir com o aumento do número de iterações,
cança o valor pretendido. Para λ = 1 alcança o valor sendo estes valores de x e y iguais absolutamente, e
na primeira iteração, e por isso é apenas um ponto ( a sua evolução inversamente proporcional (observada
subsituindo na expressão obtem-se diretamente o mí- também pela trajetória). Comparando os valores de r
nimo da função). Para λ = 2 o valor do mínimo nunca obtidos pelo método do gradiente 1D e 2D é possível
é obtido, uma vez que alterna sempre entre 0 e 4. Por concluir a sua semelhança.

Você também pode gostar