Prévia do material em texto
Integração numérica em Python Prof. David Fernandes Cruz Moura Descrição Emprego de modelos matemáticos para resolução de problemas clássicos em Engenharia por meio de integração numérica. Propósito A aplicação de modelos matemáticos para resolução de integrais é uma ferramenta fundamental para a compreensão de situações clássicas em Engenharia, como a análise de ondas de choque em explosões, a análise de resistência e tenacidade de materiais, taxas de geração de gás carbônico e de consumo de oxigênio, entre outras situações-problema da Engenharia. Preparação Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 1 of 70 25/09/2024, 12:33 A aplicação de modelos matemáticos para resolução de integrais é uma ferramenta fundamental para a compreensão de situações clássicas em Engenharia, como a análise de ondas de choque em explosões, a análise de resistência e tenacidade de materiais, taxas de geração de gás carbônico e de consumo de oxigênio, entre outras situações-problema da Engenharia. Objetivos Módulo 1 Métodos de interpolação (Newton-Cotes: retângulos) Aplicar o método de interpolação de Newton-Cotes, Método dos Retângulos, por meio da implementação computacional em Python. Módulo 2 Métodos de interpolação (Newton-Cotes: trapézios) Aplicar o método de interpolação de Newton-Cotes, Método dos Trapézios, por meio da implementação computacional em Python. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 2 of 70 25/09/2024, 12:33 Módulo 3 Métodos de interpolação (Newton-Cotes: Regras de Simpson) Aplicar o método de interpolação de Newton-Cotes, Método de Simpson, por meio da implementação computacional em Python. Módulo 4 Métodos de extrapolação (Romberg) Aplicar o método de extrapolação de Romberg, por meio da implementação computacional em Python. Neste conteúdo, veremos formas de emprego de modelos matemáticos para solucionar um problema clássico em Engenharia – a resolução numérica de integrais definidas. São modelos matemáticos para resolução de integrais definidas. Ondas de choque em explosões, análise de resistência e tenacidade de materiais, taxas de geração de gás carbônico e de consumo de oxigênio são alguns problemas do contexto da Engenharia, nos quais podem ser aplicados tais modelos. Dessa maneira, conheceremos os métodos mais tradicionais de Introdução Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 3 of 70 25/09/2024, 12:33 1 - Métodos de interpolação (Newton-Cotes: retângulos) Ao �nal deste módulo, você será capaz de aplicar o método de interpolação de Newton-Cotes, Método dos Retângulos, por meio da implementação computacional em Python. Dessa maneira, conheceremos os métodos mais tradicionais de resolução de integrais definidas com o emprego de técnicas numéricas. Inicialmente, estudaremos os métodos de interpolação numérica para integração, empregando diversas variantes do método de Newton-Cotes (retângulos, trapézios e de Simpson). Em seguida, estudaremos o método de extrapolação numérica, como foco na técnica de Romberg. Em ambos os casos, aplicaremos os métodos estudados, por meio da implementação computacional de programas em Python. Vamos lá? Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 4 of 70 25/09/2024, 12:33 Introdução ao Método dos Retângulos Segundo Moura (2017), a integral definida apresenta a seguinte notação: Assim, temos que o resultado da expressão indicada é equivalente à área definida sob a curva f(x) no plano cartesiano, entre os pontos a e b. Veja a região hachurada da imagem: Gráfico: Integral Definida de f(x) no intervalo entre a e b. Extraído de: Moura, 2017. Para prosseguirmos, vamos relembrar o conceito de integral? Pois bem: a integral definida e sua aplicação são muito úteis em diversas áreas, como Física, Engenharia e Economia, entre outras. No entanto, o cálculo matemático da integral definida nem sempre é fácil. Por vezes, a função é difícil de integrar ou de impossível ∫ b a f(x)dx Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 5 of 70 25/09/2024, 12:33 fácil. Por vezes, a função é difícil de integrar ou de impossível integração. Mesmo quando o resultado é conhecido, há situações em que o cálculo somente pode ser obtido de modo aproximado. Resumindo Existem diversas situações que mostram que nem sempre é possível calcular a integral de uma função f(x) em um intervalo [a,b]. Nesses casos, aplicam-se métodos numéricos de integração – os denominados métodos de integração numérica. Qual é o princípio fundamental para esses métodos de integração numérica? A resposta é simples: a lembrança de que a integral de uma função equivale a uma área. Com base nesse princípio, foram criados diversos métodos que dividem a área a ser calculada em vários elementos, de pequena dimensão. Comentário Conforme exposto em Moura (2017), a soma das pequenas partes resulta na área total equivalente à integral que se deseja calcular – a menos de erros de aproximação inerentes ao modelo utilizado. Quanto menor for o intervalo de integração de cada uma dessas partes, menor o erro; no entanto, isso implica em aumento da quantidade necessária de operações – ou seja, um aumento da ordem de complexidade do algoritmo. Logo, temos um dilema: complexidade ou precisão? Para resolver a integral e permitir que você chegue a uma conclusão, temos diversos métodos em que a função f(x) passa a ser aproximada por funções polinomiais de grau cada vez maior: 0 (função constante), 1 (função linear), 2 (função quadrática) e assim por diante. De acordo com Moura (2017), o método básico envolvido nessa Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 6 of 70 25/09/2024, 12:33 aproximação é a denominada quadratura numérica. Esse método consiste em aproximar a integral definida por uma expressão do tipo: , Em que os valores são reais (peso da função) e . Atenção! É importante sabermos desde já que o emprego de funções de maior grau acaba promovendo melhor captura do comportamento da função a ser integrada. Dessa maneira, conseguimos reduzir a quantidade de operações matemáticas requeridas, bem como os erros de aproximação já citados. Método dos Retângulos O método que veremos neste módulo é o Método dos Retângulos. Nesse método, o princípio básico para fazer a aproximação da integral definida por é dividir o intervalo de integração [a,b] em h partes iguais. Dessa maneira, a integral é calculada de acordo com a expressão apresentada a seguir: Método dos Retângulos ∑ n i=1 α i f (x i ) α i ∀x i ∈ R ⇒ x i ∈ [a, b] ∫ b a f(x)dx n ∑ i=1 α i f (x i ) = h n ∑ i=1 f ( x i + x i+1 2 ) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 7 of 70 25/09/2024, 12:33 Veja só como funciona essa técnica, analisando a imagem apresentada a seguir: Gráfico: Integral como soma de 5 subáreas (retângulos azuis) – Método dos Retângulos. Extraído de: Moura, 2017. Nesse exemplo, nosso objetivo é calcular a integral dada por (em que f(x) é a linha indicada em vermelho). Para fazer essa operação, dividimos o intervalo de integração [2,3] em 5 intervalos iguais, indicados na cor azul. Naturalmente, como o intervalo de integração tem tamanho 1, cada intervalo apresenta dimensão h, dada por: Em cada um dos 5 intervalos, adota-se como referência o valor da função no ponto médio de cada intervalo, em que o dito ponto médio é dado por . Atenção! ∫ 3 2 f(x)dx = ∫ 3 2 x 2 + cos(x)dx h = 3 − 2 5 = 0, 2 x i +x i+1 2 = x i +(x i +h) 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra...8 of 70 25/09/2024, 12:33 Repare que cada ponto corresponde ao valor de seu antecessor , adicionado do tamanho de cada intervalo (h). Dessa maneira, percebemos que os cálculos ficam como está exposto na tabela a seguir: Intervalo Limite inferior Limite superior 1 2 2.2 2 2,2 2,4 3 2,4 2,6 4 2,6 2,8 5 2,8 3,0 Feitos esses cálculos, conseguimos chegar a uma aproximação para a integral de , dada por: Comentário Como já era esperado, o resultado obtido apresenta uma diferença em relação ao valor exato da integral proposta que conseguimos ao realizar (x i+1 ) (x i ) f(x) = x 2 + cos(x) n ∑ i=1 α i f (x i ) = h n ∑ i=1 f ( x i + x i+1 2 ) = 0, 2 5 ∑ i=1 f ( (2 + i ∗ 0, 2) + [2 + (i − 1) ∗ 2 → 0, 2 ∗ 3, 91 + 0, 2 ∗ 4, 62 + 0, 2 ∗ 5, 45 + 0, 2 ∗ 6, 39 + 0, 2 ∗ 7, 44 = 0, 2 ∗ (3, 91 + 4, 62 + 5, 45 + 6, 39 + 7, 44) = 5, 562 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 9 of 70 25/09/2024, 12:33 relação ao valor exato da integral proposta que conseguimos ao realizar a operação dita analítica (5,5652). Continuando nosso estudo, aplicaremos os conhecimentos obtidos na resolução de algumas integrais, de acordo com os métodos aprendidos. Vamos lá? Para tal, vamos calcular a integral de , no intervalo de 0 a 1, empregando o método dos retângulos. Como já vimos, a resolução do problema de integração numérica em um intervalo definido requer que o enunciado forneça alguns elementos importantes, como: • A função a ser integrada; • O valor inicial do intervalo de integração; • O valor final do intervalo de integração; • A quantidade de intervalos (ou o tamanho de cada intervalo). Neste exemplo, temos que: • A função a ser integrada é ; • O valor inicial do intervalo de integração é 0; • O valor final do intervalo de integração é 1. Quanto ao intervalo de integração, vamos fazer de algumas maneiras diferentes, para que você veja o comportamento de cada método, com 5, 10 e 20 intervalos, considerando 2 casas decimais. Assim, aplicando o Método dos Retângulos com 5 intervalos, temos: X x2 – x + 2 f(x).Δx 0 2 0,4 0,2 1,84 0,37 x 2 − x + 2 f(x) = x 2 − x + 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 10 of 70 25/09/2024, 12:33 0,4 1,76 0,35 0,6 1,76 0,35 0,8 1,84 0,37 Desse modo, fazendo a soma dos elementos na coluna da direita, temos 0,4 + 0,37 + 0,35 + 0,35 + 0,37 = 1,84. Já para o mesmo método, mas com 10 intervalos, temos os valores intermediários apresentados a seguir: X x2 – x + 2 f(x).Δx 0 2 0,2 0,1 1,91 0,19 0,2 1,84 0,18 0,3 1,79 0,18 0,4 1,76 0,18 0,5 1,75 0,17 0,6 1,76 0,18 0,7 1,79 0,18 0,8 1,84 0,18 0,9 1,91 0,19 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 11 of 70 25/09/2024, 12:33 Agora, fazendo a soma dos elementos na coluna da direita, temos: 0,2 + 0,19 + 0,18 + 0,18 + 0,18 + 0,17 + 0,18 + 0,18 + 0,18 + 0,19 = 1,83. Por fim, ainda com o Método dos Retângulos, mas com 20 intervalos, temos os valores intermediários apresentados a seguir: X x2 – x + 2 f(x).Δx 0 2 0,10 0,05 1,95 0,10 0,1 1,91 0,10 0,15 1,87 0,09 0,2 1,84 0,09 0,25 1,81 0,09 0,3 1,79 0,09 0,35 1,79 0,09 0,4 1,76 0,09 0,45 1,75 0,09 0,5 1,75 0,09 0,55 1,75 0,09 0,6 1,76 0,09 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 12 of 70 25/09/2024, 12:33 0,6 1,76 0,09 0,65 1,77 0,09 0,7 1,79 0,09 0,75 1,81 0,09 0,8 1,84 0,09 0,85 1,87 0,09 0,9 1,91 0,10 0,95 1,95 0,10 Com essa configuração, fazendo a soma dos elementos na coluna da direita, temos: 0,1 + 0,1 + 0,1 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,1 + 0,1 + 0,1 = 1,83. Prosseguindo na aplicação dos conhecimentos obtidos para resolução numérica de integrais definidas, vamos calcular a integral de no intervalo de 0 a 1, empregando o Método dos Retângulos. Como já vimos, a resolução do problema de integração numérica em um intervalo definido requer que o enunciado forneça alguns elementos importantes, como: 1. A função a ser integrada; 2. O valor inicial do intervalo de integração; 3. O valor final do intervalo de integração; 4. A quantidade de intervalos (ou o tamanho de cada intervalo). Neste exemplo, temos que: cos(x) − 3. sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 13 of 70 25/09/2024, 12:33 Neste exemplo, temos que: 1. A função a ser integrada é ; 2. O valor inicial do intervalo de integração é 0; 3. O valor final do intervalo de integração é 1. Quanto ao intervalo de integração, vamos fazer de algumas maneiras diferentes, para que você veja o comportamento de cada método, com 5, 10 e 20 intervalos, considerando 2 casas decimais. Assim, aplicando o Método dos Retângulos com 5 intervalos, temos: X cos(x) – 3.sen(x) f(x).Δx 0 1 0,2 0,2 0,38 0,08 0,4 -0,25 -0,05 0,6 -0,87 -0,17 0,8 -1,46 -0,29 Desse modo, fazendo a soma dos elementos na coluna da direita, temos 0,2 + 0,08 + (-0,05) + (-0,17) + (-0,29) = -0,24. Já para o mesmo método, mas com 10 intervalos, temos os valores intermediários apresentados a seguir: X cos(x) – 3.sen(x) f(x).Δx 0 1 0,1 f(x) = cos(x) − 3. sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 14 of 70 25/09/2024, 12:33 0,1 0,70 0,07 0,2 0,38 0,04 0,3 0,07 0,01 0,4 -0,25 -0,02 0,5 -0,56 -0,06 0,6 -0,87 -0,09 0,7 -1,17 -0,12 0,8 -1,46 -0,15 0,9 -1,73 -0,17 Agora, fazendo a soma dos elementos na coluna da direita, temos: 0,1 + 0,07 + 0,04 + 0,01 + (-0,02) + (-0,06) + (-0,09) + (-0,12) + (-0,15) + (-0,17) = -0,39. Por fim, ainda com o Método dos Retângulos, mas com 20 intervalos, temos os valores intermediários apresentados a seguir: X cos(x) – 3.sen(x) f(x).Δx 0 1 0,05 0,05 0,85 0,04 0,1 0,70 0,03 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 15 of 70 25/09/2024, 12:33 0,15 0,54 0,03 0,2 0,38 0,02 0,25 0,23 0,01 0,3 0,07 0,00 0,35 -0,09 -0,00 0,4 -0,25 -0,01 0,45 -0,40 -0,02 0,5 -0,56 -0,03 0,55 -0,72 -0,04 0,6 -0,87 -0,04 0,65 -1,02 -0,05 0,7 -1,17 -0,06 0,75 -1,31 -0,07 0,8 -1,46 -0,07 0,85 -1,53 -0,08 0,9 -1,73 -0,09 0,95 -1,86 -0,09 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 16 of 70 25/09/2024, 12:33 Com essa configuração, fazendo a soma dos elementos na coluna da direita, temos: 0,05 + 0,04 + 0,03 + 0,03 + 0,02 + 0,01 + 0,00 + (-0,00) + (-0,01) + (-0,02) + (-0,03) + (-0,04) + (-0,04) + (-0,05) + (-0,06) + (-0,07) + (-0,07) + (-0,08) + (-0,09) + (-0,09) = -0,46. Implementação do Método dos Retângulos em Python Vamos ver um exemplo de integração em Python? Agora, nós calcularemos a integral da função no intervalo [2, 3]. Em Python, podemos implementar o Método dos Retângulos para efetuar essa aproximação da seguinte maneira: Python x 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 17 of 70 25/09/2024, 12:33 Resolução de exercícios com o Python Neste bate-papo, serão resolvidos exercícios com o método de interpolação (Retângulos) utilizando o Python. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 18 of 70 25/09/2024, 12:33 Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Calcule o valor de . Para tal, utilize o Método dos Retângulos, dividindo o intervalo de integração em 4 partes: ∫ 2 0 sen(x)dx A 1,43101 B 1,53101 C 1,63101 D 1,73101 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 19 of 70 25/09/2024, 12:33 Parabéns! A alternativa A está correta. Comoestudamos, a resolução de uma integral definida requer que o enunciado forneça alguns elementos importantes, como: a função propriamente dita a ser integrada; o limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: - A função propriamente dita a ser integrada é ; - O limite inferior de integração é 0; - O limite superior de integração é 2; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 4; e - O método a ser utilizado é de Interpolação Numérica dos Retângulos. Aplicando os conceitos ensinados acerca desse método, temos: N x Y 0 ¼ sen(¼) = 0,24740 1 ¾ sen(¾) = 0,68164 2 5/4 sen (5/4) = 0,94898 D 1,73101 E 1,83101 f(x) = sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 20 of 70 25/09/2024, 12:33 3 7/4 sen (7/4) = 0,98398 Para obter o valor de I, basta somar os valores indicados na coluna da direita (Y) e multiplicar por 1/2. Fazendo isso, obtemos I = 1,43101. Questão 2 Calcule o valor de . Para tal, utilize o Método dos Retângulos, dividindo o intervalo de integração em 4 partes: Parabéns! A alternativa A está correta. Estudamos que a resolução de uma integral definida requer alguns ∫ 2 0 2. sen(x)dx A 2,86202 B 2,76202 C 2,66202 D 2,56202 E 2,46202 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 21 of 70 25/09/2024, 12:33 Estudamos que a resolução de uma integral definida requer alguns elementos importantes fornecidos pelo enunciado, como: a função propriamente dita a ser integrada; o limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: - A função propriamente dita a ser integrada é - O limite inferior de integração é 0; - O limite superior de integração é 2; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 4; e - O método a ser utilizado é de Interpolação Numérica dos Retângulos. Aplicando os conceitos ensinados acerca desse método, temos: N x Y 0 ¼ 2.sen (¼) = 0,49480 1 ¾ 2.sen (¾) = 1,36328 2 5/4 2. sen (5/4) = 1,89796 3 7/4 2. sen (7/4) = 1,96796 Para obter o valor de I, basta somar os valores indicados na coluna da direita (Y) e multiplicar por 1/2. Fazendo isso, obtemos I = f(x) = 2 ⋅ sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 22 of 70 25/09/2024, 12:33 2,86202. 2 - Métodos de interpolação (Newton-Cotes: trapézios) Ao �nal deste módulo, você será capaz de aplicar o método de interpolação de Newton-Cotes, Método dos Trapézios, por meio da implementação computacional em Python. Método dos Trapézios Você pode se perguntar: tem como fazer melhor? Podemos fazer, pelo menos, de duas formas diferentes: reduzindo o tamanho do intervalo h ou aprimorando a função de aproximação – o que veremos a seguir, com a apresentação do Método dos Trapézios. Nesse método, a estratégia para fazer o cálculo da aproximação da integral definida por também consiste em dividir do intervalo∫ b f(x)dx Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 23 of 70 25/09/2024, 12:33 integral definida por também consiste em dividir do intervalo de integração [a,b] em h partes iguais. Só que a expressão de cálculo dentro de cada intervalo é diferente daquela que vimos para o método anterior. Nesse caso, a integral é calculada de acordo com a expressão apresentada a seguir: Método dos Trapézios Para entender melhor como isso é feito, veja a imagem apresentada a seguir: Gráfico: Integral da função f(x) (em vermelho) como soma de 4 subáreas (trapézios hachurados em azul) – Método dos Trapézios. Extraído de: Moura, 2017. Para ajudar, vamos utilizar o mesmo exemplo que vimos no Método dos Retângulos, calculando . Como mencionado há pouco, vamos dividir o intervalo de integração [2,3] em 5 intervalos iguais de tamanho: ∫ a f(x)dx n ∑ i=1 α i f (x i ) = h n ∑ i=1 f (x i ) + f (x i+1 ) 2 ∫ 3 2 f(x)dx = ∫ 3 2 x 2 + cos(x)dx Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 24 of 70 25/09/2024, 12:33 Aqui, vem a diferença: em cada um desses 5 intervalos, adota-se como função de referência a média entre os valores da função nos pontos- limite de cada intervalo, ou seja . Mais uma vez, note que cada ponto corresponde ao valor de seu antecessor , adicionado do tamanho de cada intervalo (h). Dessa maneira, neste segundo exemplo, temos a situação exposta na tabela apresentada a seguir: Intervalo Limite inferior Limite superior 1 2 2.2 2 2,2 2,4 3 2,4 2,6 4 2,6 2,8 5 2,8 3,0 Com isso, tem-se a seguinte aproximação para a integral de , dada por: h = 3 − 2 5 = 0, 2 f(x i )+f(x i +h) 2 (x i+1 ) (x i ) f(x) = x 2 + cos(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 25 of 70 25/09/2024, 12:33 Agora, vamos calcular novamente a integral de no intervalo de 0 a 1, empregando o Método dos Trapézios. Como vimos, a resolução do problema de integração numérica em um intervalo definido requer que o enunciado forneça alguns elementos importantes, como: • A função a ser integrada; • O valor inicial do intervalo de integração; • O valor final do intervalo de integração; • A quantidade de intervalos (ou o tamanho de cada intervalo). Neste exemplo, temos que: • A função a ser integrada é ; • O valor inicial do intervalo de integração é 0; • O valor final do intervalo de integração é 1. Quanto ao intervalo de integração, vamos fazer de algumas maneiras diferentes, para que você veja o comportamento de cada método, com 5, 10 e 20 intervalos, considerando 2 casas decimais. Será que o comportamento observado no módulo anterior se mantém com outras técnicas? Vamos agora aplicar o Método dos Trapézios com 5 intervalos: X x2 – x + 2 f(x).Δx n ∑ i=1 α i f (x i ) =h n ∑ i=1 f (x i ) + f (x i+1 ) 2 = 0, 2 5 ∑ i=1 f(2 + (i − 1) ∗ 0, 2) + f[2 + i ∗ 0, 2] 2 → 0, 2 ∗ (3, 9177 + 4, 6371 + 5, 4629 + 6, 4004 + 7, 4539) = 5, 5744 x 2 − x + 2 f(x) = x 2 − x + 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 26 of 70 25/09/2024, 12:33 0 2 0,40 0,2 1,84 0,37 0,4 1,76 0,35 0,6 1,76 0,35 0,8 1,84 0,37 Desse modo, fazendo a soma dos elementos na coluna da direita, temos: 0,40 + 0,37 + 0,35 + 0,35 + 0,37 = 1,84. Já para o mesmo método, mas com 10 intervalos, temos os valores intermediários apresentados a seguir: X x2 – x + 2 f(x).Δx 0 2 0,2 0,1 1,91 0,19 0,2 1,84 0,18 0,3 1,79 0,18 0,4 1,76 0,18 0,5 1,75 0,18 0,6 1,76 0,18 0,7 1,79 0,18 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 27 of 70 25/09/2024, 12:33 0,7 1,79 0,18 0,8 1,84 0,19 0,9 1,91 0,20 Agora, fazendo a soma dos elementos na coluna da direita, temos: 0,2 + 0,19 + 0,18 + 0,18 + 0,18 + 0,18 + 0,18 + 0,18 + 0,19 + 0,20 = 1,83. Por fim, ainda com o Método dos Trapézios, mas com 20 intervalos, temos os valores intermediários apresentados a seguir: X x2 – x + 2 f(x).Δx 0 2 0,10 0,05 1,95 0,10 0,1 1,91 0,09 0,15 1,87 0,09 0,2 1,84 0,09 0,3 1,79 0,09 0,35 1,77 0,09 0,4 1,76 0,09 0,45 1,75 0,09 0,5 1,75 0,09 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 28 of 70 25/09/2024, 12:33 0,55 1,75 0,09 0,6 1,76 0,09 0,65 1,77 0,09 0,7 1,79 0,09 0,75 1,81 0,09 0,8 1,84 0,09 0,85 1,87 0,09 0,9 1,91 0,10 0,95 1,95 0,10 Com essa configuração, fazendo a soma dos elementos na coluna da direita, temos: 0,1 + 0,1 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 +0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,1 + 0,1 = 1,83. Prosseguindo na aplicação dos conhecimentos obtidos para resolução numérica de integrais definidas, vamos calcular a integral de no intervalo de 0 a 1, empregando o Método dos Trapézios. Como vimos neste tema, a resolução do problema de integração numérica em um intervalo definido requer que o enunciado forneça alguns elementos importantes, como: • A função a ser integrada; cos(x) − 3. sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 29 of 70 25/09/2024, 12:33 • O valor inicial do intervalo de integração; • O valor final do intervalo de integração; • A quantidade de intervalos (ou o tamanho de cada intervalo). Neste exemplo, temos que: • A função a ser integrada é ; • O valor inicial do intervalo de integração é 0; • O valor final do intervalo de integração é 1. Quanto ao intervalo de integração, vamos fazer de algumas maneiras diferentes, para que você veja o comportamento de cada método, com 5, 10 e 20 intervalos, considerando 2 casas decimais. Será que o comportamento obtido no módulo anterior se mantém com outras técnicas? Vamos aplicar o Método dos Trapézios com 5 intervalos: X cos(x) – 3.sen(x) f(x).Δx 0 1 0,14 0,2 0,38 0,01 0,4 -0,25 -0,11 0,6 -0,87 -0,23 0,8 -1,46 -0,34 Desse modo, fazendo a soma dos elementos na coluna da direita, temos 0,14 + 0,01 + (-0,11) + (-0,23) + (-0,34) = -0,54. Já para o mesmo método, mas com 10 intervalos, temos os valores f(x) = cos(x) − 3. sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 30 of 70 25/09/2024, 12:33 Já para o mesmo método, mas com 10 intervalos, temos os valores intermediários apresentados a seguir: X cos(x) – 3.sen(x) f(x).Δx 0 1 0,08 0,1 0,70 0,05 0,2 0,38 0,02 0,3 0,07 -0,01 0,4 -0,25 -0,04 0,5 -0,56 -0,07 0,6 -0,87 -0,10 0,7 -1,17 -0,13 0,8 -1,46 -0,16 0,9 -1,73 -0,19 Agora, fazendo a soma dos elementos na coluna da direita, temos: 0,08 + 0,05 + 0,02 + (-0,01) + (-0,04) + (-0,07) + (-0,10) + (-0,13) + (-0,16) + (-0,19) = -0,54. Por fim, ainda com o Método dos Trapézios, mas com 20 intervalos, temos os valores intermediários apresentados a seguir: X cos(x) – 3.sen(x) f(x).Δx Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 31 of 70 25/09/2024, 12:33 0 1 0,05 0,05 0,85 0,04 0,1 0,70 0,03 0,15 0,54 0,02 0,2 0,38 0,02 0,25 0,23 0,01 0,3 0,07 -0,00 0,35 -0,09 -0,01 0,4 -0,25 -0,02 0,45 -0,40 -0,02 0,5 -0,56 -0,03 0,55 -0,72 -0,04 0,6 -0,87 -0,05 0,65 -1,02 -0,05 0,7 -1,17 -0,06 0,75 -1,31 -0,07 0,8 -1,46 -0,08 0,85 -1,53 -0,08 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 32 of 70 25/09/2024, 12:33 0,85 -1,53 -0,08 0,9 -1,73 -0,09 0,95 -1,86 -0,10 Com essa configuração, fazendo a soma dos elementos na coluna da direita, temos 0,05 + 0,04 + 0,03 + 0,02 + 0,02 + 0,01 + (-0,00) + (-0,01) + (-0,02) + (-0,02) + (-0,03) + (-0,04) + (-0,05) + (-0,05) + (-0,06) + (-0,07) + (-0,08) + (-0,08) + (-0,09) + (-0,10) = -0,54. Implementação do Método dos Trapézios em Python Vamos ver um exemplo de integração em Python? Calcularemos a integral da função no intervalo [2, 3]. Em Python, podemos implementar o Método dos Trapézios para efetuar essa aproximação, de modo que o cálculo pode ser feito da seguinte maneira: Python x 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 33 of 70 25/09/2024, 12:33 Resolução de exercícios com o Python Neste bate-papo, serão resolvidos exercícios com o método de interpolação (Trapézios) utilizando o Python. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 34 of 70 25/09/2024, 12:33 Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Calcule o valor de . Para tal, utilize o Método dos Trapézios, dividindo o intervalo de integração em 8 partes: ∫ 2 1 cos(x)dx A 0,0677 B 0,0777 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 35 of 70 25/09/2024, 12:33 Parabéns! A alternativa A está correta. Como vimos, a resolução de uma integral definida requer que o enunciado forneça alguns elementos importantes, como: a função propriamente dita a ser integrada; o limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: - A função propriamente dita a ser integrada é ; - O limite inferior de integração é 1; - O limite superior de integração é 2; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 8; e - O método a ser utilizado é de Interpolação Numérica dos Trapézios. Aplicando os conceitos ensinados acerca desse método, temos: n X Y B 0,0777 C 0,0877 D 0,09771 E 0,0577 f(x) = cos(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 36 of 70 25/09/2024, 12:33 n X Y 0 1 cos (1) = 0,54030 1 9/8 2. cos (9/8) = 0,86235 2 5/4 2. cos (5/4) = 0,63064 3 11/8 2. cos (11/8) = 0,38910 4 3/2 2. cos (3/2) = 0,14147 5 13/8 2. cos (13/8) = - 0,10835 6 7/4 2. cos (7/4) = - 0,35649 7 15/8 2. cos (15/8) = - 0,59907 8 2 cos (2) = - 0,41615 Para obter o valor de I, basta somar os valores indicados na coluna da direita (Y) e multiplicar por 1/16. Fazendo isso, obtemos I = 0,06774. Questão 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 37 of 70 25/09/2024, 12:33 Calcule o valor de . Para tal, utilize o Método dos Trapézios, dividindo o intervalo de integração em 8 partes: Parabéns! A alternativa A está correta. Como estudamos, a resolução de uma integral definida requer que o enunciado forneça alguns elementos importantes, como: a função propriamente dita a ser integrada; o limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: - A função propriamente dita a ser integrada é ; - O limite inferior de integração é 1; - O limite superior de integração é 2; ∫ 2 1 2. cos(x)dx A 0,13547 B 0,15547 C 0,11547 D 0,17547 E 0,19547 f(x) = 2. cos(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 38 of 70 25/09/2024, 12:33 O limite superior de integração é 2; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 8; e - O método a ser utilizado é de Interpolação Numérica dos Trapézios. Aplicando os conceitos ensinados acerca desse método, temos: n X Y 0 1 [2. cos (1)] = 1,0806 1 9/8 2. [2. cos (9/8)] = 1,7247 2 5/4 2. [2. cos (5/4)] = 1,26128 3 11/8 2. [2. cos (11/8)] = 0,7782 4 3/2 2. [2. cos (3/2)] = 0,28294 5 13/8 2. [2. cos (13/8)] = - 0,2167 6 7/4 2. [2. cos (7/4)] = - 0,72198 7 15/8 2. [2. cos (15/8)] = - 1,19814 8 2 [2. cos (2)] = - 0,8323 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 39 of 70 25/09/2024, 12:33 0,8323 Para obter o valor de I, basta somar os valores indicados na coluna da direita (Y) e multiplicar por 1/16. Fazendo isso, obtemos I = 0,13547. 3 - Métodos de interpolação (Newton-Cotes: regras de Simpson) Ao �nal deste módulo, você será capaz de aplicar o método de interpolação de Newton-Cotes, Método de Simpson, por meio da implementação computacional em Python. Método de Simpson Como imaginávamos, o resultado obtido ainda apresenta uma diferença Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 40 of 70 25/09/2024, 12:33 Como imaginávamos, o resultado obtido ainda apresentauma diferença em relação ao valor exato da integral proposta (5,5652), mas a diferença foi reduzida. Mesmo assim, o resultado pode ser melhor: podemos reduzir o tamanho do intervalo h ou aprimorar a função de aproximação, empregando o denominado Método de Simpson para n = 3. No Método de Simpson para n = 3, como nos métodos anteriores, o princípio básico para calcular consiste em dividir o intervalo de integração [a,b] em h partes iguais. Assim, a integral é calculada de acordo com a expressão apresentada a seguir: Vamos ver qual é o efeito dessa modificação? Mais uma vez utilizando o exemplo anterior, considere o cálculo de . Como nos demais casos, dividimos o intervalo de integração [2,3] em 5 intervalos iguais de tamanho: Conforme exposto em Moura (2017), em cada um desses 5 intervalos, adota-se como referência uma aproximação quadrática entre os valores da função nos pontos-limite de cada intervalo, considerando-se como ponto focal da parábola o ponto médio do intervalo, ou seja: ∫ b a f(x)dx n ∑ i=1 α i f (x i ) = h n ∑ i=1 f (x i ) + 4f(y) + f (x i+1 ) 6 , onde y = x i + x i+1 2 ∫ 3 2 f(x)dx = ∫ 3 2 x 2 + cos(x)dx h = 3 − 2 5 = 0, 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 41 of 70 25/09/2024, 12:33 ponto focal da parábola o ponto médio do intervalo, ou seja: De igual modo ao que fizemos nos casos anteriores, cada ponto equivale ao valor de seu antecessor ( ), adicionado do tamanho de cada intervalo (h). Vamos ver como ficam os cálculos neste terceiro caso? Veja a tabela apresentada a seguir: Intervalo Limite inferior Limite superior 1 2 2,2 2 2,2 2,4 3 2,4 2,6 4 2,6 2,8 5 2,8 3,0 Com isso, tem-se a seguinte aproximação para a integral de , com resultado igual a 5,5652. Eis os cálculos: f (x i ) + 4f(y) + f (x i+1 ) 6 , onde y = x i + x i+1 2 (x i+1 ) (x i ) f(x) = x 2 + cos(x) h n ∑ i=1 f (x i ) + 4f(y) + f (x i+1 ) 6 =0, 2 5 ∑ i=1 f(a + (i − 1)h) + 4f(y) + f(a + ih) 6 , on = (a + (i − 1)h) + (a + ih) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 42 of 70 25/09/2024, 12:33 0,2 Como você pode ver, o resultado alcançado é equivalente ao valor exato da integral proposta (5,5652) – era de se esperar que nós encontrássemos uma aproximação melhor do que a oferecida pelos métodos anteriores, mas nem sempre se chegará a um resultado exato com tão poucos intervalos. Atenção! Já tratamos disso anteriormente, mas não custa repetir: podemos encontrar uma aproximação ainda melhor, reduzindo o tamanho do intervalo h ou aprimorando a função de aproximação – a partir de funções cúbicas, quárticas ou de ordem superior. Para concluir, aplicaremos o Método de Simpson para calcular a integral de no intervalo de 0 a 1. Como vimos, a resolução do problema de integração numérica em um intervalo definido requer que o enunciado forneça alguns elementos importantes, como: • A função a ser integrada; • O valor inicial do intervalo de integração; • O valor final do intervalo de integração; • A quantidade de intervalos (ou o tamanho de cada intervalo). Neste exemplo, temos que: • A função a ser integrada é ; • O valor inicial do intervalo de integração é 0; O valor final do intervalo de integração é 1 = 2 ∗ f(2) + 4f(2, 1) + 2f(2, 2) + 4f(2, 3) + 2f(2, 4) + 4f(2, 5) + 2f(2, 6) + 4f(2, 7) 6 →= 5, 5652 x 2 − x + 2 f(x) = x 2 − x + 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 43 of 70 25/09/2024, 12:33 • O valor final do intervalo de integração é 1. Quanto ao intervalo de integração, vamos fazer de algumas maneiras diferentes, para que você veja o comportamento de cada método, com 5, 10 e 20 intervalos, considerando 2 casas decimais. Como feito nos casos anteriores, vamos começar com 5 intervalos: X x2 – x + 2 f(x).Δx 0 2 0,38 0,2 1,84 0,36 0,4 1,76 0,35 0,6 1,76 0,36 0,8 1,84 0,38 Desse modo, fazendo a soma dos elementos na coluna da direita, temos 0,38 + 0,36 + 0,35 + 0,36 + 0,38 = 1,83. Já para o mesmo método, mas com 10 intervalos, temos os valores intermediários apresentados a seguir: X x2 – x + 2 f(x).Δx 0 2 0,2 0,1 1,91 0,19 0,2 1,84 0,18 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 44 of 70 25/09/2024, 12:33 0,2 1,84 0,18 0,3 1,79 0,18 0,4 1,76 0,18 0,5 1,75 0,18 0,6 1,76 0,18 0,7 1,79 0,18 0,8 1,84 0,19 0,9 1,91 0,20 Agora, fazendo a soma dos elementos na coluna da direita, temos 0,2 + 0,19 + 0,18 + 0,18 + 0,18 + 0,18 + 0,18 + 0,18 + 0,19 + 0,20 = 1,83. Por fim, ainda com o Método de Simpson, mas com 20 intervalos, temos os valores intermediários apresentados a seguir: X x2 – x + 2 f(x).Δx 0 2 0,10 0,05 1,95 0,10 0,1 1,91 0,09 0,15 1,87 0,09 0,2 1,84 0,09 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 45 of 70 25/09/2024, 12:33 0,25 1,81 0,09 0,3 1,79 0,09 0,35 1,77 0,09 0,4 1,76 0,09 0,45 1,75 0,09 0,5 1,75 0,09 0,55 1,75 0,09 0,6 1,76 0,09 0,65 1,77 0,09 0,7 1,79 0,09 0,75 1,81 0,09 0,8 1,84 0,09 0,85 1,87 0,09 0,9 1,91 0,10 0,95 1,95 0,10 Com essa configuração, fazendo a soma dos elementos na coluna da direita, temos: 0,1 + 0,1 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,09 + 0,1 + 0,1 = 1,83. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 46 of 70 25/09/2024, 12:33 Prosseguindo na aplicação dos conhecimentos obtidos para resolução numérica de integrais definidas, vamos calcular a integral de cos(x) – 3. sen(x) no intervalo de 0 a 1, agora empregando o Método de Simpson. Como vimos, a resolução do problema de integração numérica em um intervalo definido requer que o enunciado forneça alguns elementos importantes, como: • A função a ser integrada; • O valor inicial do intervalo de integração; • O valor final do intervalo de integração; • A quantidade de intervalos (ou o tamanho de cada intervalo). Neste exemplo, temos que: • A função a ser integrada é ; • O valor inicial do intervalo de integração é 0; • O valor final do intervalo de integração é 1. Vamos agora aplicar o Método de Simpson. Como nos casos anteriores, vamos começar com 5 intervalos: X cos(x) – 3.sen(x) f(x).Δx 1 0,14 0,2 0,38 0,01 0,4 -0,25 -0,11 0,6 -0,87 -0,23 0,8 -1,46 -0,35 f(x) = cos(x) − 3. sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 47 of 70 25/09/2024, 12:33 Desse modo, fazendo a soma dos elementos na coluna da direita, temos: 0,14 + 0,01 + (-0,11) + (-0,23) + (-0,35) = -0,54. Já para o mesmo método, mas com 10 intervalos, temos os valores intermediários apresentados a seguir: X cos(x) – 3.sen(x) f(x).Δx 0 1 0,08 0,1 0,70 0,05 0,2 0,38 0,02 0,3 0,07 -0,01 0,4 -0,25 -0,04 0,5 -0,56 -0,07 0,6 -0,87 -0,10 0,7 -1,17 -0,13 0,8 -1,46 -0,16 0,9 -1,73 -0,19 Fazendo a soma dos elementos na coluna da direita, temos: 0,08 + 0,05 + 0,02 + (-0,01) + (-0,04) + (-0,07) + (-0,10) + (-0,13) + (-0,16) + (-0,19) = -0,54. Por fim, ainda com o Método de Simpson, mas com 20 intervalos, temos os valores intermediários apresentados a seguir: Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 48 of 70 25/09/2024, 12:33 X cos(x) – 3.sen(x) f(x).Δx 0 1 0,05 0,05 0,85 0,04 0,1 0,70 0,03 0,15 0,54 0,02 0,2 0,38 0,02 0,25 0,23 0,01 0,3 0,07 -0,00 0,35 -0,09 -0,01 0,4 -0,25 -0,02 0,45 -0,40 -0,02 0,5 -0,56 -0,03 0,55 -0,72 -0,04 0,6 -0,87 -0,05 0,65 -1,02 -0,05 0,7 -1,17 -0,06 0,75 -1,31 -0,07 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 49 of 70 25/09/2024, 12:33 0,8 -1,46 -0,080,85 -1,53 -0,08 0,9 -1,73 -0,09 0,95 -1,86 -0,10 Com essa configuração, fazendo a soma dos elementos na coluna da direita, temos 0.05 + 0.04 + 0.03 + 0.02 + 0.02 + 0.01 + (-0.00) + (-0.01) + (-0.02) + (-0.02) + (-0.03) + (-0.04) + (-0.05) + (-0.05) + (-0.06) + (-0.07) + (-0.08) + (-0.08) + (-0.09) + (-0.10) = -0,54. Implementação do Método de Simpson em Python Vamos ver um exemplo de integração em Python? Calcularemos a integral da função no intervalo [2, 3]. Em Python, podemos implementar o Método de Simpson para efetuar essa aproximação, de modo que o cálculo pode ser feito da seguinte maneira: Python x 2 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 50 of 70 25/09/2024, 12:33 Resolução de exercícios com o Python Neste bate-papo, serão resolvidos os exercícios com o método de interpolação (Newton-Cotes) utilizando o Python. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 51 of 70 25/09/2024, 12:33 Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Calcule o valor de . Para tal, utilize o Método de Simpson, dividindo o intervalo de integração em 4 partes: ∫ 2 0 sen(x)dx A 1,42 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 52 of 70 25/09/2024, 12:33 Parabéns! A alternativa A está correta. Como estudamos, a resolução de uma integral definida requer que o enunciado forneça alguns elementos importantes, como: a função propriamente dita a ser integrada; - O limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: - A função propriamente dita a ser integrada é ; - O limite inferior de integração é 0; - O limite superior de integração é 2; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 4; - O método a ser utilizado é de Interpolação Numérica de A 1,42 B 1,52 C 1,62 D 1,72 E 1,82 f(x) = sen(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 53 of 70 25/09/2024, 12:33 Simpson. Aplicando os conceitos ensinados acerca desse método, temos: N x Y 0 0 0,12 1 1/2 0,34 2 1 0,47 3 3/2 0,49 Para obter o valor de I, basta somar os valores indicados na coluna da direita (Y). Fazendo isso, obtemos I = 1,42. Questão 2 Calcule o valor de . Para isso, utilize o Método de Simpson, dividindo o intervalo de integração em 4 partes: ∫ 2 0 cos(x)dx A 0,91 B 1,01 C 0,81 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 54 of 70 25/09/2024, 12:33 Parabéns! A alternativa A está correta. Como vimos, a resolução de uma integral definida requer que o enunciado forneça alguns elementos importantes, como: a função propriamente dita a ser integrada; o limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: - A função propriamente dita a ser integrada é ; - O limite inferior de integração é 0; - O limite superior de integração é 2; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 4; - O método a ser utilizado é de Interpolação Numérica de Simpson. Aplicando os conceitos ensinados acerca desse método, temos: N x Y 0 0 0,48 1 1/2 0,36 D 0,71 E 0,61 f(x) = cos(x) Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 55 of 70 25/09/2024, 12:33 2 1 0,16 3 3/2 -0,09 Para obter o valor de I, basta somar os valores indicados na coluna da direita (Y). Fazendo isso, obtemos I = 0,91. 4 - Métodos de extrapolação (Romberg) Ao �nal deste módulo, você será capaz de aplicar o Método de extrapolação de Romberg, por meio da implementação computacional em Python. Método de Romberg Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 56 of 70 25/09/2024, 12:33 Além dos métodos indicados no módulo anterior, existem outros que permitem alcançar resultados ainda mais precisos. Entre eles, destacamos o Método de extrapolação de Romberg. A despeito de sua maior precisão, seu fundamento teórico se baseia no Método dos Trapézios, já estudado neste conteúdo. Vamos analisar esse método, a partir de um exemplo. Para tal, consideremos o cálculo da integral I apresentada a seguir: Método de Romberg Utilizando o Método dos Trapézios, podemos calcular o valor da integral I, considerando uma quantidade qualquer de subintervalos dentro do intervalo de integração [1,2]. Assim, vamos calcular o valor de I, considerando a quantidade n de subintervalos igual a 1, 2, 4, 8 e 16. Os valores obtidos são mostrados a seguir: Índice n 1 2 4 8 I = ∫ 2 1 1 x dx R 0 1 R 0 2 R 0 3 R 0 4 1 16 ( 1 + 1.777 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 57 of 70 25/09/2024, 12:33 16 Isso feito, temos como aplicar a ideia central do Método de Romberg, que é o emprego da extrapolação de Richardson para obter valores ainda mais precisos, a partir dos resultados do Método dos Trapézios dentro do intervalo de integração considerado. O Método de extrapolação de Richardson permite a obtenção de índices quaisquer, a partir da fórmula: Parece complicado? Nem tanto! Recomendamos construir uma tabela da seguinte forma: Assim, considerando os valores da primeira coluna (ou seja, aqueles que calculamos inicialmente nesse exemplo), todas as demais podem ser calculadas, considerando o valor à esquerda e o que fica acima deste último (ou seja, as posições à oeste e à noroeste, respectivamente). Vamos ver? R 0 5 R i k R i k = 4 i ⋅ R i−1 k − R i−1 k−1 4 i − 1 R 1 2 = 4R 0 2 − R 0 1 3 = 0, 69444 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 58 of 70 25/09/2024, 12:33 Prosseguindo, você pode obter o valor de , muito mais preciso, para representar o logaritmo neperiano de . Implementação do Método de Romberg em Python Agora, trataremos da utilização do método de Romberg em Python. Para tal, nós utilizaremos o pacote SciPy, o qual disponibiliza a função scipy.integrate.romberg para realizar a integração de acordo com o método de extrapolação de Romberg. Como exemplo, vamos calcular a integral . Para isso, basta executar os comandos na sequência indicada a seguir: • Importar o pacote scipy; • Importar o pacote de integração (integrate); • Definir a função a ser integrada (func); • Executar a função de integração (integrate.romberg), indicando a função (func), os limites inferior (1) e superior (2) de integração, com exibição da tabela de resultados até n=16 (show=True). Comentário O trecho de comandos em Python indicado a seguir apresenta a sequência descrita anteriormente para cálculo da integral de acordo com o método de Romberg, empregando a função R 1 3 = 4R 0 3 − R 0 2 3 = 0, 69325 R 2 3 = 16R 1 3 − R 1 2 15 = 0, 69317 R 3 5 = 0, 69315 2(0, 693147 → 0, 69315) ∫ 2 1 e −x dx ∫ 2 1 e −x dx Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 59 of 70 25/09/2024, 12:33 integrate.romberg. Por definição, a função integrate.romberg apresenta os resultados com um erro de aproximação de . Python Vamos fazer outros exemplos com o mesmo pacote em Python? Dessa maneira, veja a sequência de comandos necessários para cálculo da integral , de acordo com o método de Romberg, empregando a função integrate.romberg. Como mencionado anteriormente, a função integrate.romberg apresenta os resultados com um erro de aproximação de . Python 1, 48 × 10 −8 ∫ 2 1 sen(x)dx1, 48 × 10 −8 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 60 of 70 25/09/2024, 12:33 Ainda de acordo com a mesma sistemática, veja a sequência de comandos necessários para cálculo da integral , de acordo com o método de Romberg empregando a função integrate.romberg. Como mencionado anteriormente, a função integrate.romberg apresenta os resultados com um erro de aproximação de . Python ∫ 2 1 cos(x)dx 1, 48 × 10 −8 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 61 of 70 25/09/2024, 12:33 Por fim, veja a sequência de comandos necessários para cálculo da integral , de acordo com o método de Romberg, empregando a função integrate.romberg. Python Como já indicado ao longo do conteúdo, o resultado aqui é bem mais preciso do que com os métodos de interpolação estudados anteriormente, requerendo uma quantidade menor de iterações, o que ilustra a qualidade desse método. ∫ 2 1 sen(x) + cos(x)dx Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 62 of 70 25/09/2024, 12:33 Resolução de exercícios com o Python Neste bate-papo, serão resolvidos os exercícios com o método de extrapolação (Romberg) utilizando o Python. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 63 of 70 25/09/2024, 12:33 Falta pouco para atingir seus objetivos. Vamos praticar alguns conceitos? Questão 1 Calcule o valor de . Para tal, utilize o método de Romberg, dividindo o intervalo de integração em 8 partes: ∫ 1 0 cos(x)dx A 0,84147 B 0,85147 C 0,86147 D 0,87147 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 64 of 70 25/09/2024, 12:33 Parabéns! A alternativa A está correta. Como vimos, a resolução de uma integral definida requer que o enunciado forneça alguns elementos importantes, como: a função propriamente dita a ser integrada; o limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: - A função propriamente dita a ser integrada é ; - O limite inferior de integração é 0; - O limite superior de integração é 1; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 8; - O método a ser utilizado é de Romberg. Aplicando os conceitos ensinados acerca desse método, temos: N 1 0,84177 2 0,84147 3 0,84147 E 0,88147 f(x) = cos(x) R n n Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 65 of 70 25/09/2024, 12:33 Assim, obtemos I = 0,84147. Questão 2 Calcule o valor de . Para tal, utilize o método de Romberg, dividindo o intervalo de integração em 8 partes: Parabéns! A alternativa A está correta. Como vimos, a resolução de uma integral definida requer que o enunciado forneça alguns elementos importantes, como: a função propriamente dita a ser integrada; o limite inferior de integração; o limite superior de integração; a quantidade de intervalos (ou o tamanho de cada intervalo); e o método a ser utilizado. Neste exemplo, temos que: ∫ 1 0 sen(x)dx A 0,45970 B 0,47970 C 0,49970 D 0,43970 E 0,41970 Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 66 of 70 25/09/2024, 12:33 - A função propriamente dita a ser integrada é ; - O limite inferior de integração é 0; - O limite superior de integração é 1; - A quantidade de intervalos (ou o tamanho de cada intervalo) é 8; - O método a ser utilizado é de Romberg. Aplicando os conceitos ensinados acerca desse método, temos: N 1 0,45986 2 0,45970 3 0,45970 Assim, obtemos I = 0,45970 Considerações �nais Como vimos, é possível empregar modelos matemáticos para resolução numérica de integrais definidas. f(x) = sen(x) R n n Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 67 of 70 25/09/2024, 12:33 Neste conteúdo, você estudou os principais métodos associados: Interpolação e Extrapolação. Os métodos de interpolação como os de Newton-Cotes, nas variantes dos Retângulos, Trapézios e de Simpson, são caracterizados pela simplicidade, mas requerem grande quantidade de passos para que apresentem um resultado mais preciso. Por sua vez, o método da extrapolação, analisado de acordo com a técnica de Romberg, apresenta melhores resultados a partir do emprego de uma fórmula mais elaborada de aproximação do valor real. Além disso, você também pode identificar como é simples a implementação desses modelos em ferramentas de suporte computacional. Em particular, vimos exemplos de implementação em Python, automatizando procedimentos e permitindo a rápida resolução desses métodos. Você não só conheceu os métodos, mas também sua implementação em ambiente computacional, de modo a utilizar essa importante ferramenta para a resolução de problemas clássicos e variados em Engenharia. Podcast Neste bate-papo, relembre os principais conceitos abordados com o intuito de reforçar os conhecimentos desenvolvidos no material. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 68 of 70 25/09/2024, 12:33 Explore + Para encontrar demonstrações e discussões acerca dos assuntos estudados, busque por vídeos no YouTube: • Integração Numérica – Método dos Trapézios • Método da Integração de Romberg e Algoritmo em Python Leia o artigo Uso de integração numérica em problemas de Engenharia, de Augusto Giacchini Kloth e Olga Harumi Saito, do departamento acadêmico de Matemática da UTFPR. Referências MOURA, D. F. C, Cálculo Numérico. Rio de Janeiro: SESES, 2017. 144 p. UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL. UFRGS. Cálculo Numérico: Um Livro Colaborativo Versão Python. Porto Alegre: UFRGS, 2019. Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 69 of 70 25/09/2024, 12:33 Material para download Clique no botão abaixo para fazer o download do conteúdo completo em formato PDF. Download material O que você achou do conteúdo? Relatar problema Integração numérica em Python https://stecine.azureedge.net/repositorio/00212ti/02521/index.html?bra... 70 of 70 25/09/2024, 12:33 javascript:CriaPDF() javascript:CriaPDF() javascript:CriaPDF() javascript:CriaPDF() javascript:CriaPDF() javascript:CriaPDF()