Equações Diferenciais Ordinárias (EDO)

Ver Todos os Exercícios

Teoria

Introdução

E aí, jovens do meu Brasil varonil? Tudo joia? Lembram das Equações Diferenciais Ordinárias, as temidas EDOs? Não?

Hoje vamos aprender a resolver EDOs e sistemas de EDOS no MATLAB. Mas antes de aprendermos mais uma função topzera do MATLAB, vamos dar uma relembrada rápida no que são EDOs.

Vamos começar com as EDOs de primeira ordem. Uma EDO de primeira ordem é uma equação que tem essa carinha:

y ' = d y d x = g ( x , y )

onde x é uma variável independente.

Como podemos ver na equação acima, uma EDO é uma equação que envolve uma função, sua derivada e uma variável independente. Resolvemos uma EDO para encontrar essa função, no caso, y = f ( x ) .

Para encontrarmos y , precisamos integrar y ’ e isso normalmente gera uma família de funções. Para especificar uma única solução, usamos uma condição inicial, por exemplo:

y 0 = 1

A EDO de primeira ordem tem esse nome porque nela a derivada de maior ordem é a primeira derivada da função. Caso a EDO tivesse uma derivada segunda, ela seria de segunda ordem, e assim por diante.

“Tá, mas por que temos uma aula de MATLAB específica pra EDOs?”

O porquê, meu jovem gafanhoto, é que dependendo da EDO, não conseguimos resolvê-la analiticamente, na mão. Algumas podem ter umas funções bem diferentonas. Por isso, muitas vezes resolvemos as EDOs usando métodos numéricos. E o MATLAB já tem algumas funções prontas para resolver EDOs, baseadas nos métodos de Runge-Kutta.

“Runge o quê?”, você deve estar se perguntando.

Normalmente, a gente aprende os métodos de Runge-Kutta nas aulas de Cálculo Numérico. Eles são os métodos mais populares para solucionar EDOs.

Para entender esta aula de MATLAB sobre soluções de EDOs, você não precisa lembrar tintim por tintim desses métodos, só saber que eles existem e que o MATLAB usa eles para encontrar soluções numéricas de EDOs. Mas caso queira conhecer mais sobre os métodos de Runge-Kutta, aqui no Responde Aí tem uma aulinha bem legal sobre eles ;D

Resolvendo EDOs de primeira ordem no MATLAB

Depois de relembrarmos rapidinho o que é uma EDO, vamos ver como usar o MATLAB para calcular soluções numéricas para EDOs.

O MATLAB possui várias funções chamadas de o d e para solucionar EDOs de primeira ordem, sendo a principal diferença entre elas a precisão do resultado final. Algumas funções dão soluções mais precisas, outras nem tanto.

Vamos ver nesta aula a função o d e 45 , que é a que o MATLAB recomenda, pois resolve a maior parte dos problemas de EDO e tem uma precisão boa, mas todas as funções o d e têm uma sintaxe parecida.

A função o d e 45 tem o seguinte formato:

[ x , y ]   =   o d e 45 ( E D O _ f u n , x _ i n t , y 0 )

Vemos que ela exige três entradas:

  • E D O _ f u n : uma função representando a EDO de primeira ordem y ' = g ( x , y ) ;
  • x _ i n t : intervalo de integração, normalmente no formato [ x 0   x f ] : o intervalo começa em x 0 e termina em x f ;
  • y 0 : condição inicial de y = f ( x ) em x 0 .

E ela nos dá duas saídas: um vetor com valores de x (começando em x 0 e terminando em x f , correspondendo ao nosso intervalo de integração) e outro com os valores de y (iniciando em y 0 e terminando no valor de y correspondente a x f ), representando a solução da EDO. Em outras palavras, 𝑜𝑑𝑒45 nos retorna os os pontos que representam a função y = f ( x ) para o intervalo de integração x _ i n t .

Vamos de exemplo para ficar mais claro. Vamos resolver a EDO usando a o d e 45 :

y ' = g x , y = 3 x ²

No intervalo [ 2,4 ] , assumindo como condição inicial f ( 2 ) = 0,5 .

O primeiro passo é criar uma função no MATLAB representando a EDO:

Neste print, é criada uma função chamada g 1 que recebe valores de x e y . Ela retorna d y , que é a derivada de y e nossa EDO calculada para diversos valores de x .

Em um novo script, entre com a função ode45 para encontrarmos a solução de y ' = 3 x ² :

Seguindo a estrutura de o d e 45 : [ x , y ]   =   o d e 45 ( E D O _ f u n , x _ i n t , y 0 )

No lugar de 𝐸𝐷𝑂_𝑓𝑢𝑛, coloque o nome da função que você criou representando a EDO: ' g 1 ’. Não esqueça de pôr o nome entre aspas simples, como no print acima.

No lugar de x _ i n t , entre com o vetor de dois elementos [ 2   4 ] , indicando o intervalo de integração. Neste caso, x 0 = 2 e x f = 4 .

No lugar de y 0 , entre com 0,5 , que é a nossa condição inicial.

Ao rodarmos o programa, serão gerados os dois vetores x e y , representando a solução numérica da EDO.

Uma maneira legal de ver o resultado é por meio de gráficos, já que a o d e 45 nos retorna coordenadas. Neste exemplo, podemos também comparar a solução encontrada pela o d e 45   com a solução analítica de y ' = 3 x ² , que é:

y = f x = x 3 - 7,5

Para isto, no mesmo script onde usamos a função o d e 45 , digite as linhas de código:

Na primeira linha, calculamos y = f ( x ) com a solução analítica da EDO para cada valor do vetor x criado por o d e 45 e armazenamos o resultado no vetor y _ a n l .

Na segunda linha, geramos o gráfico com as curvas da solução analítica e da solução numérica, apresentado abaixo:

A curva azul é a solução analítica e as bolinhas vermelhas representam a solução numérica dada por o d e 45 . Viu como elas são bem próximas? :)

Sistemas de EDOs de primeira ordem

Agora, digamos que queremos resolver um sistema de EDOs como o abaixo:

y ' 1 = y 1 + 2 y 2 y ' 2 = 3 y 1 + 2 y 2

Onde y 1 = f ( x ) e y 2 = g ( x ) .

As entradas e as saídas da função o d e 45 vão ser um pouquinho diferentes, mas o funcionamento segue a mesma lógica.

Vamos criar uma função no MATLAB, chamada de e d o _ s i s t , representando o sistema de EDOs:

Como queremos encontrar duas funções ( y 1 e y 2 ), a entrada y da função e d o _ s i s t é um vetor de dois elementos, o primeiro elemento representando y 1 e o segundo elemento, y 2 . O vetor representando as derivadas das funções y 1 e y 2 , d y d x , também é um vetor de dois elementos.

Para resolver o sistema de EDOs, digite os seguintes comandos em um novo script do MATLAB:

A primeira linha cria as condições iniciais de y 1 e y 2 . Elas são representadas por um vetor de dois elementos, y 0 = [ 1 1 ] T . Se se tratasse de um sistema de EDOs com três EDOs, y 0 teria que ter três elementos, e assim por diante.

A segunda linha define o intervalo de integração da variável independente x , que vai de 7 a 10 .

Em seguida, usamos a o d e 45 para resolver o sistema. A saída será um vetor x , representando a variável independente, e uma matriz y . A matriz y tem duas colunas, a primeira representando y 1 e a segunda, y 2 . Se tivesse uma terceira função envolvida, esta matriz teria três colunas, entendeu?

Novamente, podemos ver o resultado do sistema de EDOs em forma de gráfico:

Este comando plota a primeira coluna da matriz y em função de x , representando y 1 . Ele também plota, no mesmo gráfico, uma curva dos valores da segunda coluna da matriz y em função do vetor x , representando y 2 .

Vamos ver como ficou? Rodando o programa, temos este lindo gráfico:

A curva em azul representa y 1 e a vermelha, y 2 .

E as EDOs de ordem superior?

