Integrais Numéricas

Ver Todos os Exercícios

Teoria

Introdução

E aí, pessoal, tudo bem?

Já pararam para pensar como os pilotos de foguetes sabem a velocidade do veículo que eles estão pilotando? Não tem como eles saírem do foguete e medir a velocidade lambendo a ponta do dedo e pondo a mão para o alto, né?

Acredita que, com o que você aprendeu em Cálculo 1 e Cálculo Numérico, você já consegue entender como se calcula a velocidade de um foguete?

Mas antes de vermos como os engenheiros da NASA calculam a velocidade dos foguetes, vamos relembrar rapidamente o que é uma integral e como podemos calculá-la no MATLAB. Vai anotando tudo aí, que depois desta aula você vai se sentir um pouquinho mais perto de trabalhar na sala de operações da NASA.

O que significa uma integral

Lembrando das aulinhas de Cálculo 1, a integral de uma função f ( x ) no intervalo [ a ,   b ] corresponde à área sob a curva f ( x ) , entre os pontos a e b :

Se resolvermos essa integral usando as regrinhas e as integrais de cada função, chegamos à solução analítica da integral, que corresponde ao valor exato da área sob a curva.

Mas as vezes o cálculo dessa integral é muito trabalhoso ou é impossível, nesses casos podemos usar um método numérico para encontrar um valor aproximado dessa área.

No MATLAB, podemos calcular a integral de uma função dentro de um intervalo definido com a função t r a p z ( ) , que usa o método dos trapézios para calcular a integral de uma função.

Neste método, a área sob a curva é dividida em vários trapézios, a área de cada trapézio é calculada e então somadas para obtermos a área total sob curva. A figura abaixo pode ajudar a entender esse método:

A = A 1 + A 2 + … + A n

Vale ressaltar que esse é um método numérico e a área que encontramos é um valor aproximado. Por isso, em quanto mais trapézios dividirmos a área sob a curva, mais preciso é o resultado dessa integração numérica.

A função t r a p z ( ) tem a seguinte estrutura:

A = t r a p z ( X , Y )

Ela nos retorna o resultado A da integração, que representa a área sob a curva Y , definida no intervalo X .

Bora ver um exemplo para entender como o t r a p z ( ) funciona. Digamos que eu queira integrar no MATLAB, usando o método do trapézio, a seguinte função:

f ( x ) = 250 - x 2 10

Quero fazer essa integração para um intervalo de 0 a 50 ( 0 ≤ x ≤ 50 ), dividindo este intervalo em pedacinhos de 10 . No MATLAB, isto ficaria assim:

Primeiro, criamos o vetor X , que vai de 0 a 50 , com um passo de 10 . Em seguida, calculamos f ( x ) para cada valor de X e armazenamos o resultado no vetor Y . Com isto, já temos as duas entradas para a função t r a p z ( ) e podemos fazer a integração numérica da função para o intervalo [ 0,50 ] , isto é, encontrar a área embaixo da curva neste intervalo.

Só por curiosidade, este é o resultado =)

Lembra que eu disse que quanto mais trapézios tivermos sob a curva, maior é a precisão do resultado? Para termos mais trapézios, temos que diminuir o comprimento dos pedacinhos em que dividimos o intervalo [ 0 ,   50 ] . Se em vez de eu usar um passo igual a 10 na integração e usar um passo igual a 1 , o vetor X fica assim:

E temos um resultado ligeiramente diferente:

Este resultado deve estar mais próximo da área real. Por isso, preste atenção ao passo que for usar na hora de resolver os problemas.

Tá, mas e a velocidade do foguete?

Agora que relembramos o que significa uma integral e como calculá-la numericamente no MATLAB, vamos voltar pro exemplo do foguete. Como podemos calcular sua velocidade com o que vimos até aqui?

A velocidade de um foguete é calculada a partir da integração numérica da aceleração, que é medida por sensores que enviam um sinal a um acelerômetro. O acelerômetro integra o sinal de aceleração no tempo para estimar a velocidade do foguete e, em seguida, integra a velocidade para ter uma estimativa do deslocamento.

