Exercícios Resolvidos de Equações Diferenciais Ordinárias (EDO)

Ver Teoria

Enunciado

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.