Lembra que eu falei que o o d e 45 só resolve EDOs de primeira ordem? Por isso, para resolver EDOs de ordem superior no MATLAB, as transformamos em um conjunto de equações de primeira ordem.

Vamos de exemplo. Considere a EDO linear de segunda ordem:

y ' ' = g x , y , y ' = y ' 1 - y 2 - y

Queremos encontrar y = f ( x ) . Para transformar a EDO de segunda ordem em um sistema de EDOs de primeira ordem, vamos definir duas novas funções:

u 1 x = y '

u 2 x = y

Substituindo u 1 e u 2 na EDO original, conseguimos gerar um sistema de EDOs de primeira ordem:

u ' 1 = y ' ' = g x , u 2 , u 1 = u 1 1 - u 2 2 - u 2

u ' 2 = y ' = u 1

Desta forma, podemos resolver o problema como fizemos na seção anterior. Vamos criar uma função no MATLAB chamada de e d o _ o r d 2 com o sistema de EDOs de primeira ordem:

Vamos resolver o sistema de EDOs para o intervalo [ 0 ,   20 ] e com condições iniciais:

y ' 0 = u 1 0 = 0

y 0 = u 2 0 = 0,25

Para encontrarmos a solução do sistema de EDOs, criamos um novo script com as linhas de código:

A primeira linha de código define as condições iniciais para u 1 e u 2 e as armazena no vetor y 0 .

A segunda define o intervalo de integração no vetor de dois elementos x _ i n t .

A terceira linha usa a função o d e 45 para resolver o sistema de EDOs. Ela vai retornar o vetor x , com valores de 0 a 20 , e a matriz u , que possui duas colunas: uma representando u 1 , isto é, a primeira derivada y ’ , e outra coluna representando u 2 , que é a função y = f ( x ) que queríamos encontrar.

A quarta linha gera um gráfico contendo uma curva da primeira coluna de u em função de x e outra curva com os dados da segunda coluna de u em função de x . Em outras palavras, o gráfico terá uma curva representando u 1 , que é a primeira derivada da função y   =   f ( x ) , e outra representando u 2 , que é a própria função y   =   f ( x ) .

Rodando o programa, temos este gráfico maneiro:

Em azul, temos a curva de u 1 , isto é, a curva de y ' . Em vermelho, temos a curva de u 2 , que na verdade é a função y = f ( x ) que estávamos procurando.

Ufa! Vimos bastante coisa hoje, né? Agora é hora de praticar ;D Faça os exercícios que montei com muito carinho para ficar craque em resolver EDOs!

Resolvendo EDOs de primeira ordem no MATLAB

Sistemas de EDOs de primeira ordem

E as EDOs de ordem superior?

Exercícios Resolvidos

Exercício Resolvido #1

Seja a equação:

y ' = g x , y = - y

  1. Assumindo como condição inicial f ( 0 )   =   - 3.0 , resolva, no MATLAB, essa equação diferencial no intervalo de [ 0 ,   2 ] e plote o gráfico com os valores correspondentes de y .
  2. Sendo y   =   - 3 e - x a solução analítica para esta equação, faça um novo gráfico que compare a solução analítica com a numérica.

Passo 1

O exercício nos dá uma EDO, uma condição inicial e um intervalo e nos pede para encontrar a solução da EDO y = f ( x ) . Essas são as três entradas da função o d e 45 ( ) do MATLAB, que resolve EDO de primeira ordem usando métodos de Runge-Kutta.

Em seguida, ele nos pede para gerarmos um gráfico de y = f ( x ) . As saídas da função o d e 45 ( ) são valores de x e y , representando a solução da EDO. Essas saídas podem ser usadas para plotar o gráfico de y = f ( x ) .

Portanto, usaremos o d e 45 ( ) para resolver a letra a do exercício.

A letra b dá a solução analítica da EDO e pede para gerar um novo gráfico comparando as curvas da solução analítica e da solução numérica, isto é, a solução obtida usando o d e 45 ( ) na letra a.

Passo 2

Primeiramente, vamos relembrar a função o d e 45 , para vermos o que entraremos no MATLAB. A função o d e 45 possui a seguinte estrutura:

[ x , y ]   =   o d e 45 ( E D O _ f u n , x _ i n t , y 0 )

Ela exige três entradas:

  • E D O _ f u n : uma função representando a EDO de primeira ordem y ' = g ( x , y ) . Neste exercício, E D O _ f u n é a EDO y ' = g x , y = - y ;
  • x _ i n t : intervalo de integração, normalmente no formato [ x 0   x f ] : o intervalo começa em x 0 e termina em x f . Neste exercício, x 0 = 0 e x f = 2 , logo, x _ i n t = 0 2 ;
  • y 0 : condição inicial de y = f ( x ) em x 0 = 0 . Neste exercício, y 0 = - 3 .

E ela nos dá duas saídas: um vetor com valores de x (começando em x 0 = 0 e terminando em x f = 2 , correspondendo ao nosso intervalo de integração) e outro com os valores de y (iniciando em y 0 = - 3 e terminando no valor de y correspondente a x f ), representando a solução da EDO. Em outras palavras, 𝑜𝑑𝑒45 nos retorna os pontos que representam a função y = f ( x ) para o intervalo de integração x _ i n t . Usaremos os vetores x e y para gerar o gráfico pedido na letra a.

Agora, crie um script novo no MATLAB para criarmos uma função com a EDO do enunciado. Nesse script, digite as linhas de código:

Com estas linhas de código, é criada a função E D O _ e x 1 , representando a EDO do enunciado. Ela recebe valores de x e y e retorna a derivada d y .

Após criar a função E D O _ e x 1 , abra um novo script para implementar a função o d e 45 . Neste script, digite as linhas de código:

Na primeira linha, entramos com o intervalo de integração x _ i n t = 0 2 .

Na segunda linha, entramos com o valor inicial y 0 = - 3 .

Na terceira linha, entramos com a função o d e 45 para encontrar uma solução da EDO. Repare que, no lugar de 𝐸𝐷𝑂_𝑓𝑢𝑛, coloquei um string com o nome da função que representa a EDO: ' E D O _ e x 1 ’. Não esqueça de pôr o nome entre aspas simples, como no print acima.

A solução da EDO é dada pelos vetores x e y _ n u m , saídas de o d e 45 .

Passo 3

Com os códigos do passo 2, encontramos a solução da EDO. Mas falta ainda uma coisinha: gerar o gráfico de y = f ( x ) . Para isto, usaremos a saída de o d e 45 os vetores x e y _ n u m .

No mesmo script onde você implementou o d e 45 , digite as linhas de código:

Na primeira linha, pedimos ao MATLAB para criar uma figura de índice 1. Fazemos isso já prevendo que mais para frente plotaremos outro gráfico, para a letra b do exercício, e quermos que estes gráficos sejam gerados em janelas diferentes.

O comando p l o t na segunda linha efetivamente gera o gráfico da solução da EDO.

Rode seu programa e você terá este lindo gráfico:

Pronto! Letra a respondida ;)

Passo 4

Vamos responder à letra b do exercício. Ela nos diz que a solução analítica de y ’ = - y é:

y   =   - 3 e - x

E pede para gerarmos um gráfico comparando a solução analítica com a numérica, obtida na letra a.

A primeira coisa a fazer é gerar valores de y da solução analítica para plotar a curva. Para isto, no mesmo script onde você resolveu a letra a, digite a linha de código:

Esta linha de código é a função y   =   - 3 e - x . Ela usa o vetor x gerado pela o d e 45 e calcula a solução analítica para cada elemento de x . Os resultados são armazenados no vetor y _ a n .

Em seguida, para gerar o gráfico comparando a solução analítica com a numérica, entre os comandos:

Na primeira linha, pedimos ao MATLAB para gerar uma figura com índice 2. Este comando serve para gerar os gráficos das letras a e b em janelas diferentes.