Digamos que a aceleração de um foguete, partindo do repouso, foi medida durante 10   s . As medições são apresentadas na tabela abaixo:

Como podemos estimar a velocidade deste foguete após 10   s ? Lembra que obtemos a velocidade quando integramos a aceleração no tempo? Observe que na tabela temos as medições de aceleração a cada instante. Logo, podemos usar a função t r a p z ( ) do MATLAB, com as seguintes linhas de código:

Na primeira linha, criamos um vetor t que armazena a primeira linha da tabela, isto é, o instante de tempo de cada medição. Na segunda linha, criamos um vetor a que contém os valores de aceleração da tabela.

Usamos os vetores t e a como entrada da função t r a p z ( ) para encontrar a velocidade do foguete após 10   s . t r a p z ( ) retorna a variável v , que contém o resultado da integração numérica do vetor a em relação ao vetor t . Esta variável v representa a velocidade do foguete após 10   s , que equivale a 201,5   m / s :

Uma característica que vale destacar da função A = t r a p z ( X , Y ) é que, caso eu não entre com o vetor X representando o intervalo de integração, o MATLAB considera um espaçamento unitário. Vai ficar mais fácil de entender se voltarmos ao exemplo do foguete.

Suponha que eu não defina o vetor t no programa e entre somente com o vetor a :

Como a está sozinho na entrada da função t r a p z ( ) e possui 11 elementos, o MATLAB vai fazer a integração numérica considerando o intervalo de integração de 0   a 10 , indo de 1 em 1 . Na prática, o MATLAB vai fazer os cálculos da mesma forma do código anterior, quando um vetor t foi definido de acordo com a tabela. Vamos ver como fica o resultado?

Viu que deu na mesma? Isto aconteceu porque a medição de aceleração foi feita de 1 em 1 segundo.

E aí, curtiu a aula de hoje? Sentiu um pouco o gostinho de trabalhar com foguetes da NASA?

Lembra de fazer os exercícios para fixar o conteúdo, este pode ser mesmo um pequeno passinho para trabalhar como engenheiro da NASA =)

Tá, mas e a velocidade do foguete?

Exercícios Resolvidos

Exercício Resolvido #1

Seja

f x = ( x - 2 ) 2 ( x + 3 ) 3

Estime A = ∫ 0 1 f x d x pela regra dos trapézios utilizando apenas os valores tabelados abaixo:

Passo 1

O exercício pede para resolvermos a integral A = ∫ 0 1 f x d x com os valores da tabela, usando a regra dos trapézios.

Podemos fazer isso no MATLAB, usando a função t r a p z ( ) , que permite calcular a integral numérica a partir de dados tabelados. A função t r a p z ( ) terá como entrada a primeira linha da tabela, representando o intervalo de integração, e a segunda linha da tabela, representando f x .

Passo 2

O primeiro passo para resolvermos o exercício é entrarmos no MATLAB as informações dadas no enunciado. Crie um script novo no MATLAB e digite as duas linhas de código:

Na primeira linha de código, é criado um vetor x que vai de 0 a 1 , com um passo de 0,25 . Ele contém os valores da primeira linha da tabela e representa o intervalo de integração.

Na segunda linha de código, o vetor f armazena os dados de f ( x ) apresentados na tabela.

Após criarmos esses dois vetores, temos tudo o que precisamos para usar a função t r a p z ( ) .

Passo 3

A função t r a p z ( ) do MATLAB tem a seguinte estrutura:

A = t r a p z ( X , Y )

Ela nos retorna o resultado A da integração, que representa a área sob a curva Y , definida no intervalo X .

Neste exercício, o vetor x entra no lugar de X , pois representa o intervalo de integração, e o vetor f entra no lugar de Y , já que representa f x = ( x - 2 ) 2 ( x + 3 ) 3 para cada elemento do vetor x .

Inclua no seu código o comando:

O comando t r a p z ( x ,   f ) vai calcular a integral A = ∫ 0 1 f x d x e armazenar o resultado na variável A .

Ao rodarmos o programa, temos como resultado:

Resposta

