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

Raízes de equações

Raízes de equações

Um pouco de lógica para entender que coisa é uma equação.
O conceito de método iterativo para resolução (aproximada) de uma equação. O gráfico de uma sequência. A definição de limite de uma sequência e sua visualização gráfica. Os métodos da bisseção e de Newton-Raphson. A localização de raízes. Fractais de Newton x raízes da unidade.

Paulo Bordoni

May 12, 2015
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. Um problema importante em Computação Científica é a resolução de

    equações. É o que passaremos a estudar. Sim, no 2º grau aprendemos a resolver equações do 1º e do 2º grau.
  3. É, para equações lineares, como + = 0, , ∈

    ℝ, ≠ 0, a resposta é imediata: = −/. E para equações do 2º grau, como 2 + + = 0, , , ∈ ℝ, ≠ 0, a solução é dada pela fórmula de Bhaskara: ± = − ± 2 − 4 2
  4. Antes de tudo, quero observar que trata-se de um problema

    inverso! Sim Mestre e a solução é o conjunto de valores = − , + obtido, como já disse, através da fórmula de Bhaskara.
  5. Inclusive, dependendo do valor de ∆ = 2 − 4,

    podemos ter duas, uma ou nenhuma solução. Meça suas palavras, Loirinha! Equações do 2º grau sempre possuirão duas raízes reais ou complexas.
  6. Pisou na bola, Loirinha! Estamos cansados de saber que tudo

    depende do sinal do discriminante ∆. É verdade, esqueci que: • ∆ > 0 ⇒ − , + ∈ ℝ • ∆ = 0 ⇒ − = + ∈ ℝ • ∆ < 0 ⇒ − , + ∈ ℂ
  7. No século XVI matemáticos italianos como Cardano e Tartaglia e

    outros investiram muito na obtenção de fórmulas para calcular raízes de equações de grau maior que dois.
  8. 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º, 2º, 3º e 4º graus.
  9. Antes aprender a resolver equações, Mestres, respondam-me: O que é

    uma equação? Ah Loirinha, equações são expressões igualadas a zero, como as do 1º e 2º graus.
  10. Surfista querido, as equações do 1º e do 2º graus

    são só exemplos de equações. Sempre fiquei intrigada em saber o que é, de fato, uma equação. Vamos examinar esse conceito objetivando incluir outros tipos de equações além das algébricas e transcendentais.
  11. Por exemplo, para incluir os sistemas de equações (lineares ou

    não) e as equações diferenciais ordinárias ou parciais. Na realidade todo problema inverso envolve a resolução de alguma equação.
  12. Sua pergunta é ingênua Loirinha, mas a resposta é altamente

    sofisticada. Ela envolve três campos do conhecimento humano: o da Linguagem, o da Lógica e o da Matemática.
  13. Detalhe: Cálculo Proposicional – uma forma algébrica de lidar com

    a Lógica. Eis a Matemática se apresentando na Lógica!
  14. Vocês já mostraram o Cálculo Proposicional, lembro perfeitamente Mestra. Aquele

    das tabelas-verdade com V e F, envolvendo proposições , , , … , os conectivos lógicos ∧,∨, →, ↔ e a negação ~. Precisaremos ir além do Cálculo Proposicional, jovens!
  15. Frege revolucionou a lógica quando criou o que é conhecido

    hoje como “cálculo de predicados”. Seus primeiros resultados foram publicados em 1.879, no livro Begriffsschrift (Conceitografia).
  16. Na sua Conceitografia, G. Frege, estabeleceu claramente conceitos como os

    de função e de variável lógica. A ideia de sentença aberta (), numa variável é dele. Ela não é nem verdadeira nem falsa. Porém quando substituímos por algum valor, podemos então decidir seu valor lógico. Por exemplo, se () ≡ ( 2 − 2 = 0 ) então é verdadeira para = 2.
  17. Observem que no cálculo de predicados, entramos no interior das

    sentenças, transformando-as em proposições lógicas ao instanciarmos (i.é, atribuirmos algum valor) suas variáveis. As ideias de Frege permitiram o tratamento de questões lógicas impossíveis de serem representadas por meio do Cálculo Proposicional, de Boole.
  18. Além de instanciar variáveis, uma outra forma de fazer isso

    é utilizando os quantificadores: Ao quantificarmos uma sentença aberta numa variável , nós a transformamos numa proposição. Então ela poderá assumir um dentre os dois valores lógicos V ou F. ∀, ∃, ()
  19. Se () é a sentença () ≡ ( 2 −

    2 = 0 ) então ∃, () é verdadeira, ao passo que ∀, é falsa. Sim Mestre, ∃, () é verdadeira tanto para = 2 como para = − 2. Entretanto ∀, é falsa. Por exemplo, para = 1 temos 2 − 2 = −1 logo (1) é falsa.
  20. Correndo o risco de ser pedante, definição é clara: Valores

    de que tornam a sentença aberta ≡ [ () = 0 ] verdadeira são raízes (soluções) da equação = 0.
  21. Detesto pedantismo Mestre, prefiro falar: “As raízes da equação =

    0 são ...” Eu também! Portanto 2 e − 2 são raízes da equação 2 − 2 = 0.
  22. A Pedra de Roseta Pinturas em cavernas Caracteres cuneiformes Falar

    e escrever, com regras e significados, é o que distingue o “bicho homem” dos demais animais.
  23. Frege e Cantor foram contemporâneos – o formalismo de Frege

    envolve a Teoria dos Conjuntos, posta em bases firmes por Cantor! Além do trabalho desses gênios do final do século XIX, a contribuição de Bertrand Russell e Alfred N. Whitehead foi fundamental para o formalismo da Lógica Matemática.
  24. Repetindo o texto, Whitehead e Russel forma os criadores do

    Logicismo: a tese de que a Matemática pode ser reduzida à Lógica.
  25. Fiz uma lista, mesmo correndo o risco de esquecer alguns:

    • David Hilbert, • Alonzo Church, • Stephen Cole Kleene, • Allan M. Turing, • Alfred Tarski, • Rudolf Carnap e o “Círculo de Viena”, • Ludwig Wittgenstein • Kurt F. Gödel • Ernst F. F. Zermelo • Abrahm H. Fraenkel Mas esta estória não para aí. No primeiro terço do século XX muitos outros personagens se envolveram na fundamentação da Lógica Matemática!
  26. 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. 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.
  27. Consideraremos equações já na forma padrão = 0, onde :

    , → ℝ é uma função contínua em , , 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.
  28. Um método iterativo para achar r envolve a criação de

    uma sequência , , , ⋯ , , ⋯ que converge para r, isto é lim →∞ = .
  29. 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!
  30. Minha filha, uma sequência de números reais é apenas uma

    função : ℕ → ℝ. Por tradição escrevemos , ao invés de (), para o valor de em k. Uma sequência muito simples é a cujo termo geral é = 1 (1 + ). Ela converge para 0. Uma outra é a cujo termo geral é = (1 + 1/k). Prova-se que ela converge para ≅ 2.7182818284590451.
  31. Veja a tabela da 1ª sequência e o gráfico dos

    seus 16 primeiros valores. Através do gráfico percebemos, facilmente, que lim →∞ 1/(1 + ) = 0.
  32. Veja a tabela da 2ª sequência e o gráfico dos

    seus 21 primeiros valores. Novamente, pelo gráfico, percebemos que ela converge para algum valor 2.65 < < 3.0.
  33. Seja r um número real e ( ) uma sequência

    de números reais. Dizemos que lim →∞ = quando: ∀ > 0, ∃ ∈ ℕ tal que: > ⇒ − <
  34. Complicada essa notação, Mestres. Leia da seguinte forma, Surfista: Se

    lim →∞ = então, para cada precisão > 0 escolhida (por ex. = 10−7, = 10−10 ou = 10−15), você consegue resolver o problema inverso: obter um número natural > 0 com a propriedade − < sempre que > .
  35. Surfista, afirmar que − < é equivalente a dizer que

    os valores estão dentro de uma faixa (a amarela) de largura entorno de r .
  36. Confira Loirinha: Os valores dentro da faixa (amarela) de largura

    entorno de r satisfazem a inequação − < .
  37. 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.
  38. Nesse caso, 2 − 1.4142135623730951 < 0.5 × 10−16. É

    o aspecto prático, Mestra, é difícil precisarmos conhecer 2 com mais que umas 5 ou 6 casas decimais após a vírgula. Contei 16 casas na resposta de Python: 2 = 1.4142135623730951 …
  39. 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 ∗ = .
  40. Mestres, agora algo mais prático, por favor! Vamos começar estudando

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

    através da expressão () e é contínua em [a, b]. é o valor de f em . ()
  42. () () () 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:
  43. = = 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: =
  44. O 2º passo é calcular o ponto médio do intervalo,

    ↤ ( + )/2. O 3º passo é calcular calcular ( ) e compará-lo com ( ). ( ) ( )
  45. 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 ).
  46. 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.
  47. 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 exigir maior precisão que a “máquina” pode fornecer.
  48. Esta é a função que implementa o método da bisseção.

    Assinalei em vermelho as condições de parada.
  49. 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 do método. Resultados Gráfico
  50. • 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:
  51. 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
  52. 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?
  53. 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.
  54. 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.
  55. 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!
  56. 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
  57. 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.
  58. É, 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?
  59. 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].
  60. 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?
  61. Observem o detalhe da utilização da função eval( ), uma

    função de Python, que transforma uma string num código executável.
  62. 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!
  63. 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.
  64. Obtivemos este gráfico. Dele não concluo nada! Comece observando a

    diferença enorme entre as escalas horizontal e vertical.
  65. 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.]
  66. A diferença entre as escalas ainda é muito grande. Vejam!

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

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

    duas positivas! Vou examinar o intervalo [0.5 , 1.5] .
  69. 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ó:
  70. Pois é, só quando usei meu programa para 150 subintervalos

    é que localizei todas as trocas de sinal...
  71. 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.
  72. 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.
  73. ( ) f r raiz Veja como na figura, Loirinha.

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

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

    expressão da reta tangente, obtemos 0 = ′( )(+1 − ) + ( ). Então é só isolar +1 : +1 = − ( )/′( ), se ′( ) ≠ 0 +1
  76. 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.
  77. 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 =
  78. 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.
  79. ℐ ℛ 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.
  80. 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.
  81. 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.
  82. 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.
  83. 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 ...