Na segunda linha, é usado o p l o t ( ) para gerar as curvas da solução analítica e da solução numérica. O primeiro par x ,   y _ a n plota a solução analítica y _ a n em função de x . O segundo par x , y _ n u m plota a solução numérica y _ n u m em função de x , e pede que a curva gerada seja composta por bolinhas ( ‘ o ’ ).

Na terceira linha, é adicionada uma legenda ao gráfico, para sabermos qual curva é qual. A legenda ‘ A n a l i t i c o ’ corresponde ao primeiro par x ,   y _ a n e a legenda ‘ N u m e r i c o ’ , ao segundo par x , y _ n u m .

Basta rodar o programa que você terá a solução da letra b :)

Resposta

A curva azul representa a solução analítica e a curva composta por círculos vermelhos corresponde à solução numérica.

Exercício Resolvido #2

Dado o Problema de Valor Inicial (PVI) abaixo:

u ' ' + 4 t u ' - 12 u = 2 t + 1 , 1 ≤ t ≤ 3 , u 1 = 1 ,   u ' 1 = 2

  1. Reescreva o PVI como um sistema de equações diferenciais de primeira ordem;
  2. Resolva o sistema de EDO e plote a função u ( t ) e sua primeira derivada.

Passo 1

O enunciado nos dá uma EDO de segunda ordem (tem uma segunda derivada na equação) e primeiro nos pede para convertê-la em um sistema de EDOs de primeira ordem.

Esta etapa é necessária para respondermos à letra b usando o MATLAB, que só resolve EDOs de primeira ordem. A letra b nos pede para resolver o sistema de EDOs de primeira ordem construído na letra a e gerar gráficos da solução do sistema, que é a função u ( t ) , e de sua primeira derivada.

Resolveremos o sistema de EDOs criado na letra a com a função o d e 45 . O enunciado também nos deu todas entradas necessárias para usarmos ode45: um intervalo de integração e valores iniciais para a função u ( t ) e sua derivada primeira.

Passo 2

Vamos começar com a letra a. Para converter u ' ' + 4 t u ' - 12 u = 2 t + 1 em um sistema de EDOs de primeira ordem, vamos dizer que:

w 1 t = u ' ( t )

w 2 t = u ( t )

Substituindo w 1 e w 2 na EDO original, temos:

w 1 ' + 4 t w 1 - 12 w 2 = 2 t + 1

Isolando w 1 ' na equação acima, temos:

w 1 ' = - 4 t w 1 + 12 w 2 + 2 t + 1

Esta é a primeira equação do sistema de EDOs de primeira ordem.

Para construir a segunda equação do sistema, considere que:

w ' 2 t = u ' = w 1 t

Logo, o sistema de EDOs de primeira ordem construído a partir de u ' ' + 4 t u ' - 12 u = 2 t + 1 é:

w 1 ' = - 4 t w 1 + 12 w 2 + 2 t + 1 w ' 2 t = w 1 t

Pronto! Letra a resolvida.

Passo 3

A letra b pede para resolver o sistema de EDOs de primeira ordem obtido na letra a. Para isto, usaremos a função o d e 45 do MATLAB, que tem a estrutura:

[ t , w ]   =   o d e 45 ( E D O _ f u n , t _ i n t , t 0 )

Ela tem três entradas:

  • E D O _ f u n : uma função representando o sistema de EDOs de primeira ordem, no caso:
  • w 1 ' = - 4 t w 1 + 12 w 2 + 2 t + 1 w ' 2 t = w 1 t

  • t _ i n t : intervalo de integração, normalmente no formato [ t 0   t f ] : o intervalo começa em t 0 e termina em t f . Neste exercício, t 0 = 1 , t f = 3 , logo t _ i n t = 1 3 ;
  • t 0 : vetor com as condições iniciais de w 1 t = u ' ( t ) e w 2 t = u t   em t 0 .

Como u 1 = 1   e   u ' 1 = 2 , temos que w 1 1 = u ' 1 = 2 e w 2 1 = u 1 = 1 . Logo, t 0 = 2 1 .

A função o d e 45 nos dará duas saídas: um vetor com valores de t (começando em t 0 e terminando em t f , correspondendo ao nosso intervalo de integração) e uma matriz w de duas colunas com os valores de w 1 e w 2 (iniciando em t 0 e terminando nos valores de w 1 e w 2 correspondentes a t f ), representando a solução do sistema de EDOs. A primeira coluna de w corresponde a w 1 e a segunda coluna de w corresponde a w 2 .

Em outras palavras, 𝑜𝑑𝑒45 nos retorna os pontos que representam a função u ( t ) , na forma de w 2 ( t ) , e sua primeira derivada, na forma de w 1 ( t ) , para o intervalo de integração t _ i n t .

Bora implementar tudo isso no MATLAB. Abra um script novo e crie a função E D O _ e x 2 , com o sistema de EDOs obtido na letra a:

Como queremos encontrar duas funções ( w 1 e w 2 ), a entrada w da função E D O _ e x 2 é um vetor de dois elementos, o primeiro elemento representando w 1 e o segundo elemento, w 2 . O vetor representando as derivadas das funções w 1 e w 2 , d w d t , também é um vetor de dois elementos.

Para resolver o sistema de EDOs, digite os seguintes comandos em um novo script do MATLAB:

A primeira linha cria o intervalo de integração t _ i n t = 1 3 .

A segunda linha cria as condições iniciais de w 1 e w 2 . Elas são representadas por um vetor de dois elementos, t 0 = 2 1 .

Em seguida, usamos a o d e 45 para resolver o sistema. Repare que no lugar de E D O _ f u n coloquei uma string ‘ E D O _ e x 2 ’ . Essa string é o nome da função criada para representar o sistema de EDOs.

A saída de o d e 45 será um vetor t , representando a variável independente, e uma matriz w com duas colunas, a primeira representando w 1 e a segunda, w 2 . A saída representa a solução do sistema de EDOs.

Passo 4

Após obtermos a solução do sistema EDOs, podemos gerar as curvas de u ( t ) e de sua primeira derivada, u ’ ( t ) , usando as saídas de o d e 45 . Como a 𝑜𝑑𝑒45 nos retorna os pontos que representam w 1 ( t ) na primeira coluna de w e os pontos que representam w 2 ( t ) na segunda coluna de w , consequentemente temos u ' ( t ) e u ( t ) .

Para plotar u ( t ) e u ’ ( t ) , entre os seguintes comandos no script onde você usou a função o d e 45 :

Na primeira linha, usamos a função p l o t para gerar, em um mesmo gráfico, as curvas de u ( t ) e u ’ ( t ) . O primeiro par t , w ( : , 2 ) pega a segunda coluna de w , correspondendo a w 2 , isto é, a u ( t ) , e a plota em função de t . Da mesma maneira, o segundo par t , w ( : , 1 ) pega a primeira coluna de w , correspondendo a w 1 , isto é, a u ' ( t ) , e a plota em função de t .

Na segunda linha, acrescentamos uma legenda ao gráfico, indicando que o par t , w ( : , 2 ) representa u ( t ) e o par t , w : , 1 representa u ' t = d u / d t .

Para obter o resultado da letra b, rode o programa.

Resposta

  1. w 1 ' = - 4 t w 1 + 12 w 2 + 2 t + 1 w ' 2 t = w 1 t

Exercício Resolvido #3

Uma avançada turbina chamada de ventilador não canalizado (UDF) é uma das novas tecnologias mais promissoras que tem sido desenvolvida para o futuro transporte de aeronaves.

Turbinas, que têm sido usadas por décadas, combinam o poder e a confiabilidade dos motores a jato com a eficiência dos propulsores. Eles constituem uma importante melhoria dos antigos propulsores movidos a pistão. Suas aplicações têm sido limitadas a pequenas aeronaves do tipo comutador, isto porque eles não são tão rápidos, nem poderosos quanto as turbinas usadas em grandes aeronaves. Esse tipo de turbina (UDF) implica em avanços significantes na tecnologia de propulsão. Novos materiais, aerodinâmica e velocidades de alta rotação habilitam esta turbina a voar tão rápido quanto as turbinas a jato, e com grande aproveitamento de combustível. A UDF é também menos barulhenta que o sistema convencional de turbinas.