A estimativa de A = ∫ 0 1 f x d x pela regra dos trapézios utilizando apenas os valores tabelados é de 0,0633 .

Exercício Resolvido #2

Com o software MATLAB, usando a Regra dos Trapézios, calcule as integrais das seguintes funções:

  1. ∫ 1 5 ( sin ⁡ x - x 2 + 3,1 ) d x
  2. ∫ - 1 3 ( e x + cos ⁡ x - 2,8 ) d x

Passo 1

O exercício pede para usarmos o MATLAB para calcular a integral numérica de duas funções, usando a Regra dos Trapézios. Isto quer dizer que nos é pedido para usar a função t r a p z ( ) do MATLAB, que calcula integrais usando o método dos trapézios.

Passo 2

A letra a pede para calcular a integral da função:

∫ 1 5 ( sin ⁡ x - x 2 + 3,1 ) d x

Crie um script novo no MATLAB e entre com as duas linhas de código:

Na primeira linha de código, foi criado um vetor x , que vai de 1 a 5 com um passo de 0,01 . Este vetor representa o intervalo de x no qual vamos integrar a função. Escolhi um passo de 0,01 para ter uma maior precisão no resultado, mas você pode escolher o passo que quiser. Mas lembre que quanto menor o passo, maior a precisão da integral numérica.

Na segunda linha de código, o comprimento de x foi armazenado na variável n .

Agora vamos calcular a função sin ⁡ x - x 2 + 3,1 para cada elemento de x . Para fazermos isso, teremos que criar um laço f o r , como no código abaixo:

Primeiramente, é criado um vetor de zeros de mesmo comprimento de x , por meio do comando z e r o s ( 1 ,   n ) . Este vetor é chamado de y e cada elemento dele vai ser substituído no laço f o r , sendo atualizado com o valor da função para cada valor de x .

Em seguida, inicia-se o laço f o r , criando-se uma variável de controle i que vai de 1 a n . No bloco do f o r , a função sin ⁡ x - x 2 + 3,1 é calculada para cada elemento do vetor x e o resultado é armazenado no elemento de mesma posição do vetor y .

Com os vetores x e y definidos, já podemos calcular a integral da letra a do exercício.

Passo 3

No passo anterior, foram criadas as duas entradas que precisamos para usar a função t r a p z ( ) para calcular a integral da função. Lembrando que t r a p z ( ) tem a seguinte estrutura:

A = t r a p z ( X , Y )

Ela nos retorna o resultado A da integração, que representa a área sob a curva Y , definida no intervalo X .

Para a letra a do exercício, inclua no seu script a seguinte linha de código:

A integral da letra a é resolvida por meio desta linha de código, usando os vetores que criamos no passo 2. Ao rodarmos o programa, temos como resposta:

Lembre que se você usou um passo diferente de 0,01 , seu resultado pode ser um pouquinho diferente, mas não significa que está errado. Você só dividiu a área sob a curva em partes de tamanho diferente do que eu fiz.

Pronto! Letra a resolvida. Vamos fazer a letra b .

Passo 4

A letra b pede para calcular a integral da função:

∫ - 1 3 ( e x + cos ⁡ x - 2,8 ) d x

Para resolvermos a letra b , usaremos o mesmo passo a passo que fizemos para a letra a . Em um novo script do MATLAB, digite as duas linhas de código:

De maneira similar ao passo 2, foi criado um vetor x , que vai de - 1 a 3 com um passo de 0,01 , na primeira linha de código. Escolhi novamente um passo de 0,01 , mas você pode usar o passo que quiser. Assim como no passo 2, este vetor representa o intervalo de x no qual vamos integrar a função.

Na segunda linha de código, o comprimento de x foi armazenado na variável n .

Agora vamos calcular a função e x + cos ⁡ x - 2,8 para cada elemento de x . Novamente, vamos criar um laço f o r :

Este pedaço de código faz exatamente a mesma coisa que o pedaço de código com o laço f o r   apresentado no passo 2.

Primeiramente, é criado um vetor y de zeros de mesmo comprimento de x . Cada elemento de y vai ser atualizado no laço f o r com o valor da função para cada elemento de x .

