Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Raízes de equações

Paulo Bordoni
November 07, 2014

Raízes de equações

Por efetuar

Paulo Bordoni

November 07, 2014
Tweet

More Decks by Paulo Bordoni

Other Decks in Education

Transcript

  1. Determinação de raízes de equações Prof. Paulo R. G. Bordoni

    UFRJ Raízes de equações Prof. Paulo R. G. Bordoni
  2. O número irracional 2 é o número ∈ ℝ para

    o qual 2 = 2. É, usando uma maquininha de calcular acho 2 = 1,414213562373095. E, elevando 1,414213562373095 ao quadrado, obtenho 2.
  3. Pois é Loirinha, esse problema é um pouco mais difícil.

    E se eu quisesse calcular 3 2 ? Bem, aí eu uso Python:
  4. Surfista, nossa proposta é mais abrangente. Sim, pretendemos construir algoritmos

    para calcular 2, 10, 3 2 , etc. Coisas que possamos usar em muitas outras situações.
  5. 1. Escolher um número s ( p/ex. = 1.4 );

    2. Elevá-lo ao quadrado, obtendo s 2 ( 1.42 = 1.96 ); 3. Conferir o resultado, s 2, com 2 ( 1.96 < 2 ); 4. Se não estiver satisfeito, repetir os passos anteriores com uma escolha melhor de s ( p/ex. = 1.5 ). Pegando carona na resposta da Loirinha, uma forma de calcular 2 é ir conferindo o resultado: ... elevando 1,414213562373095 ao quadrado, obtenho 2.
  6. E eu fico tentando até dar certo? 1.5 2.25 >

    2 2 2 2 1.4 1.96 < 2 2 Bem, você não falhará se for cercando a resposta pelo seu efeito. Veja:
  7. 1.4 1.5 1.45 1.452 = 2.1025 1.42 = 1.96 1.52

    = 2.25 Ora, porque 1.45 está na metade de 1.4 e 1.5: Valeu, Loirinha. É só ir repetindo o processo para 1.4 e 1.45, de olho no efeito!
  8. 1.4 1.5 1.45 1.42 = 1.96 1.452 = 2.1025 1.4252

    = 2,030625 Vejam! Já temos uma casa correta depois da vírgula no resultado!
  9. N x x2 1 1.4 1.96 2 1.5 2.25 3

    1.45 2.1025 4 1.425 2.030625 5 1.4125 1.99515625 6 1.41875 2.01285156 7 1.415625 2.0039941 ... ... ... 2 2.0 Podemos ir continuando, até ficarmos satisfeitos com o número de “casas decimais” corretas em x2. Eis a sequência dos 7 primeiros valores de x e x2 obtidos com esse processo.
  10. • Começamos com 0 = 1.4 e 1 = 1.5,

    sabendo que 2 está entre os dois • Portanto para = 1 − 0 , tanto | 0 − 2 | < como | 1 − 2 | < • Em seguida dividimos o intervalo à metade com 2 e garantimos que 2 está numa das metades • Portanto | 2 − 2 | < /2 • Continuando o processo, garantimos (prove!) que | +1 − 2 | < /2 Mas e a precisão na aproximação para 2 ? Então Loirinho (...), nosso procedimento foi o seguinte:
  11. Além de dar uma estimativa para o erro, essa última

    desigualdade garante, também, que a sequência 0 , 1 , 2 , ⋯ , , ⋯ converge para 2, isto é lim →∞ = 2. Sim Mestra, pois de | +1 − 2 | < 1/2 garantimos que lim →∞ | +1 − 2 | < lim →∞ 1/2 = 0
  12. Mestra, sabemos que 210 = 1024. Assim, | 10+1 −

    2 | < 1 210 = 1 1024 < 0.001, Isto garante que 11 aproxima 2 com erro menor que um milésimo. Sim. E qual será o valor de k para o qual garantimos uma aproximação com a precisão do Single, de 6~7 casas decimais corretas?
  13. Bem jovens, para uma precisão de 7 casas decimais, precisamos

    garantir que | +1 − 2 | < 0.5 × 10−7. Sim Mestra, e como | +1 − 2 | < 1/2, basta garantirmos que 1/2 < 0.5 × 10−7. Resolvendo essa inequação obtemos k = 25.
  14. Como? Ora, de 1/2 < 0.5 × 10−7, segue 107

    < 2−1 e portanto 7 log 10 < log(2−1). Então − 1 0.301030 > 7 e assim k = 25.
  15. Um problema importante em Computação Científica é a resolução de

    equações. É o que passaremos a estudar. No 2º grau aprendemos a resolver equações do 1º e do 2º grau. Nas quadráticas usávamos a fórmula de Bhaskara.
  16. No século XVI matemáticos italianos como Cardano e Tartaglia investiram

    muito na obtenção de fórmulas para calcular raízes de equações de grau maior que dois.
  17. Deve-se a P. Ruffini (1799) e N. H. Abel (1824),

    a prova do Teorema que hoje leva seus nomes: Para ≥ 5, não há uma fórmula geral, envolvendo os coeficientes da equação polinomial + ⋯ + 1 1 + 0 = 0 que permita calcular suas raízes, como no caso das equações de 1º e 2º graus.
  18. Antes aprender a resolver equações, Mestres, respondam-me: O que é

    uma equação? Ah Loirinha, a fórmula de Bhaskara resolve a equação do 2º grau 2 + + = 0.
  19. Surfista querido, ela é só um exemplo de equação. Sempre

    fiquei intrigada em saber o que é, de fato, uma equação. Sendo breve, uma equação como () = 0 é uma sentença aberta numa variável x .
  20. Valores de x que tornam a sentença () = 0

    verdadeira são raízes (soluções) da equação. Sim, 2 e − 2 tornam verdadeira a sentença 2 − 2 = 0.
  21. Passaremos a analisar alguns métodos clássicos para a obtenção de

    soluções de equações. Os métodos clássicos mais conhecidos são o da bisseção, o de Newton-Raphson, o do ponto-fixo e algumas variantes deles.
  22. Todos eles fazem parte de uma classe mais ampla de

    métodos, chamados métodos iterativos, que se aplicam aos mais diversos tipos de equações. E pensar que a famosa fórmula de Bhaskara , que demoramos tanto tempo para aprender no 2º grau, só se aplica a equações do 2° grau, 2 + + = 0.
  23. Consideraremos equações já na forma padrão = 0, onde :

    , → ℝ é uma função contínua, calculável através da expressão = (). Vamos assumir que r é uma raiz dessa equação, isto é, que = 0 é uma sentença lógica verdadeira.
  24. Um método iterativo para achar r envolve a criação de

    uma sequência , , , ⋯ , , ⋯ que converge para r, isto é lim →∞ = .
  25. Ih, ferrou! Funções contínuas, sequências e limites. É o Cálculo

    nos atacando de novo! Pois é, vocês estão estudando Cálculo numérico!
  26. Na realidade, nos métodos iterativos, vamos achar aproximações r* para

    a raiz r. Em outras palavras acharemos números ∗ tais que − ∗ < para ε bem pequeno. A bem da verdade épsilons minúsculos, por exemplo = 10−7, 10−10, 10−15, etc.
  27. A aproximação r* para a raiz r será obtida a

    partir da sequência , , , ⋯ , , ⋯ quando ela converge para r. Quando ela converge, para algum k suficientemente grande, teremos − < . Então escolhemos ∗ = .
  28. Mestres, agora algo mais prático, por favor! Vamos começar refazendo

    o método da bisseção para o caso geral, uma equação na forma padrão = 0.
  29. Onde : [, ] → ℝ é uma função calculável

    através da expressão () e é contínua em [a, b]. é o valor de f em . ()
  30. () () () Pelo Teorema do Valor Intermediário, se f

    possui sinais contrários nos extremos a e b então existe pelo menos um ponto (, ) tal que = 0. Dito de outra forma, a equação = 0 possui pelo menos uma raiz em (a, b). Num ponto , () poderá ser positiva, negativa ou nula:
  31. = = Como 1º passo do processo, definimos o extremo

    esquerdo fazendo ↤ (leia: receber a) e o extremo direito fazendo ↤ . Descoberto um intervalo (, ) no qual f possui sinais contrários, podemos começar o processo iterativo. • Em programação: ↤ • Em matemática: =
  32. O 2º passo é calcular o ponto médio do intervalo,

    ↤ ( + )/2. O 3º passo é calcular calcular ( ) e compará-lo com ( ). ( ) ( )
  33. São três as possibilidades: i. Se × = 0, a

    raiz já é . é, = . () ii iii ii. Senão, se × ( ) < 0, a raiz r está na metade da esquerda. Nesse caso o novo será (i. é, ↤ ). iii. Caso contrário, a raiz r está na metade da direita. Nesse caso ↤ ( passa a ser ).
  34. No caso i, encerramos o processo, informando: A raiz é

    = . Nos outros dois casos, precisamos testar a precisão para decidir: A. Se | − | < e < , então colocamos ∗ ↤ e encerramos; B. Senão, retornamos ao 2º passo para mais uma iteração.
  35. São duas condições de parada para anunciar ∗: • Proximidade

    da raiz: | − | < • Anulação aproximada do valor da função: < Um lembrete: não adianta pedir maior precisão que a “máquina” pode fornecer.
  36. Esta é a função que implementa o método da bisseção.

    Assinalei em vermelho as condições de parada.
  37. O programa é para uma equação genérica () = 0.

    Os dados são: • Domínio de f • Expressão de f • Máximo de iterações • O limite para o erro Dados Chamada da função Resultados Gráfico
  38. Agora vamos obter as raízes (se houver alguma) da equação

    33 − 52 + 2 = 0 E como começamos Mestre? Não tenho a mínima ideia do lugar onde estão as raízes dessa equação!
  39. Esse é um bom primeiro passo, meu Surfista! Bem Loirinha,

    uma ideia é subdividir um intervalo grande em pedacinhos e verificar se há variação de sinal nos pedacinhos. a b
  40. Aqui estou chamando a troca_sinal( ) para a função =

    33 − 52 + 2. Primeiro chamei com 50 sub-intervalos e depois repetí com 100. Minha conclusão é que ela só tem uma raiz real.
  41. É, você só localizou uma raiz real. Entretanto, pela teoria,

    toda polinomial de grau 3 tem 3 raízes reais ou complexas. Pode ser que as outras duas sejam complexas conjugadas. Será que sua busca está certa?
  42. Os resultados do método da bisseção, feito pelo Mestre, para

    a equação 33 − 52 + 2 = 0 e 4 casas após a vírgula, no intervalo [−1.6, −0.5].
  43. Bem jovens, uma outra possibilidade é examinar o gráfico da

    função. O Professor fez um programa com o MatPlotLib que gera o gráfico de uma função num intervalo. Surfista, fiquei intrigada com a possibilidade de existirem mais raízes reais para aquela equação polinomial de grau 3. Como poderemos decidir?
  44. Observem o detalhe da utilização da função eval( ), uma

    função de Python, que transforma uma string num código executável.
  45. Agora vamos utilizar a função construída pelo Professor para localizar

    as raízes da equação 33 – 52 + 2 = 0 e tirar a dúvida da Loirinha!
  46. Vou mostrar apenas uma vez como chamar a função graf_func(

    ) para desenhar o gráfico da função () = 33 – 52 + 2. Depois é igual.
  47. Obtivemos este gráfico. Dele não concluo nada! Comece observando a

    diferença enorme entre as escalas horizontal e vertical.
  48. Olhando para o gráfico, concluímos que não existem raízes fora

    do intervalo [-10. , 10.] É verdade Mestre. Vou traçar o gráfico nesse intervalo [-10. , 10.]
  49. A diferença entre as escalas ainda é muito grande. Vejam!

    Reduza para o intervalo [-5. , 5.]. Não existem raízes fora dele, Loirinha
  50. Ok Mestre. Agora podemos afirmar que as raízes estão no

    intervalo [-1. , 1.5]. Vou conferir!
  51. Puxa! O Surfista localizou a raiz negativa, mas perdeu as

    duas positivas! Vou examinar o intervalo [0.5 , 1.5] .
  52. 3 ∗ (1 ∗∗ 3) – 5 ∗ (1 ∗∗

    2) + 2 = 3 – 5 + 2 = 0 Substituindo e fazendo as contas, conferimos que 1.0 é, de fato, raiz da equação 33 – 52 + 2 = 0. Veja só:
  53. Pois é, só quando usei meu programa para 150 subintervalos

    é que localizei todas as trocas de sinal...
  54. Sempre que falam do Newton, lembro da derivada e da

    reta tangente. Sim Loirinha, ela “cola” na função perto do ponto de tangência! E o valor numérico da derivada é o coeficiente angular da reta tangente.
  55. O método de Newton –Rhapson usa essa propriedade da reta

    tangente para gerar uma sequência 0 , 1 , 2 , … , , … de aproximações para a raiz.
  56. ( ) f r raiz Veja como na figura, Loirinha.

    E, dado , como eu calculo +1 , Mestre? +1
  57. ( ) f r Confira, Surfista, que equação da reta

    tangente por ( , ) é = ′( )( − ) + ( ) . E, como a Mestra mostrou, +1 = 0. +1
  58. ( ) f r raiz Assim, fazendo = +1 na

    expressão da reta tangente, obtemos 0 = ′( )(+1 − ) + ( ). Então é só isolar +1 : +1 = − ( )/′( ), se ′( ) ≠ 0 +1
  59. O processo iterativo é o seguinte: 1. Como antes, 0

    é um “chute inicial”, próximo da raiz; 2. Dado definimos +1 como o ponto onde a reta tangente por ( , ) corta o eixo-x; 3. Paramos quando a precisão for satisfatória; senão voltamos ao passo 2.
  60. Portanto, o método de Newton-Raphson é definido por: +1 =

    − ′ , = 0,1, ⋯ 0 dado No caso de , temos = 2 − e o processo iterativo fica: +1 = − ( 2−)/2 , = 0,1, ⋯ 0 =
  61. Vamos mostrar uma aplicação do Método de Newton-Raphson envolvendo as

    raízes sextuplas da unidade no plano complexo. Não lembro mais o que é uma raiz sextupla da unidade, Mestre.
  62. ℐ ℛ 0 = 1 1 2 3 4 5

    Elas são as raízes (complexas) da equação 6 = 1. São os números complexos dados por = 2 /6, para = 0,1, ⋯ , 5.
  63. Cacilda! Quando eu crescer quero ser como você, Mestre. Lembre-se,

    Surfista, que = cos + sen(). Então, para = 2 /, com > 0 e = 0,1, ⋯ , − 1, ambos inteiros, temos: ( 2 / ) = 2 = = cos 2 + sen 2 = 1.
  64. Vamos construir uma linda fractal pintando o quadrado [0,1]x[0,1] do

    plano complexo com 6 cores. Uma cor para cada raiz da unidade. Agora, vamos à aplicação prometida.
  65. Cada um deles receberá a cor corresponde à raiz para

    qual o método convergir, graduada pelo número de iterações em tons de cinza. Limitaremos a 40 o número de iterações. Dividiremos o quadrado complexo em 500x500 pixeis. Cada pixel será um chute inicial para o método de Newton-Raphson, assim teremos 250.000 chutes iniciais.
  66. Este exemplo mostra, de forma artística e fantástica a instabilidade

    do método de Newton-Rhapson com relação ao “chute inicial”. Lembrem-se marcamos um ponto com vermelho quando, a partir dele, o método de Newton-Rhapson converge para a “raiz vermelha”. Definam agora, na figura, o conjunto constituído pelas regiões pintadas de vermelho ...