Durante um teste de vôo de uma turbina UDF de uma aeronave, o motor é levado para um nível de 40   N , o que significa os 20   k g da aeronave tendo alcançado uma velocidade de 180   m / s . As válvulas de regulação do motor são então levadas para atingir um nível de 60   N , e a aeronave começa a acelerar.

A equação diferencial que determina a aceleração da aeronave é:

a = T m - 0,000062 v 2

Onde:

a = d v d t

T   =   nível atingido em N

m   =   massa em k g

v   =   velocidade em m / s

Escreva no MATLAB um programa para determinar a nova velocidade depois de uma mudança no nível do motor através do gráfico da solução para a equação diferencial. Considere um intervalo de tempo de 6 min.

Passo 1

O enunciado nos dá a seguinte EDO de primeira ordem:

a = d v d t = v ' = T m - 0,000062 v 2

Substituindo m por 20   k g , que é o valor da massa da aeronave, temos a EDO:

v ' = g ( t , v ) = T 20 - 0,000062 v 2

Onde T é o nível do motor em N , o tempo t em s é a variável independente e v ( t ) , a velocidade da aeronave em m / s , é a função que queremos descobrir resolvendo a EDO.

O enunciado diz que quando o nível do motor é T =   40   N , a aeronave atinge uma velocidade de 180   m / s . Em seguida, o nível do motor sobe para T =   60   N . Ao final, nos é perguntado qual é a velocidade da aeronave com o motor atinge um nível de T =   60   N . Para encontrar esta velocidade, temos que considerar T = 60 na EDO acima. Logo, a EDO que temos que encontrar uam solução é:

v ' = g ( t , v ) = 60 20 - 0,000062 v 2

De maneira indireta, o enunciado nos dá o intervalo de integração e a condição inicial para resolver a EDO.

O enunciado nos diz pra considerarmos um intervalo de 6 min. Considerando o instante inicial de t 0 = 0 e o final t f = 6 * 60 = 360   s , temos que o intervalo de integração é t i n t = t 0 t f = 0 360 .

O enunciado diz que a aeronave tem uma velocidade de 180   m / s quando o nível do motor vai para T = 60   N . Logo, a condição inicial é v t 0 = v 0 = 18 0 .

Portanto, temos todas as entradas necessárias para usar a função o d e 45 do MATLAB.

Além disso, o exercício pede para mostrarmos no gráfico da solução da EDO a velocidade que a aeronave atinge quando o nível do motor é T =   60   N . Por isso, no final, também teremos que gerar um gráfico de v ( t ) considerando T = 60   N .

Passo 2

Primeiramente, vamos relembrar a função o d e 45 , para vermos o que entraremos no MATLAB. A função o d e 45 possui a seguinte estrutura:

[ t , v ]   =   o d e 45 ( E D O _ f u n , t _ i n t , v 0 )

Ela exige três entradas, fornecidas pelo enunciado:

  • E D O _ f u n : uma função representando a EDO de primeira ordem:
  • v ' = 60 20 - 0,000062 v 2

  • t _ i n t : intervalo de integração, normalmente no formato [ t 0   t f ] : o intervalo começa em t 0 e termina em t f . Neste exercício, t 0 = 0 e t f = 3 60 , logo, t _ i n t = 0 3 60 ;
  • v 0 : condição inicial de v ( t ) em t 0 = 0 . Neste exercício, v 0 = 18 0 .

E ela nos dá duas saídas: um vetor com valores de t (começando em t 0 = 0 e terminando em t f = 3 60 , correspondendo ao nosso intervalo de integração) e outro com os valores de v (iniciando em v 0 = 18 0 e terminando no valor de v correspondente a t f ), representando a solução da EDO. Em outras palavras, 𝑜𝑑𝑒45 nos retorna os pontos que representam a função v = f ( t ) para o intervalo de integração t _ i n t . Usaremos os vetores t e v para gerar o gráfico pedido.

Depois de relembrar a função o d e 45 , vamos abrir um script novo no MATLAB para criarmos uma função com a EDO do enunciado. Nesse script, digite as linhas de código:

Após criar a função E D O _ e x 3 , abra um novo script para implementar a função o d e 45 . Neste script, digite as linhas de código:

Na primeira linha, entramos com o intervalo de integração t _ i n t = 0 360 .

Na segunda linha, entramos com o valor inicial v 0 = 18 0 .

Na terceira linha, entramos com a função o d e 45 para encontrar uma solução da EDO. Repare que, no lugar de 𝐸𝐷𝑂_𝑓𝑢𝑛, coloquei um string com o nome da função que representa a EDO: ' E D O _ e x 3 ’. Não esqueça de pôr o nome entre aspas simples, como no print acima.

A solução da EDO é dada pelos vetores t e v , saídas de o d e 45 .

Passo 3

Com os códigos do passo 2, encontramos a solução da EDO. Mas falta ainda uma coisinha: gerar o gráfico de v = f ( t ) . Para isto, usaremos a saída de o d e 45 os vetores t e v .

No mesmo script onde você implementou o d e 45 , digite as linhas de código:

A primeira linha gera o gráfico da velocidade em função do tempo.

A segunda linha dá um nome para o eixo horizontal do gráfico, usando a função x l a b e l . Foi dado um nome de ‘ T e m p o   [ s ] ’ .

A terceira linha dá um nome para o eixo vertical do gráfico, usando a função y l a b e l . Foi dado um nome de ‘ V e l o c i d a d e   [ m / s ] ’ .

Ao rodar o programa, o gráfico de tempo versus velocidade é gerado e nele podemos encontrar a resposta do exercício:

Repare que a curva se estabiliza em torno de 220   m / s . Isto quer dizer que a nova velocidade da aeronave depois de uma mudança no nível do motor de 40   N para 60   N é 220   m / s .

Resposta

A nova velocidade da aeronave depois de uma mudança no nível do motor de 40   N para 60   N é 220   m / s .

Exercício Resolvido #4

Utilize um método de Runge-Kutta explícito para aproximar y ( 2 ) , sabendo que

Passo 1

O exercício nos dá uma EDO de primeira ordem e uma condição inicial: y ( 1 ) = 2 . Ele pede para encontrarmos y ( 2 ) usando um método de Runge-Kutta explícito.

Para encontrarmos y ( 2 ) , precisamos solucionar a EDO para encontrar y ( x ) . Como o exercício pede para usarmos um método de Runge-Kutta explícito, podemos usar a função o d e 45 do MATLAB, que resolve EDOs de primeira ordem usando um método explícito de Runge-Kutta.

Como temos uma condição inicial em x 0 = 1 ( y ( 1 ) = 2 ) e o exercício pede para encontrarmos y ( 2 ) , temos que x f = 2 e nosso intervalo de integração vai ser x i n t = x 0 x f = 1 2 .

Resumindo, neste exercício, usaremos a função o d e 45 para resolver a EDO e então encontrar y ( 2 ) .

Passo 2

A primeira coisa que devemos fazer é rearranjar os termos da EDO do enunciado:

y y ' - 2 x = 0

Para que ela fique no formato:

y ' = d y d x = g ( x , y )

Reorganizando os termos, temos:

y ' = 2 x y

É a EDO neste formato que usaremos na função o d e 45 do MATLAB.

Passo 3

Vamos relembrar a função o d e 45 , para vermos o que entraremos no MATLAB. A função o d e 45 possui a seguinte estrutura:

[ x , y ]   =   o d e 45 ( E D O _ f u n , x _ i n t , y 0 )

Ela exige três entradas:

  • E D O _ f u n : uma função representando a EDO de primeira ordem y ' = g ( x , y ) . Neste exercício, E D O _ f u n é a EDO y ' = g x , y = 2 x y ;
  • x _ i n t : intervalo de integração, normalmente no formato [ x 0   x f ] : o intervalo começa em x 0 e termina em x f . Neste exercício, x 0 = 1 e x f = 2 , logo, x _ i n t = 1 2 ;
  • y 0 : condição inicial de y = f ( x ) em x 0 = 1 . Neste exercício, y 0 = 2 .