Em seguida, inicia-se o laço f o r , criando-se uma variável de controle i que vai de 1 a n . No bloco do f o r , a função e x + cos ⁡ x - 2,8 é calculada para cada elemento do vetor x e o resultado é armazenado no elemento de mesma posição do vetor y .

Executando este passo, já temos tudo o que precisamos para calcular a integral da letra b do exercício.

Passo 5

Vamos usar a função t r a p z ( ) para calcular a integral da letra b . Inclua no seu código o comando:

Este comando vai retornar a integral da função e x + cos ⁡ x - 2,8 , representada pelo vetor y , para o intervalo representado pelo vetor x . O resultado é armazenado na variável A , que, aós rodar o código, equivale a:

Lembre que seu resultado pode ser um pouquinho diferente do meu, caso você tenha usado um passo diferente na criação do vetor x .

Letra b resolvida!

Resposta

  1. ∫ 1 5 ( sin ⁡ x - x 2 + 3,1 ) d x ≈ - 28,6768
  2. ∫ - 1 3 ( e x + cos ⁡ x - 2,8 ) d x ≈ 9,5004

Exercício Resolvido #3

A tabela abaixo mostra a potência P fornecida às rodas motrizes de um carro em função da velocidade v .

Se a massa do carro é de m = 2000   k g , determine o intervalo de tempo ∆ t para que o carro acelere de 1   m / s para 6   m / s . Use o método dos trapézios para a integração. Dica:

∆ t = m ∫ 1   m / s 6   m / s v P d v

que pode ser deduzido a partir da lei de Newton F = m ( d v / d t ) e a definição de potência P = F v .

Passo 1

O enunciado pede para resolvermos a integral:

∆ t = m ∫ 1   m / s 6   m / s v P d v

Usando os dados de v e P da tabela. Como temos valores numéricos de v e P , isto significa que devemos usar integração numérica para resolvermos o problema (que foi o que o enunciado pediu, no final das contas). O resultado da integral corresponde ao intervalo de tempo ∆ t que o carro de 2000   k g leva para acelerar de 1   m / s a 6   m / s .

Como o enunciado pediu para usarmos o método dos trapézios para calcular a integral, usaremos a função t r a p z ( ) do MATLAB para resolver a questão.

Passo 2

O primeiro passo para resolver o problema é entrar com os dados do enunciado no MATLAB, para daí calcularmos a integral. Crie um script novo no MATLAB e digite as três linhas de código abaixo:

Na primeira linha, foi criada uma variável m para armazenar a massa do carro, de 2000   k g .

Na segunda linha, foi criado um vetor v para armazenar os valores de velocidade da primeira linha da tabela. Não entramos com v = 0 (primeira coluna da tabela) pois queremos integrar de 1 a 6   m / s .

Na terceira linha, foi criado um vetor P para armazenar os valores de potência da segunda linha da tabela. Novamente, não entramos com a potência da primeira coluna da tabela, pois não faz parte do intervalo de integração.

Note que o vetor P é multiplicado por 1000 . Isto foi feito para converter k W para W , para obtermos ∆ t em segundos. Se não fizermos esta conversão, ∆ t será dado em milissegundos.

Passo 3

Depois de entrarmos as informações dadas no enunciado no nosso script do MATLAB, vamos criar um vetor representando a função de dentro da integral: v / P . Para isto, inclua no seu código o comando:

Com este comando, dividimos cada elemento de v pelo elemento de P que esteja na mesma posição, o que resulta no vetor y .

O vetor y corresponde à função a ser integrada.

Passo 4

Após concluir o passo 3, temos todos os recursos para resolver a integral:

∆ t = m ∫ 1   m / s 6   m / s v P d v

Usando a função t r a p z ( ) do MATLAB. Lembrando que t r a p z ( ) tem a seguinte estrutura:

A = t r a p z ( X , Y )

Ela nos retorna o resultado A da integração, que representa a área sob a curva Y , definida no intervalo X .

