Prévia do material em texto
1 CÁLCULO NUMÉRICO AULA 1 Profª Celina Jarletti 2 CONVERSA INICIAL Matemática é a ciência dedutiva que estuda propriedades e relações de entidades abstratas. Ocorrendo detecção de padrões, é possível formular conjecturas e estabelecer definições para o caso em estudo. Modelos, na forma literal, são utilizados pela matemática simbólica, que apresenta uma solução analítica exata. A representação gráfica também pode ser uma possível solução para alguns problemas. Um fato limitante é que não existe solução exata ou gráfica para todas as situações com teor matemático. O cálculo numérico consiste em um conjunto de metodologias que apresentam um valor numérico como resultado e surge como recurso para a resolução destes problemas, utilizando como ferramental para desenvolvimento a fundamentação teórica associada ao emprego de procedimentos computacionais. Exemplos de utilização de métodos numéricos para cálculo de: a) raízes reais de funções representadas por equações elaboradas; b) derivação de funções apresentadas somente em tabela de dados (forma tabular); c) necessidade de estimar um valor (interno ou externo) não apresentado em uma tabela de valores; d) resolução de sistemas de equações lineares e não lineares; e) integral definida em que o conjunto de técnicas do cálculo diferencial e integral não apresente solução; e f) solução de Problemas de Valor Inicial (PVI) ou Problemas de Valor de Contorno (PVC) não resolvíveis por técnicas de equações diferenciais. Os resultados obtidos por meio do cálculo numérico serão sempre valores aproximados e podem conter algum erro, que muitas vezes pode ser minimizado, de forma a apresentar confiabilidade para a resposta obtida. TEMA 1 – PROCESSOS DE CÁLCULO NUMÉRICO A resolução de problemas por métodos numéricos envolve várias fases, sendo: • conhecer o problema real (com ou sem levantamento de dados); 3 • construir o modelo matemático apropriado; • escolher o método numérico adequado; • implementar computacionalmente o método numérico; e • obter e analisar os resultados. A modelagem matemática envolve o conhecimento do problema real tendo possibilidade de ocorrência de levantamento de dados por pesquisa ou censo, e a construção do modelo matemático apropriado ao problema observando sua natureza. A resolução atrás de processos numéricos inicia com a escolha dentre as possíveis técnicas, qual poderia ser utilizada para a solução do problema. Os métodos numéricos de cálculo podem ocorrer, algumas vezes, por um processo simples ou, outras vezes, por um processo exaustivo de operações matemáticas elementares. Em situações com muitas operações matemáticas, é aconselhável o uso de rotinas computacionais para facilitar a resolução. O resultado apresentado pelo cálculo numérico é sempre um escalar, ou seja, um número (ou mais números) e nunca uma expressão ou equação literal. Esses resultados serão de valor aproximado com algum erro inserido. Os erros podem, algumas vezes, ser minimizados por meio de repetição do processo de cálculo, de maneira que uma estimativa de resposta seja utilizada como dado inicial de um novo ciclo de cálculo, que apresentará uma nova estimativa melhor que a anterior, e assim sucessivamente até que a resposta seja aceitável. É possível também, em determinadas situações, optar por outro método de resolução do problema, dentre um grupo de técnicas conhecidas, que permita um resultado com menor erro. É fundamental compreender que determinadas situações cotidianas com problemas matemáticos somente serão possíveis de solução por meio de algum procedimento numérico, visto que as técnicas conhecidas para solução exata não são empregáveis em todos os problemas. Outro ponto importante a não ser esquecido diz respeito à qualidade da resposta obtida pelo emprego de algum método numérico, ou seja, a minimização de erros levará a um resultado possível de aceitação. 4 Problemas que apresentem soluções analíticas e exatas também podem ser resolvidos por meio de cálculo numérico. A comparação dos resultados obtidos pelas técnicas exatas com os resultados obtidos pelas técnicas de cálculo numérico mostra a proximidade dos resultados. TEMA 2 – NOÇÕES DE ERROS Os erros que ocorrem em algum cálculo por meio de métodos numéricos podem ser: 2.1 Erros inerentes Ocorrem nos dados de entrada que podem conter imprecisão dos valores devido à forma de obtenção como em pesquisas de laboratório (calibragem de equipamentos) ou provenientes de algum Censo (resposta inverídica fornecida por algum entrevistado). Não há como evitar que ocorram. 2.2 Erros de arredondamento Considerando as regras de arredondamento segundo ABNT 5891:1977 com origem na ABNT – NB 87/1965. a) Quando o algarismo imediatamente seguinte ao último algarismo a ser conservado for inferior a 5, o último algarismo a ser conservado permanecerá sem modificação. b) Quando o algarismo imediatamente seguinte ao último algarismo a ser conservado for superior a 5, ou, sendo 5, for seguido de no mínimo um algarismo diferente de zero, o último algarismo a ser conservado deverá ser aumentado de uma unidade. c) Quando o algarismo imediatamente seguinte ao último algarismo a ser conservado for 5 seguido de zeros, dever-se-á arredondar o algarismo a ser conservado para o algarismo par mais próximo. Consequentemente, o último algarismo a ser retirado, se for ímpar, aumentará uma unidade, e, se for par, permanecerá sem modificação. 5 Conforme as regras citadas e realizando, como exemplo, arredondamento promovido na terceira casa decimal, tem-se duas situações possíveis, como a seguir. • Arredondamento para maior (ou por excesso). O valor numérico torna-se maior após o arredondamento. Exemplo 1) O valor 5,343762 sendo arredondado para 5,344. Exemplo 2) O arredondamento para o valor 12,4325002 resulta 12,433. • Arredondamento para menor (ou por falta). O valor numérico torna-se menor após o arredondamento. Exemplo 3) A quantidade 3,456458 sendo arredondada para 3,456. Exemplo 4) O arredondamento de 4,3245000 resulta 4,324. TEMA 3 – ERROS DE NÚMERO DE MÁQUINA São erros de aproximação devido à conversão de números do sistema decimal para sistema binário utilizado em computadores, cálculos feitos no sistema binário, e conversão do sistema binário para sistema decimal para apresentação dos resultados. Um melhor entendimento dos erros que podem ocorrer nestas transformações pode ser obtido considerando as representações das bases decimal e binária, e os processos de conversão entre elas. 3.1. Representação de valores numéricos nas bases binária e decimal Valores numéricos podem ser representados em diferentes bases. Nossos cálculos cotidianos são realizados na base decimal (dígitos de 0 até 9, totalizando 10 dígitos) e os computadores operam normalmente na base binária (dígitos 0 e 1). Um valor numérico representado na base binária (base 2) pode ser denotado por: 𝑎𝑎𝑚𝑚. 2𝑚𝑚 + ⋯+ 𝑎𝑎2. 22 + 𝑎𝑎1. 21 + 𝑎𝑎0. 20 + 𝑎𝑎−1. 2−1 + 𝑎𝑎−2. 2−2 + ⋯+ 𝑎𝑎−𝑛𝑛. 2−𝑛𝑛 Ou � 𝑎𝑎𝑖𝑖 . 2𝑖𝑖 𝑚𝑚 𝑖𝑖=−𝑛𝑛 (1.01) 6 Onde 𝑎𝑎𝑖𝑖 = 0 𝑜𝑜𝑜𝑜 1 e 𝑖𝑖 = −𝑛𝑛,−𝑛𝑛 + 1, … . , 0, 1, … . ,𝑚𝑚. Exemplo 5) Representação de um valor em base binária. 101110,01 = 1 . 25 + 0 . 24 + 1 . 23 + 1 . 22 + 1 . 21 + 0 . 20 + 0 . 2−1 + 1 . 2−2 Um valor numérico representado na base decimal (base 10) pode ser denotado por: 𝑎𝑎𝑚𝑚. 10𝑚𝑚+. . . + 𝑎𝑎2. 102 + 𝑎𝑎1. 101 + 𝑎𝑎0. 100 + 𝑎𝑎−1. 10−1 + 𝑎𝑎−2. 10−2+. . . +𝑎𝑎−𝑛𝑛. 10−𝑛𝑛 Ou � 𝑎𝑎𝑖𝑖 . 10𝑖𝑖 𝑚𝑚 𝑖𝑖=−𝑛𝑛 (1.02) Onde 𝑎𝑎𝑖𝑖 = 0 𝑜𝑜𝑜𝑜 1 𝑜𝑜𝑜𝑜 2 𝑜𝑜𝑜𝑜… 𝑜𝑜𝑜𝑜 9 e 𝑖𝑖 = −𝑛𝑛,−𝑛𝑛 + 1, … . , 0, 1, … . ,𝑚𝑚. Exemplo6) Representação de um valor em base decimal. 3248,23 = 3 . 103 + 2 . 102 + 4 . 101 + 8 . 100 + 2 . 10−1 + 3 . 10−2 3.2. Conversão da base binária para decimal É realizada por meio da multiplicação do dígito binário pela potência de 2 da respectiva posição, e posterior soma dos valores obtidos. As duas partes (inteira e não inteira) do valor numérico podem ser tratadas simultaneamente no processo de conversão. Exemplo 7) Transformação da base binária para decimal. 1011,1012 = 1 . 23 + 0 . 22 + 1 . 21 + 1 . 20 + 1 . 2−1 + 0 . 2−2 + 1 . 2−3 1011,1012 = 1 . 8 + 0 . 4 + 1 . 2 + 1 . 1 + 1 . 1 2 + 0 . 1 4 + 1 . 1 8 1011,1012 = 8 + 0 + 2 + 1 + 0,5 + 0 + 0,125 1011,1012 = 11,62510 3.3. Conversão da base decimal para binária Para ser realizada, é necessário separar a parte inteira da parte não inteira do valor numérico. A parte inteira é transformada mediante sucessivas divisões por 2 até que o último quociente seja igual a 1. O número binário será, então, formado pela 7 concatenação do último quociente com os restos das divisões, tomados no sentido inverso ao que foram obtidos. Pode-se escrever: 𝑁𝑁10 = (1 𝑟𝑟𝑛𝑛 𝑟𝑟𝑛𝑛−1 … 𝑟𝑟2 𝑟𝑟1) 2 (1.03) Exemplo 8) Considerando o valor 17 na base decimal, e realizando as sucessivas divisões por 2, resulta: 17 �2 1 8 �2 0 4 �2 0 2 �2 0 1 1710 = 100012 A parte não inteira de um número na base decimal é transformada para a base binária mediante: a) multiplicar a parte não inteira do número por 2; e b) a parte inteira do resultado será o digito na base binária (0 ou 1), e a parte não inteira do resultado obtido deve ser sucessivamente multiplicada por 2 até que a parte não inteira se anule. Exemplo 9) Transformação de 0,09375 na base decimal para a base binária. 0,09375 . 2 = 0,1875 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 0 0,1875 . 2 = 0,3750 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 0 0,375 . 2 = 0,750 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 0 0,75 . 2 = 1,50 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 1 0,50 . 2 = 1,00 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 1 Encerra-se o processo quando a parte fracionária resultar nula. Então: 0,0937510 = 0,000112 Exemplo 10) Transformação de 0,3 na base decimal para a base binária. 8 0,3 . 2 = 0,6 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 0 0,6 . 2 = 1,2 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 1 0,2 . 2 = 0,4 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 0 0,4 . 2 = 0,8 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 0 0,8 . 2 = 1,6 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 1 0,6 . 2 = 1,2 𝑑𝑑í𝑔𝑔𝑖𝑖𝑔𝑔𝑜𝑜 = 1 ∗ 𝑜𝑜𝑜𝑜𝑜𝑜𝑟𝑟𝑟𝑟𝑜𝑜 𝑟𝑟𝑜𝑜𝑟𝑟𝑜𝑜𝑔𝑔𝑖𝑖çã𝑜𝑜 𝑑𝑑𝑜𝑜𝑑𝑑 𝑟𝑟𝑜𝑜𝑑𝑑𝑜𝑜𝑟𝑟𝑔𝑔𝑎𝑎𝑑𝑑𝑜𝑜𝑑𝑑. Então: 0,310 = 0,010011001 …2 Neste exemplo é possível visualizar a conversão de um número não inteiro na base decimal contendo um número finito de dígitos (após a vírgula) resultando um número não inteiro na base binária contendo infinitos dígitos após a vírgula (no caso uma dizima binária). A quantidade de dígitos após a vírgula possíveis de serem utilizados para os cálculos em computadores depende da geração dessas máquinas, porém, é sempre uma quantidade finita. Esta característica leva a consideração que haverá uma aproximação a ser feita para o número de máquina mais próximo àquele da representação decimal, o que ocasionará algum erro nos resultados a serem apresentados. A representação de um número depende da base escolhida ou disponível na máquina em uso e do número máximo de dígitos usados na sua representação. Cálculos que envolvam números irracionais (números que não podem ser representados através de uma fração), a exemplo de 𝜋𝜋, √2 , √53 e 𝑜𝑜 (𝑛𝑛ú𝑚𝑚𝑜𝑜𝑟𝑟𝑜𝑜 𝑑𝑑𝑜𝑜 𝐸𝐸𝑜𝑜𝑟𝑟𝑜𝑜𝑟𝑟), que apresentam infinitas casas decimais, terão o erro dependendo da aproximação escolhida para os valores numéricos. 3.4. Cancelamento subtrativo ou catastrófico Quando ocorrer instabilidade na resposta que pode ser compreendida como uma sensibilidade a perturbações. Esta instabilidade pode ser proveniente do algoritmo e da maneira de resolvê-lo, principalmente pela combinação de dois fatores: somas de grandezas de diferentes ordens (um valor numérico muito grande sendo somado a um valor numérico muito pequeno), e subtração de grandezas quase iguais. Ocorre o que é denominado cancelamento subtrativo ou cancelamento catastrófico, que é bastante comum nos cálculos por meio de 9 computadores. O cancelamento subtrativo potencializa o efeito do erro de arredondamento ocorrido nas transformações de base. Uma forma de minorar estes erros é utilizar double precision para os dados e cálculos nos programas de implementação computacional de alguma rotina de método numérico. Exemplo 11) Considerando realizar adição dos valores 𝑥𝑥 = 0,438 . 104 e 𝑦𝑦 = 0,1587 . 102. A adição de valores em aritmética requer o alinhamento dos pontos decimais dos valores numéricos. Reescrevendo os valores numéricos com a mesma potência de 10 vem: 𝑥𝑥 = 0,438 . 104 𝑜𝑜 𝑦𝑦 = 0,001587 . 104 . A soma resulta: 𝑥𝑥 + 𝑦𝑦 = (0,438 + 0,001587). 104 = 0,439587 . 104. Esse é o resultado exato da adição. Promovendo arredondamento na terceira casa após a vírgula, tem-se: 𝑥𝑥 + 𝑦𝑦������� = 0,440 . 104. A barra superior na notação indica um valor aproximado (contendo algum erro). TEMA 4 – ERROS DE TRUNCAMENTO OU CANCELAMENTO Quando parte da representação do número em um sistema de aritmética de ponto flutuante é desprezada ou cancelada, ou quando em algumas séries infinitas são considerados, apenas os termos que contribuem mais fortemente para a resposta e os demais são desconsiderados. É compreensível que desprezar vários termos de uma série infinita que contribuem pouco para o resultado não desqualifica a resposta obtida, porém o resultado contém um pequeno erro. Exemplo 12) Observando o exemplo anterior com resultado exato da adição 𝑥𝑥 + 𝑦𝑦 = (0,438 + 0,001587). 104 = 0,439587 . 104. Promovendo truncamento (corte) na terceira casa após a vírgula, tem-se: 𝑥𝑥 + 𝑦𝑦������� = 0,439 . 104. Este valor também é aproximado e difere do resultado exato e do valor obtido após arredondamento. TEMA 5 – ERRO ABSOLUTO E ERRO RELATIVO São erros que apresentam uma forma de cálculo definido por: 10 5.1. Erro absoluto É a diferença entre o valor exato de um número (𝑥𝑥) e seu valor aproximado (�̅�𝑥). Denota-se: 𝐸𝐸𝐸𝐸𝑥𝑥 = 𝑥𝑥 − �̅�𝑥 (1.04) Em geral, não é possível ser calculado por não ser conhecido o valor exato de 𝑥𝑥. Emprega-se um limitante superior ou uma estimativa para o módulo do erro absoluto. Exemplo 13) Considerando que a estimativa de um valor tenha sido apresentada em um intervalo: 𝑥𝑥 ∈ (2,13 ; 2,14) . Então, a estimativa para o erro absoluto é: |𝐸𝐸𝐸𝐸𝑥𝑥| = |𝑥𝑥 − �̅�𝑥| < 0,01. 5.2. Erro relativo Definido como sendo o erro absoluto dividido pelo valor aproximado: 𝐸𝐸𝐸𝐸𝑥𝑥 = 𝐸𝐸𝐸𝐸𝑥𝑥 �̅�𝑥 = 𝑥𝑥 − �̅�𝑥 �̅�𝑥 (1.05) Normalmente, é apresentado em termos percentuais. Erro relativo menor que 1% é considerado aceitável. Exemplo 14) Considerando 𝑥𝑥 ∈ (2,13 ; 2,14) e um valor obtido para avaliação seja �̅�𝑥 = 2,13737, tem-se: 𝐸𝐸𝐸𝐸𝑥𝑥 = 𝐸𝐸𝐸𝐸𝑥𝑥 �̅�𝑥 = 𝑥𝑥−�̅�𝑥 �̅�𝑥 = 0,01 2,13737 = 0,004678647 ≅ 4,679 . 10−3 . Em termos percentuais resulta: 4,679 . 10−3 . 100 = 4,679 . 10−1 ≅ 0,468 % Quanto menor o erro relativo, melhor a avaliação para o valor de 𝑥𝑥. Exemplo 15) Considerando que uma determinada estimativa do valor de 𝑥𝑥 tenha sido 𝑥𝑥 = 435,184372 e que é conhecido um intervalo para esta medida como sendo 𝑥𝑥 ∈ (430 ; 440), determine o erro relativo ocorrido. Resolução: 𝐸𝐸𝐸𝐸𝑥𝑥 = 𝐸𝐸𝐸𝐸𝑥𝑥 �̅�𝑥 = 𝑥𝑥 − �̅�𝑥 �̅�𝑥 = 10 435,184372= 0,0229788 ≅ 2,3 . 10−2 = 2,3% 11 Exemplo 16) Considerando que uma determinada estimativa do valor de 𝑥𝑥 tenha sido 𝑥𝑥 = 45,841372 e que é conhecido um intervalo para esta medida como sendo 𝑥𝑥 ∈ (44 ; 46), determine o erro relativo ocorrido. Resolução: 𝐸𝐸𝐸𝐸𝑥𝑥 = 𝐸𝐸𝐸𝐸𝑥𝑥 �̅�𝑥 = 𝑥𝑥 − �̅�𝑥 �̅�𝑥 = 2 45,841372 = 0,043629 ≅ 4,4 . 10−2 = 4,4% NA PRÁTICA Análise de caso a seguir. Considere a sequência de cálculos: a) Transformação do valor 15,45 para base binária. Realizando a separação da parte inteira e decimal do valor numérico e aplicando as formas de transformação entre bases, resulta: 1510 = 11112 0,4510 = 0,011100110011 …2 b) Truncamento (corte) da parte não inteira em 10 dígitos binários. 0,4510 = 0,0111001100110011 …2 ≅ 0,01110011002 c) Transformação do valor obtido para a base decimal, conforme as regras apresentadas no texto. 0,01110011002 = 2−2 + 2−3 + 2−4 + 2−7 + 2−8 = 1 22 + 1 23 + 1 24 + 1 27 + 1 28 = = 26 + 25 + 24 + 2 + 1 28 = 64 + 32 + 16 + 2 + 1 256 = 115 256 = 0,44921875 O valor obtido é: 15,44921875 (a parte inteira do valor numérico não sofre alteração). d) Arredondamento na terceira casa após a vírgula Promovendo o arredondamento tem-se: 15,449 e) Cálculo do erro absoluto entre o valor inicial e o obtido após transformação entre bases e arredondamento. 𝐸𝐸𝐸𝐸 = |15,45 − 15,449| = 0,001 = 10−3 f) Cálculo do erro relativo ocorrido. 12 𝐸𝐸𝐸𝐸 = |𝐸𝐸𝐸𝐸| �̅�𝑥 = 10 −3 15,449 ≅ 6,47 . 10−5 = 6,47 . 10−5. 102 % = 6,47 . 10−3% 𝐸𝐸𝐸𝐸 ≅ 0,00647 % Nesse exemplo, pode-se observar o cálculo para diversos tipos de erros que ocorreram nos processos. É necessário salientar que computadores operam com um número de dígitos após a vírgula maior que o apresentado na resolução, porém é uma quantidade finita. Dessa forma, ocorrerão os erros de truncamento que levarão as diferenças de valores entre as bases decimal e binária de representação numérica. Estes erros serão cumulativos nas diferentes operações aritméticas (adição, subtração, produto, divisão, potenciação, etc.), ocasionando resposta aproximada nos procedimentos por cálculo numérico. Um estudo de caso a seguir. Considere a seguinte situação: a raiz real e não inteira da equação 𝑦𝑦 = 4𝑥𝑥3 − 7𝑥𝑥2 + 3𝑥𝑥 foi avaliada por 2 métodos numéricos diferentes. Uma das soluções apresentada foi de x = 0,749253 e a outra solução foi de x = 0,751745. Qual dos resultados contém erro relativo menor? Resolução: as três raízes exatas da equação polinomial de terceiro grau 𝑦𝑦 = 4𝑥𝑥3 − 7𝑥𝑥2 + 3𝑥𝑥 podem ser obtidas por diferentes processos e resultam 𝑥𝑥1 = 0, 𝑥𝑥2 = 1 𝑜𝑜 𝑥𝑥3 = 0,75. Observando os valores exatos das raízes e os valores aproximados obtidos por algum processo de cálculo numérico, os erros cometidos estão relacionados com a terceira raiz indicada como exata. Para o processo numérico que resultou 𝑥𝑥 = 0,749253 tem-se: 𝐸𝐸𝐸𝐸 = |𝑥𝑥 − �̅�𝑥| = |0,75 − 0,749253| = 0,000747 = 7,47 . 10−4 𝐸𝐸𝐸𝐸 = 𝐸𝐸𝐸𝐸 �̅�𝑥 = 0,000747 0,749253 = 0,00099699 … 𝐸𝐸𝐸𝐸% = 0,0997 … % ≅ 0,1% Considerando o processo numérico que resultou 𝑥𝑥 = 0,751745 tem-se: 𝐸𝐸𝐸𝐸 = |𝑥𝑥 − �̅�𝑥| = |0,75 − 0,751745| = 0,001745 = 1,745 . 10−4 𝐸𝐸𝐸𝐸 = 𝐸𝐸𝐸𝐸 �̅�𝑥 = 0,001745 0,751745 = 0,0023212658 … 𝐸𝐸𝐸𝐸% = 0,2321 … % ≅ 0,2% 13 Comparando os erros relativos obtidos nas duas avaliações da raiz da equação, a escolha é feita pelo processo que apresentar o menor erro relativo, no caso, o valor da raiz aproximado seria �̅�𝑥 = 0,749253 com erro relativo de 0,1%. FINALIZANDO O cálculo numérico apresenta diferentes técnicas para resolução de um mesmo problema. A cada nova etapa que será apresentada a você, traremos algumas formas de solução para cada problema em questão. A comparação dos resultados obtidos nos diferentes procedimentos será feita por meio dos erros relativos nos procedimentos empregados que será o fator determinante da qualidade da resposta obtida.