A fnção o d e 45 nos dá duas saídas: um vetor com valores de x (começando em x 0 = 1 e terminando em x f = 2 , correspondendo ao nosso intervalo de integração) e outro com os valores de y (iniciando em y 0 = 2 e terminando no valor de y correspondente a x f ), representando a solução da EDO. Em outras palavras, 𝑜𝑑𝑒45 nos retorna os pontos que representam a função y = f ( x ) para o intervalo de integração x _ i n t .

Crie um script novo no MATLAB para criarmos uma função com a EDO do enunciado. Nesse script, digite as linhas de código:

Com estas linhas de código, é criada a função E D O _ e x 4 , representando a EDO do enunciado. Ela recebe valores de x e y e retorna a derivada d y .

Após criar a função E D O _ e x 4 , abra um novo script para implementar a função o d e 45 . Neste script, digite as linhas de código:

Na primeira linha, entramos com o intervalo de integração x _ i n t = 1 2 .

Na segunda linha, entramos com o valor inicial y 0 = 2 .

Na terceira linha, entramos com a função o d e 45 para encontrar uma solução da EDO. Repare que, no lugar de 𝐸𝐷𝑂_𝑓𝑢𝑛, coloquei um string com o nome da função que representa a EDO: ' E D O _ e x 4 ’. Não esqueça de pôr o nome entre aspas simples, como no print acima.

A solução da EDO é dada pelos vetores x e y , saídas de o d e 45 .

Passo 4

Para encontrarmos y ( 2 ) , temos que olhar o último elemento do vetor y , pois ele corresponde ao valor da função y = f ( x ) no final do intervalo x i n t = 1 2 .

No mesmo script onde implementamos a função o d e 45 , vamos adicionar o comando:

Com este comando, o último elemento do vetor y , indicado pelo índice e n d , é armazenado na variável y _ f . Portanto, y _ f = y ( 2 ) , que é a resposta do exercício.

Rodando o programa, temos:

Resposta

y ( 2 ) ≈ 3,1623

Exercício Resolvido #5

Considere o reator bioquímico descrito na figura abaixo, onde x 1 representa a biomassa presente no reator e x 2 o substrato. O reator possui um volume constante ( V r ) uma vez que as vazões de alimentação e de saída são iguais ( F ). A corrente de alimentação possui concentração de substrato igual a x2i e uma concentração de biomassa igual a zero.

Bequette (1998) propõe o modelo descrito pela equação abaixo para o processo:

d x 1 d t = x ' 1 = μ - D x 1

d x 2 d t = x ' 2 = D x 2 i - x 2 - μ x 1 Y

D = F V r

onde Y é a relação constante entre as taxas de geração de biomassa e o consumo de substrato e μ é o coeficiente de taxa de crescimento descrito pela equação:

μ = μ m a x x 2 k m + x 2 + k 1 x 2 2

Descreva o comportamento das concentrações de biomassa e de substrato considerando um tempo de integração de 30 horas ( 0 < t < 30 ), as condições iniciais:

t = 0 :   x 1 = 1         x 2 = 1

E os valores para os parâmetros descritos na tabela abaixo:

BEQUETTE, B. W., Process Dynamics: Modeling, Analysis and Simulation, 1a ed. USA, PrenticeHall PTR, 1998.

Passo 1

O exercício nos dá um sistema de EDOs de primeira ordem, composto de duas EDOs, representando as concentrações de biomassa ( x 1 ) e de substrato ( x 2 ) presentes em um reator bioquímico.

O enunciado pede para resolvermos o sistema de EDOs em um intervalo de integração de t 0 = 0 a t f = 30 horas, isto é, o intervalo de integração é t i n t = [ t 0 t f ] = [ 0 30 ] .

Para resolvermos o sistema de EDOs, temos como condições iniciais:

t 0 = 0 :   x 1 = 1         x 2 = 1

Portanto, temos todas as entradas para usarmos a função o d e 45 do MATLAB para encontrarmos a solução do sistema de EDOs.

O exercício pede para descrevermos o comportamento das concentrações de biomassa e de substrato, isto é, de x 1 e x 2 , respectivamente, no intervalo de 30 horas. Por isso, é legal no final gerarmos um gráfico com as curvas de x 1 e x 2 , plotadas usando o resultado da o d e 45 .

Passo 2

Vamos começar relembrando a função o d e 45 do MATLAB, que tem a estrutura:

[ t , x ]   =   o d e 45 ( E D O _ f u n , t _ i n t , x 0 )

Ela tem três entradas:

  • E D O _ f u n : uma função representando o sistema de EDOs de primeira ordem, no caso:
  • x ' 1 = μ - D x 1 x ' 2 = D x 2 i - x 2 - μ x 1 Y

  • t _ i n t : intervalo de integração, normalmente no formato [ t 0   t f ] : o intervalo começa em t 0 e termina em t f . Neste exercício, t 0 = 0 , t f = 3 0 , logo t _ i n t = 1 3 0 ;
  • x 0 : vetor com as condições iniciais de x 1 e x 2   em t 0 = 0 . Temos que x 1 0 = x 2 0 = 1 , logo, x 0 = 1 1 .

A função o d e 45 nos dará duas saídas: um vetor com valores de t (começando em t 0 e terminando em t f , correspondendo ao nosso intervalo de integração) e uma matriz x de duas colunas com os valores de x 1 e x 2 (iniciando em t 0 e terminando nos valores de x 1 e x 2 correspondentes a t f ), representando a solução do sistema de EDOs. A primeira coluna de x corresponde a x 1 e a segunda coluna de x corresponde a x 2 .

Em outras palavras, 𝑜𝑑𝑒45 nos retorna os pontos que representam de x 1 e x 2 para o intervalo de integração t _ i n t .

Vamos implementar tudo isso no MATLAB. Primeiramente, abra um script novo e crie a função E D O _ e x 5 . Vamos entrar com os dados da tabela do enunciado, com as seguintes linhas de código:

Como queremos encontrar duas funções ( x 1 e x 2 ), a entrada x da função E D O _ e x 5 é um vetor de dois elementos, o primeiro elemento representando x 1 e o segundo elemento, x 2 . A saídade d x d t é um vetor representando as derivadas das funções x 1 e x 2 e também é um vetor de dois elementos.

Em seguida, entre com a equação do coeficiente de taxa de crescimento:

μ = μ m a x x 2 k m + x 2 + k 1 x 2 2

Digitando a linha de código:

Tendo entrado com a equação de μ , finalmente podemos entrar com o sistema de EDOs:

No final, a função E D O _ e x 5 ficou com essa carinha:

Passo 3

Após concluir a função E D O _ e x 5 , vamos resolver o sistema de EDOs. Digite os seguintes comandos em um novo script do MATLAB:

A primeira linha cria o intervalo de integração t _ i n t = 0 3 0 .

A segunda linha cria as condições iniciais de x 1 e x 2 . Elas são representadas por um vetor de dois elementos, x 0 = 1 1 .

Em seguida, usamos a o d e 45 para resolver o sistema. Repare que no lugar de E D O _ f u n coloquei uma string ‘ E D O _ e x 5 ’ . Essa string é o nome da função criada para representar o sistema de EDOs.

A saída de o d e 45 será um vetor t , representando a variável independente, e uma matriz x com duas colunas, a primeira representando x 1 e a segunda, x 2 . A saída representa a solução do sistema de EDOs.

Passo 4

O exercício pede para analisarmos o comportamento das concentrações de biomassa e de substrato, isto é, de x 1 e x 2 , respectivamente, no intervalo de 30 horas. Por isso, vamos gerar um gráfico com as curvas de x 1 e x 2 , usando os vetores de saída t e x da o d e 45 .

Para plotar x 1 e x 2 , entre os seguintes comandos no script onde você usou a função o d e 45 :