Para nosso problema, o vetor v entraria no lugar de X e o vetor y no lugar de Y . No seu programa, digite a linha de código:

Este comando resolve a integral:

∫ 1   m / s 6   m / s v P d v

Para encontrarmos ∆ t , ainda temos que multiplicar o resultado da integral por m :

O produto m * A resulta no intervalo de tempo para o carro de 2000   k g acelerar de 1   m / s para 6   m / s . O intervalo de tempo é armazendo na variável d e l t a _ t .

Ao rodarmos o código, temos o seguinte resultado:

O valor de d e l t a _ t é a resposta do exercício.

Resposta

O carro de 2000   k g demora 1,2985   s para acelerar de 1   m / s para 6   m / s .

Exercício Resolvido #4

A massa m é ligada a uma mola de comprimento livre b e rigidez k . O coeficiente de atrito entre a massa e a haste horizontal é μ . A aceleração da massa pode ser demonstrada como x ¨ = - f ( x ) , onde

f x = μ g + k m ( μ b + x ) 1 - b b 2 + x 2

Se a massa é liberada a partir do repouso em x = b , sua velocidade em x = 0 é dada por

v 0 = 2 ∫ 0 b f ( x ) d x

Calcule v 0 por meio de integração numérica usando como dados m   =   0,8   k g , b   =   0,4   m , μ = 0,3 , k = 80   N / m e g   =   9,81   m / s ² .

Passo 1

O exercício pede para calcularmos a velocidade v 0 resolvendo a equação:

v 0 = 2 ∫ 0 b f ( x ) d x

Para encontrarmos v 0 , antes temos que resolver a integral dentro da raiz, usando integração numérica. Para solucionar a integral, podemos usar a função t r a p z ( ) do MATLAB.

O enunciado nos dá como dados:

Com os valores da tabela, podemos definir o intervalo de integração, que vai de 0 a b , e podemos calcular f ( x ) . Desta forma, temos as entradas de t r a p z ( ) .

Passo 2

A primeira coisa que devemos fazer é entrar com os dados fornecidos pelo enunciado no MATLAB. Crie um novo script e digite as linhas de código:

Com estes comandos, entramos no programa os dados da tabela apresentada no passo 1. Chamei a variável que armazena o coeficiente de atrito de m u , que é uma das formas de pronunciar μ , já que não podemos usar letras gregas como nome de variáveis no MATLAB.

Vamos agora criar o intervalo de integração. Ele será representado por um vetor x , construído com o comando:

O vetor x vai de 0 a b , com um passo de 0,001 . Eu adotei o passo de 0,001 para gerar um resultado mais preciso na integração mais pra frente, mas você pode adotar o passo que quiser. Só não se esqueça que o tamanho do passo tem impacto direto sobre a precisão da integração: quanto menor o passo, mais precisa é a integração numérica.

Após ter digitado o comando para criar x , adicione logo abaixo a linha de código:

Esta linha vai armazenar a quantidade de elementos do vetor x na variável l , por meio da função l e n g t h ( ) , que retorna o comprimento de um vetor. Precisamos do número de elementos de x para podermos calcular f ( x ) usando um laço f o r .

Agora, vamos criar um vetor representando a função ser integrada: f x = μ g + k m ( μ b + x ) 1 - b b 2 + x 2

Como dito, usaremos um laço f o r para isto, por meio das linhas de código abaixo:

Primeiramente, é criado um vetor de zeros de mesmo comprimento de x , por meio do comando z e r o s ( 1 ,   l ) . Este vetor é chamado de f e cada elemento dele vai ser substituído no laço f o r pelo resultado de f x para cada elemento do vetor x .

Em seguida, inicia-se o laço f o r , criando-se uma variável de controle i que vai de 1 a l . No bloco do f o r , a função f x é calculada para cada elemento do vetor x e o resultado é armazenado no elemento de mesma posição do vetor f .

Concluído este passo, temos tudo o que precisamos para fazer a integração.

Passo 3

Para resolvermos a integral, usaremos a função t r a p z ( ) , que tem o seguinte formato:

Q = t r a p z ( X , Y )

