Use o botão abaixo para reportar erros ou dar sugestões.
Cálculo Numérico - Versão GNU Octave
Uma diferença finita é uma expressão da forma , que ao ser dividida por chama-se um quociente de diferenças. A técnica de diferenças finitas consiste em aproximar a derivada de uma função via fórmulas discretas que requerem apenas um conjunto finito de pares ordenados , onde geralmente denotamos .
Essas fórmulas podem ser obtidas de várias maneiras. Começamos com a fórmula mais simples que pode ser obtida do cálculo diferencial. Seja uma função diferenciável, a derivada de no ponto é, por definição,
(8.1) |
Deste limite, tomando pequeno (não muito pequeno para evitar o cancelamento catastrófico), é esperado que possamos obter uma aproximação razoável para . Assim, a diferença finita progressiva de ordem 1
(8.2) |
é uma aproximação para .
Exemplo 8.1.1. Usando a diferença finita progressiva de ordem 1, calcule aproximações da derivada de no ponto usando , , , , e . Calcule o erro obtido para cada valor de .
Solução. Usando a diferença progressiva em (8.2), devemos calcular
(8.3) |
Fazendo isso, obtemos:
No GNU Octave, podemos calcular a aproximação da derivada com usando as seguintes linhas de código:
E, similarmente, para outros valores de e .
Exploremos o Exemplo 8.1.1 um pouco mais. Observamos que, para valores moderados de , o erro diminui linearmente com (veja Figura 8.1). Isto é consequência da ordem de truncamento da fórmula de diferenças finitas aplicada (que é de ordem 1). Porém, para valores muito pequenos de , o erro passa a aumentar quando diminuímos . Isto é devido ao efeito de cancelamento catastrófico.
Podemos construir fórmulas de diferenças finitas para uma função (suave1 ) no ponto a partir de seu polinômio de Taylor. Em alguns casos, este procedimento acaba por nos fornecer, também, a ordem de truncamento da fórmula.
Podemos obter uma aproximação para a partir da série de Taylor
(8.4) |
Isolando , obtemos
(8.5) |
o que mostra que o erro de truncamento da diferença finita progressiva2
(8.6) |
é de ordem .
Outra aproximação para a derivada primeira pode ser obtida da série de Taylor de em torno de dada por
(8.7) |
Isolando , obtemos
(8.8) |
que fornece a diferença finita regressiva3
(8.9) |
que possui erro de truncamento de ordem .
Para obter uma aproximação para a derivada primeira com um erro menor, podemos utilizar as séries de Taylor:
Fazendo a primeira equação menos a segunda, obtemos
(8.12) |
Dividindo por e isolando obtemos
(8.13) |
Assim, a diferença finita central4
(8.14) |
é uma aproximação para com erro de truncamento de ordem , ou simplesmente ordem .
Exemplo 8.1.2. Calcule a derivada numérica da função no ponto usando a diferença progressiva, diferença regressiva e diferença central com , e . Também, calcule o erro absoluto da aproximação obtida em cada caso.
Solução. Usando a diferença progressiva, devemos calcular
(8.15) |
Com a diferença regressiva, calculamos
(8.16) |
Por fim, usando a diferença central temos
(8.17) |
As aproximações e os erros absolutos calculados em cada caso estão apresentados na seguinte tabela:
Erro | Erro | Erro | ||||
Observação 8.1.1. O experimento numérico realizado no Exemplo 8.1.2, nos mostra que o erro absoluto na derivação numérica não é da ordem do erro de truncamento. Entretanto, este erro tende a variar com na mesma ordem do erro de truncamento. A Figura 8.1.2 apresenta o erro absoluto das derivadas numéricas computadas para o Exemplo 8.1.2. Note que, devido ao efeito de cancelamento catastrófico, o erro absoluto deixa de variar na ordem do erro de truncamento para valores muito pequenos de .
Exemplo 8.1.3. Estime o erro absoluto no cálculo da derivada de para utilizando a diferença progressiva.
Solução. Da Equação 8.5, temos:
(8.18) |
ou seja:
(8.19) |
Agora, como para , concluímos que:
(8.20) |
Para entender como os erros de arredondamento se propagam ao calcular as derivadas numéricas vamos analisar a fórmula de diferenças finitas progressiva
(8.21) |
Nesse contexto temos o valor exato para a derivada, a sua aproximação numérica e a representação em número de máquina do operador que denotaremos por . Denotando por o erro de arredondamento ao calcularmos a derivada, vamos assumir que
(8.22) |
Também, consideremos
(8.23) |
e
(8.24) |
onde e são as representações em ponto flutuante dos números e , respectivamente.
Então, da Equação (8.22), a diferença do valor da derivada e sua aproximação representada em ponto flutuante pode ser estimada por:
(8.25) |
Podemos reescrever o lado direito desta equação, da seguinte forma
Então, separando os termos e estimando, obtemos:
onde
(8.34) |
está relacionado com o erro de truncamento.
Por fim, obtemos a seguinte estimativa para o erro absoluto na computação da derivada numérica:
(8.35) |
Esta estimativa mostra que se o valor de for muito pequeno o erro ao calcular a aproximação numérica cresce. Isso nos motiva a procurar o valor ótimo de que minimiza o erro.
Exemplo 8.1.4. No Exemplo 8.1.2, computamos a derivada numérica da função no ponto usando as fórmulas de diferenças finitas progressivas, regressivas e central. A Figura 8.2, mostra que, para valores muito pequenos, os erros de arredondamento passam a dominar os cálculos e, por consequência, o erro da derivada numérica passa a aumentar. Pela figura, podemos inferir que a escolha ótima de para as fórmulas progressiva e regressivas é . Agora, para a fórmula central, parece ser a melhor escolha.
Observação 8.1.2. Note que a estimativa (8.35), mostra que o erro na computação da derivada numérica depende da função que está sendo derivada. Assim, o ótimo depende não somente da fórmula de diferenças finitas, mas também da função a ser derivada.
Esta seção carece de exercícios resolvidos. Clique em e inicie a editá-la agora mesmo. Veja outras formas de participar clicando aqui.
ER 8.1.1. Aproxime a derivada de no ponto usando a fórmula de diferenças finitas progressiva de ordem 1 com: a) e b) . Compute, também, o erro absoluto de cada aproximação computada.
(8.36) |
Substituindo e , obtemos:
(8.37) |
Então, tomando , podemos computar a derivada numérica e o erro associado:
(8.38) |
onde é a derivada analítica. Tomando temos:
(8.39) |
No GNU Octave, podemos fazer os cálculos com o seguinte código:
E 8.1.1. Use os esquemas numéricos de diferença finita regressiva de ordem 1, diferença finita progressiva de ordem 1 e diferença finita central de ordem 2 para aproximar as seguintes derivadas:
Use e e compare com os valores obtidos através da avaliação numérica das derivadas exatas.
Progressiva ordem 1: e .
Regressiva ordem 1: e .
Central ordem 2: e .
Exata:
Progressiva ordem 1: e .
Regressiva ordem 1: e .
Central ordem 2: e .
Exata:
E 8.1.2. Expanda a função suave em um polinômio de Taylor adequado para obter as seguintes aproximações:
E 8.1.3. Use a expansão da função em torno de em polinômios de Taylor para encontrar os coeficientes , e tais que
E 8.1.4. As tensões na entrada, , e saída, , de um amplificador foram medidas em regime estacionário conforme tabela abaixo.
0,0 | 0,50 | 1,00 | 1,50 | 2,00 | 2,50 | 3,00 | 3,50 | 4,00 | 4,50 | 5,00 |
0,0 | 1,05 | 1,83 | 2,69 | 3,83 | 4,56 | 5,49 | 6,56 | 6,11 | 7,06 | 8,29 |
onde a primeira linha é a tensão de entrada em volts e a segunda linha é tensão de saída em volts. Sabendo que o ganho é definido como
(8.40) |
Calcule o ganho quando e usando as seguintes técnicas:
Caso | a | b | c | d |
Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:36:34.