Na primeira linha, usamos a função p l o t para gerar, em um mesmo gráfico, as curvas de x 1 e x 2 . O primeiro par t , x ( : , 1 ) pega a primeira coluna de x , correspondendo a x 1 e a plota em função de t . Da mesma maneira, o segundo par t , w ( : , 2 ) pega a segunda coluna de x , correspondendo a x 2 e a plota em função de t .

Na segunda linha, acrescentamos uma legenda ao gráfico, indicando que o par t , w ( : , 1 ) representa a concentração de biomassa e o par t , w : , 2 representa a concentração de substrato.

Na terceira linha, damos um nome para o eixo horizontal do gráfico usando o comando x l a b e l . O nome indica que no eixo horizontal temos o tempo em horas.

Na quarta linha, damos um nome para o eixo vertical do gráfico usando o comando y l a b e l . O nome indica que no eixo vertical temos a concentração em gramas/litro.

Rodando o programa, o gráfico será gerado e podemos analisar o comportamento da biomassa e do substrato.

Resposta

O gráfico acima contém as curvas de concentração de biomassa ( x 1 , em azul) e de substrato ( x 2 , em vermelho), em um reator bioquímico, para um intervalo de 0 a 30 horas.

No começo, nas primeiras 10 horas, a concentração de biomassa aumenta, enquanto a de substrato diminui. Após as 10 primeiras horas, as concentrações de biomassa e substrato se estabilizam e tornam-se constantes.

Exercício Resolvido #6

O modelo do circuito RC mostrado na figura abaixo pode ser encontrado a partir da lei das tensões de Kirchhoff e da conservação da carga:

R C y ˙ + y = v ( t )

Suponha que o valor de R C seja 0,1   s . Utilize um método numérico para encontrar a resposta para o caso em que a tensão externa aplicada v ( t ) = 0 é zero e que a tensão inicial do capacitor seja y 0 = 2   V . Compare os resultados com a solução analítica, que é

y t = 2 e - 10 t

Passo 1

O exercício nos dá uma EDO que modela um cicuito RC e uma condição inicial, e nos pede para encontrar a solução da EDO y = f ( t ) , que representa a tensão do capacitor. O enunciado não nos dá um intervalo de integração, representando o tempo t , mas podemos escolher um intervalo qualquer. Uma EDO, uma condição inicial e um intervalo de integração são as três entradas da função o d e 45 ( ) do MATLAB, que resolve EDOs de primeira ordem usando métodos de Runge-Kutta. Logo, usaremos essa função para encontrar y ( t ) .

Em seguida, ele nos pede para compararmos a solução encontrada com o d e 45 ( ) , isto é, a solução numérica da EDO, à solução analítica. Para isto, geraremos um gráfico com duas curvas: uma representando a solução obtida por o d e 45 ( ) e a outra representando a solução analítica.

Passo 2

Primeiramente, vamos relembrar a função o d e 45 , para vermos o que entraremos no MATLAB. A função o d e 45 possui a sintaxe:

[ t , y ]   =   o d e 45 ( E D O _ f u n , t _ i n t , y 0 )

Ela exige três entradas:

  • E D O _ f u n : uma função representando a EDO de primeira ordem y ' = g ( x , y ) . Neste exercício, E D O _ f u n é a EDO R C y ˙ + y = v ( t ) ;
  • t _ i n t : intervalo de integração, normalmente no formato [ t 0   t f ] : o intervalo começa em t 0 e termina em t f . O enunciado não especificou o intervalo de integração, por isso podemos escolher o intervalo que quisermos. Vamos adotar t 0 = 0 e t f = 2 , logo, t _ i n t = 0 2 ;
  • y 0 : condição inicial de y = f ( t ) em t 0 = 0 . Neste exercício, y 0 = 2 .

A função o d e 45 nos dá duas saídas: um vetor com valores de t (começando em t 0 = 0 e terminando em t f = 2 , correspondendo ao nosso intervalo de integração) e outro com os valores de y (iniciando em y 0 = 2 e terminando no valor de y correspondente a t f ), representando a solução da EDO. Em outras palavras, 𝑜𝑑𝑒45 nos retorna os pontos que representam a função y = f ( t ) para o intervalo de integração t _ i n t . Usaremos os vetores t e y para gerar o gráfico comparando a solução numérica com a solução analítica.

Vamos começar pela função representando a EDO. O primeiro passo é reorganizar os termos a EDO do enunciado, de forma que a derivada fique isolada no lado esquerdo da EDO. Lembrando que v ( t ) = 0 :

y ˙ = - y R C

Agora podemos passar a EDO para o MATLAB. Crie um script novo e digite as linhas de código:

Com estas linhas de código, é criada a função E D O _ c i r c R C , representando a EDO do enunciado. Ela recebe valores de t e y e retorna a derivada d y .

Passo 3

Após criar a função E D O _ c i r c R C , abra um novo script para implementar a função o d e 45 . Lembre de salvá-lo na mesma pasta onde você salvou a função E D O _ c i r c R C . Neste script, digite as linhas de código:

Na primeira linha, entramos com o intervalo de integração t _ i n t = 0 2 .

Na segunda linha, entramos com o valor inicial y 0 = 2 .

Na terceira linha, entramos com a função o d e 45 para encontrar uma solução da EDO. Repare que, no lugar de 𝐸𝐷𝑂_𝑓𝑢𝑛, coloquei um string com o nome da função que representa a EDO: ' E D O _ c i r c R C ' . Não esqueça de pôr o nome entre aspas simples, como no print acima.

A solução da EDO é dada pelos vetores t e y _ n u m , saídas de o d e 45 . Esses vetores representam a solução numérica da EDO, a qual plotamos a partir deles.

Passo 4

O exercício pede para compararmos a solução numérica da EDO com a solução analítica, dada por:

y t = 2 e - 10 t

Vamos compará-las por meio de um gráfico. A primeira coisa a fazer é gerar valores de y da solução analítica para plotar sua curva. Para isto, no mesmo script onde você implementou o d e 45 , digite a linha de código:

Esta linha de código é a função y t = 2 e - 10 t . Ela usa o vetor t gerado pela o d e 45 e calcula a solução analítica para cada elemento de t . Os resultados são armazenados no vetor y _ a n .

Passo 5

Para gerar o gráfico comparando a solução analítica com a numérica, entre os comandos:

Na primeira linha, é usado o p l o t ( ) para gerar as curvas da solução analítica e da solução numérica. O primeiro par t ,   y _ a n plota a solução analítica y _ a n em função de t . O segundo par t , y _ n u m plota a solução numérica y _ n u m em função de t , e pede que a curva gerada seja composta por bolinhas ( ' o ' ).

Na segunda linha, é adicionada uma legenda ao gráfico, para sabermos qual curva é qual. A legenda ‘ A n a l i t i c o ’ corresponde ao primeiro par t ,   y _ a n e a legenda ‘ N u m e r i c o ’ , ao segundo par t , y _ n u m .

Execute o programa e você terá o gráfico que permite comparar as duas soluções.

Resposta

Exercício Resolvido #7

Considere o sistema de equações diferenciais de primeira ordem com condições iniciais, dado por

d u d t = u 1 - v ,   u 0 = 4 d v d t = v u - 2 ,   v 0 = 2

Este sistema modela a interação entre duas populações, uma de presas e outra de predadores. Faça o gráfico de u e v , para t ∈ [ 0 ,   20 ] .

Passo 1

O exercício nos dá um sistema de EDOs de primeira ordem, composto de duas EDOs, modelando a interação entre duas populações u e v .

O enunciado pede para resolvermos o sistema de EDOs em um intervalo de integração de t 0 = 0 a t f = 2 0 , isto é, o intervalo de integração é t i n t = [ t 0 t f ] = [ 0 2 0 ] .

Para resolvermos o sistema de EDOs, temos como condições iniciais u 0 = 4 e v ( 0 ) = 2 .