Ela nos retorna o resultado Q da integração, que representa a área sob a curva Y , definida no intervalo X .

Para nosso problema, o vetor x entraria no lugar de X e o vetor f no lugar de Y . No seu programa, digite a linha de código:

Este comando resolve a integral:

Q = ∫ 0 b f ( x ) d x

Para encontrarmos v 0 , ainda precisamos fazer algumas continhas com o resultado da integral, armazenado na variável Q , retornada por t r a p z ( ) . Lembre que v 0 é dado por:

v 0 = 2 ∫ 0 b f ( x ) d x = 2 Q

No seu script, digite logo abaixo de Q   =   t r a p z ( x , f ) a linha de código:

Esta linha calcula v 0 usando a expressão dada no enunciado e armazena o resultado em v 0 .

Ao executarmos nosso programa, temos o seguinte resultado para v 0 :

Resposta

A velocidade da massa m em x = 0 é de v 0 = 2,4977   m / s .

Exercício Resolvido #5

A análise do fluxo de um líquido em duto tem aplicação em muitos sistemas diferentes, incluindo o estudo em veias e artérias no corpo humano, o sistema hidráulico de uma cidade, o sistema de irrigação de uma fazenda, o sistema de jato de tinta de uma impressora, etc.

O atrito de um fluxo ao passar num oleoduto circular gera a chamada velocidade de perfil no fluido.

O óleo que está em contato com as paredes do duto não está se movendo na mesma velocidade que o óleo no centro do fluido. O diagrama abaixo mostra como a velocidade do óleo varia de acordo com o diâmetro do duto e define as variáveis usadas para esta análise:

A velocidade de perfil é definida pela seguinte equação:

v r = v m a x 1 - r r 0 1 n

onde n é um número inteiro entre 5 e 10 que define o contorno do escoamento do óleo. A velocidade média de escoamento do óleo pode ser calculada integrando-se a velocidade de perfil no intervalo de 0 a r 0 :

A = 2 v m a x r 0 2

V = A ∫ 0 r 0 r 1 - r r 0 1 n d r

Os valores de v m a x e de n podem ser medidos experimentalmente, e o valor de r 0 é o próprio raio do tubo. Escreva um programa no MATLAB para integrar a velocidade de perfil e assim determinar a velocidade média do óleo no duto.

Conside n = 6 , v m a x = 1,7   m / s e r 0 = 0,2   m .

Passo 1

O enunciado pede para encontrarmos a velocidade média de um óleo escoando em um duto de raio r 0 = 0,2   m , com uma velocidade máxima de v m a x = 1,7   m / s . Para isto, devemos resolver no MATLAB a seguinte integral:

V = A ∫ 0 r 0 r 1 - r r 0 1 n d r

onde A = 2 v m a x r 0 2 .

O resultado desta integral é a velocidade média do óleo. Devemos considerar n = 6 .

Para calcularmos a integral do enunciado, podemos usar a função t r a p z ( ) do MATLAB.

Passo 2

O primeiro passo é entrarmos com as informações do enunciado no MATLAB. Crie um script novo e digite as linhas de código:

Criamos variáveis para armazenar os valores n = 6 , v m a x = 1,7   m / s e r 0 = 0,2   m . Respectivamente, são as variáveis n , v _ m a x e r _ 0 .

Em seguida, calculamos a constante A = 2 v m a x r 0 2 , que é armazenada na variável A .

O passo seguinte consiste em criar as entradas para a função t r a p z ( ) .

Passo 3

Vamos criar o intervalo de integração com as seguintes linhas de código:

Na primeira linha, é criado um vetor r que vai de 0 a r _ 0 , com um passo de 0,001 . O vetor r representa o intervalo de integração pra encontrar a velocidade média do óleo no duto, lembrando que r _ 0 é o raio do duto.

Eu adotei o passo de 0,001 para gerar um resultado mais preciso na integração mais pra frente, mas você pode adotar o passo que quiser. Só não se esqueça que o tamanho do passo tem impacto direto sobre a precisão da integração: quanto menor o passo, mais precisa é a integração numérica.

Na s