Portanto, temos todas as entradas para usarmos a função o d e 45 do MATLAB para encontrarmos a solução do sistema de EDOs.

O exercício pede para gerarmos o gráfico de u e v , plotadas usando o resultado da o d e 45 .

Passo 2

Vamos começar relembrando a função o d e 45 do MATLAB, que tem a estrutura:

[ t , x ]   =   o d e 45 ( E D O _ f u n , t _ i n t , x 0 )

Ela tem três entradas:

  • E D O _ f u n : uma função representando o sistema de EDOs de primeira ordem, no caso:
  • d u d t = u 1 - v d v d t = v u - 2

  • t _ i n t : intervalo de integração, normalmente no formato [ t 0   t f ] : o intervalo começa em t 0 e termina em t f . Neste exercício, t 0 = 0 , t f = 2 0 , logo t _ i n t = 1 2 0 ;
  • x 0 : vetor com as condições iniciais de u e v   em t 0 = 0 . Temos que u 0 = 4 e v ( 0 ) = 2 , por isso faremos que x 0 = u 0 v ( 0 ) = 4 2 .

A função o d e 45 nos dará duas saídas: um vetor com valores de t (começando em t 0 e terminando em t f , correspondendo ao nosso intervalo de integração) e uma matriz x de duas colunas com os valores de u e v (iniciando em t 0 e terminando nos valores de u e v correspondentes a t f ), representando a solução do sistema de EDOs. A primeira coluna de x corresponde a u e a segunda coluna de x corresponde a v .

Em outras palavras, 𝑜𝑑𝑒45 nos retorna os pontos que representam de u e v para o intervalo de integração t _ i n t .

Vamos implementar tudo isso no MATLAB. Primeiramente, abra um script novo e crie a função E D O _ p r e s a . Vamos entrar com o sistema de equações, com as seguintes linhas de código:

Como queremos encontrar duas funções ( u e v ), a entrada x da função E D O _ p r e s a é um vetor de dois elementos, o primeiro elemento representando u e o segundo elemento, v . Para facilitar a identificação de quem é quem na hora de digitar o sistema de EDOs, nas duas primeiras linhas da função, criei duas variáveis: u e v e indiquei que elas são o primeiro e o segundo elemento do vetor x , respectivamente.

O vetor representando as derivadas das funções u e v , d x d t , também é um vetor de dois elementos, sendo que o primeiro representa d u / d t e o segundo, d v / d t . Por isso, na terceira linha da função, dizemos que d x d t   é um vetor de zeros de dois elementos.

Finalmente, nas duas últimas linhas de código, temos o sistema de EDOs do enunciado.

Passo 3

Após concluir a função E D O _ p r e s a , vamos resolver o sistema de EDOs. Digite os seguintes comandos em um novo script do MATLAB (que deve sr salvo na mesma pasta onde foi salva a função):

A primeira linha cria o intervalo de integração t _ i n t = 0 2 0 .

A segunda linha cria as condições iniciais de u e v . Elas são representadas por um vetor de dois elementos, x 0 = 4 2 .

Em seguida, usamos a o d e 45 para resolver o sistema. Repare que no lugar de E D O _ f u n coloquei uma string ‘ E D O _ p r e s a ’ . Essa string é o nome da função criada para representar o sistema de EDOs.

A saída de o d e 45 será um vetor t , representando a variável independente t , e uma matriz x com duas colunas, a primeira representando u e a segunda, v . A saída representa a solução do sistema de EDOs e a partir delas que plotaremos os gráficos de u e v .

Passo 4

Para facilitar a identificação na hora de plotar u e v , inclua em seu script as duas linhas de código abaixo:

Na primeira linha, crio um vetor u que armazena a primeira coluna de x , que representa u ( t ) obtida pela integração numérica de o d e 45 .

Na segunda linha, faço a mesma coisa para v ( t ) : crio um vetor v que armazena a segunda coluna de x , que é v ( t ) gerada por o d e 45 .

Para plotar u e v , entre os seguintes comandos no script onde você usou a função o d e 45 :

Na primeira linha, usamos a função p l o t para gerar, em um mesmo gráfico, as curvas de u e v . O primeiro par t , u plota u em função de t . Da mesma maneira, o segundo par t , v plota v em função de t .

Na segunda linha, acrescentamos uma legenda ao gráfico, indicando que o par t , u representa u e o par t , v representa v .

Executando o programa, você terá o gráfico de u e v , para t ∈ [ 0 ,   20 ] .

Resposta

Exercício Resolvido #8

A equação de movimento para um pêndulo cuja base se move horizontalmente com uma aceleração a ( t ) é

L θ ¨ + g sin ⁡ θ = a ( t ) cos ⁡ θ

Suponha g = 9 ,   81   m / s 2 , L   =   1 m e θ ˙ ( 0 ) = 0 . Plote θ ( t ) para 0 ≤ t ≤ 10   s para os seguintes casos:

  1. aceleração constante a = 1   m / s 2 e θ 0 =   0,5   r a d ou θ 0 =   3   r a d
  2. aceleração linear com o tempo a ( t ) = 0,5 t   m / s 2 e θ 0 =   3   r a d

Passo 1

O enunciado nos dá uma EDO de segunda ordem representando o movimento de um pêndulo e primeiro nos pede para plotar θ ( t ) em duas condições distintas: com a ( t ) constante e a ( t ) linear com o tempo.

Antes de tudo, precisamos converter a EDO de segunda ordem em um sistemas de EDOs de primeira ordem, pois o MATLAB só resolve EDOs de primeira ordem.

Resolveremos o sistema de EDOs a função o d e 45 . O enunciado nos deu todas entradas necessárias para usarmos o d e 45 : um intervalo de integração ( 0 ≤ t ≤ 10   s ) e valores iniciais para θ ( t ) e sua derivada primeira.

Na letra a do exercício, implementaremos o d e 45 duas vezes, uma para cada condição inicial ( θ 0 =   0,5   r a d ou θ 0 =   3   r a d ). Já na letra b do exercício, implementaremos o d e 45 somente uma vez, pois somente é dada uma condição inicial ( θ 0 =   3   r a d ).

Passo 2

Antes de partir para o MATLAB, temos que converter a EDO de segunda ordem L θ ¨ + g sin ⁡ θ = a ( t ) cos ⁡ θ para um sistema de EDOs de primeira ordem. Para isto, vamos dizer que:

w 1 t = θ ˙ ( t )

w 2 t = θ ( t )

Substituindo w 1 e w 2 na EDO original, temos:

L w ˙ 1 + g sin ⁡ w 2 = a ( t ) cos ⁡ w 2

Isolando w ˙ 1 na equação acima, temos:

w ˙ 1 = a t cos ⁡ w 2 - g sin ⁡ w 2 L

Esta é a primeira equação do sistema de EDOs de primeira ordem.

Para construir a segunda equação do sistema, considere que:

w ˙ 2 t = θ ˙ ( t ) = w 1 t

Logo, o sistema de EDOs de primeira ordem construído a partir de L θ ¨ + g sin ⁡ θ = a ( t ) cos ⁡ θ é:

w ˙ 1 = a t cos ⁡ w 2 - g sin ⁡ w 2 L w ˙ 2 = w 1

Usaremos esse sistema para resolver a letra a e a letra b do exercício.

Passo 3

Com o sistema de EDOs de primeira ordem, podemos partir para o MATLAB. Vamos começar respondendo a letra a, que pede para plotarmos θ ( t ) para 0 ≤ t ≤ 10   s para aceleração constante a = 1   m / s 2 e duas consições iniciais distintas: θ 0 =   0,5   r a d e θ 0 =   3   r a d . Para isto, usaremos a função o d e 45 do MATLAB, que tem a estrutura:

[ t , w ]   =   o d e 45 ( E D O _ f u n , t _ i n t , w _ 0 )

Ela tem três entradas:

  • E D O _ f u n : uma função representando o sistema de EDOs de primeira ordem, no caso:
  • w ˙ 1 = a t cos ⁡ w 2 - g sin ⁡ w 2 L w ˙ 2 = w 1

  • t _ i n t : intervalo de integração, normalmente no formato [ t 0   t f ] : o intervalo começa em t 0 e termina em t f . Neste exercício, t 0 = 0 , t f = 10 , logo t _ i n t = 0 10 ;
  • w _ 0 : vetor com as condições iniciais de w 1 t = θ ˙ ( t ) e w 2 t = θ ( t )   em t 0 .

Temos que θ ˙ 0 = w 1 0 = 0 e duas condições iniciais para θ : θ 0 = w 2 ( 0 ) =   0,5   r a d e θ 0 = w 2 ( 0 ) =   3   r a d . Por isso, vamos implementar 𝑜𝑑𝑒 45 para dois w _ 0 diferentes na letra a: w _ 0 1 = 0 0,5 e w _ 0 2 = 0 3 .

Para ambos os casos, a função o d e 45 nos dará duas saídas: um vetor com valores de t (começando em t 0 e terminando em t f , correspondendo ao nosso intervalo de integração) e uma matriz w de duas colunas com os valores de w 1 e w 2 (iniciando em t 0 e terminando nos valores de w 1 e w 2 correspondentes a t f ), representando a solução do sistema de EDOs. A primeira coluna de w corresponde a w 1 , isto é, a θ ˙ ( t ) , e a segunda coluna de w corresponde a w 2 , ou seja, θ ( t ) .

Em outras palavras, 𝑜𝑑𝑒 45 nos retorna os pontos que representam a função θ ( t ) , na forma de w 2 ( t ) para o intervalo de integração t _ i n t . Logo, é a segunda coluna de w que vamos plotar.

Bora implementar tudo isso no MATLAB. Abra um script novo e crie a função E D O _ p e n d u l o , com o sistema de EDOs obtido no passo anterior:

Como queremos encontrar duas funções ( w 1 e w 2 ), a entrada w da função E D O _ p e d u l o é um vetor de dois elementos, o primeiro elemento representando w 1 e o segundo elemento, w 2 . O vetor representando as derivadas das funções w 1 e w 2 , d w d t , também é um vetor de dois elementos.

Note que a função E D O _ p e d u l o serve para resolver a letra a do exercício, pois adotamos a aceleração constante a = 1 .

Passo 4

Para resolver o sistema de EDOs para as duas condições iniciais da letra a, digite os seguintes comandos em um novo script do MATLAB:

A primeira linha cria o intervalo de integração t _ i n t = 0 10 .

As duas linhas seguintes se referem à condição inicial θ 0 =   0,5   r a d e as duas últimas linhas, a θ 0 =   3   r a d .

A segunda linha cria as condições iniciais de w 1 e w 2 para θ 0 =   0,5   r a d . Elas são representadas por um vetor de dois elementos, w _ 0 1 = 0 0,5 .

Em seguida, usamos a o d e 45 para resolver o sistema. Repare que no lugar de E D O _ f u n coloquei uma string ‘ E D O _ p e n d u l o ’ . Essa string é o nome da função criada para representar o sistema de EDOs.

A saída de o d e 45 para θ 0 =   0,5   r a d será um vetor t 1 , representando a variável independente, e uma matriz w 1 com duas colunas, a primeira representando w 1 e a segunda, w 2 . A saída representa a solução do sistema de EDOs para θ 0 =   0,5   r a d .

De maneira similar, a quarta linha cria as condições iniciais de w 1 e w 2 para θ 0 =   3   r a d , indicadas por w _ 0 2 = 0 3 .

A linha seguinte usa o d e 45 para resolver o sistema para θ 0 =   3   r a d . As saídas serão um vetor t 2 e uma matriz w 2 de duas colunas, a primeira representando w 1 e a segunda, w 2 . A saída representa a solução do sistema de EDOs para θ 0 =   3   r a d .

Passo 5

Após obtermos a solução do sistema EDOs para ambas as condiçõe inicias da letra a, podemos gerar as curvas de θ ( t ) para ambos os casos, usando as saídas de o d e 45 . A 𝑜𝑑𝑒45 nos retorna os pontos que representam w 1 ( t ) na primeira coluna de w 1 e w 2 e os pontos que representam w 2 ( t ) na segunda coluna de w 1 e w 2 . Sabendo que w 2 t = θ ( t ) e é θ ( t ) que o exercício nos pede para plotar, são as segundas colunas de w 1 e w 2 que usaremos para plotar o gráfico.

Para plotar θ ( t ) para uma acelerção constante com as duas condições iniciais distintas, entre os seguintes comandos no script onde você usou a função o d e 45 :

Na primeira linha, pedimos ao MATLAB para gerar um figura com o comando f i g u r e ( 1 ) . Esta figura terá o gráfico de θ ( t ) da letra a do exercício. Usamos esse comando para que os gráficos da letra a e b seja plotados em janelas diferentes.

Na segunda linha, usamos a função p l o t para gerar, em um mesmo gráfico, as curvas de θ ( t ) para θ 0 =   0,5   r a d e θ 0 =   3   r a d . O primeiro par t 1 , w 1 ( : , 2 ) se refere a θ 0 =   0,5   r a d e pega a segunda coluna de w 1 , correspondendo a θ ( t ) , e a plota em função de t 1 . Da mesma maneira, o segundo par t 2 , w 2 ( : , 1 ) é referente a θ 0 =   3   r a d e pega a segunda coluna de w 2 , também correspondendo a θ ( t ) , e a plota em função de t 2 .

Na terceira linha, acrescentamos uma legenda ao gráfico, indicando que o par t 1 , w 1 ( : , 2 ) se refere a a θ 0 =   0,5   r a d e o par t 2 , w 2 ( : , 1 ) se refere a a θ 0 =   3   r a d .

Para obter o gráfico da letra a, rode o programa:

Passo 6

A letra b pede para plotar θ ( t ) considerando uma aceleração linear com o tempo a ( t ) = 0,5 t   m / s 2 e θ 0 =   3   r a d . Para isto, também usaremos a função o d e 45 para resolver o sistema de EDOs de primeira ordem do passo 2, mas devemos montar uma nova função com o sistema de EDOs, considerando que a ( t ) varia com o tempo. Por isso, em um novo script, copie e cole a função criada no passo 3, alterando a variável a para a = 0,5 t :

Chamei essa nova função de E D O _ p e n d u l o _ b . Ele tem exatamente a mesma forma da anterior, a única diferença é que a variável a não é mais constante.

Após salvar a função E D O _ p e n d u l o _ b , no mesmo script onde você resolveu a letra a do exercício, implemente o d e 45 mais uma vez, mas para E D O _ p e n d u l o _ b :

A primeira linha cria as condições iniciais de w 1 e w 2 para θ 0 =   3   r a d . Elas são representadas por um vetor de dois elementos, w _ 0 b = 0 3 .

Em seguida, usamos a o d e 45 para resolver o sistema. Repare que no lugar de E D O _ f u n coloquei uma string ‘ E D O _ p e n d u l o _ b ’ , para resolver o sistema de EDOS com as condições da letra b. A saída de o d e 45 para a letra b do exercício será o vetor t b , representando a variável independente, e a matriz de duas colunas w b , a primeira representando w 1 e a segunda, w 2 .

Como w 2 = θ , é a segunda coluna de w b que vamos plotar.

Passo 7

Para plotar θ ( t ) para a letra b do exercício, adicione em seu script os comandos abaixo:

Na primeira linha, pedimos ao MATLAB para criar uma segunda figura, com o comando f i g u r e ( 2 ) . Desta forma, teremos os gráficos da letra a e da letra b em janelas diferentes.

Na segunda linha, usamos o comando p l o t para plotar θ ( t ) com aceleração linear com o tempo. Para isto, plotamos o par t b , w b ( : , 2 ) , que plota a segunda coluna de w b em função de t b .

Rode o programa e você terá o gráfico da solução da letra b do exercício.

Resposta

Ei, a resposta está no passo a passo :)