Resolução numérica de EDOs de 2ª ordem - Método do tiro

Equação diferencial ordinária e seus métodos numéricos de resolução:

Uma equação que contém derivadas de uma função desconhecida é chamada de equação diferencial. Uma equação diferencial com apenas uma variável independente é denominada equação diferencial ordinária (EDO). A ordem de uma EDO é definida pela maior derivada envolvida na equação.
Na solução de uma EDO, procura-se a função que satisfaz a equação analisada. Analiticamente, existem vários métodos de resolução de EDOs. A resolução numérica é utilizada quando temos uma EDO de difícil ou demorada resolução analítica e em problemas de análise, simulação e controle de processos em engenharia, por exemplo.
Numericamente, é possível chegar à solução de uma EDO por diferentes métodos. Há procedimentos que envolvem abordagens de passo simples (a solução yi+1 no ponto seguinte xi+1 é obtida a partir da solução yi conhecida no ponto atual xi) e outros que utilizam uma abordagem multipasso (a solução em xi+1 é obtida a partir de soluções conhecidas em vários pontos anteriores). Na solução em cada passo, ainda podem ser usados dois tipos de métodos, explícito e implícito. Métodos explícitos usam fórmulas explícitas para o cálculo da função no próximo valor da variável independente; há apenas variáveis conhecidas no lado direito da equação:
Já nos métodos implícitos, a incógnita aparece de ambos os lados da equação:
De forma geral, métodos implícitos oferecem maior precisão aos resultados que os explícitos, mas exigem maior esforço computacional.
Como ocorre em qualquer procedimento de cálculo numérico, existem erros associados aos métodos de solução numérica de EDOs: erros truncamento e erros de arredondamento. Erros de arredondamento são devido ao procedimento usado por computadores, erros de truncamento ocorrem devido à natureza aproximada dos métodos de solução numérica.
Dois problemas são estudados na resolução de EDOs, os problemas de valor inicial (PVI) e os problemas de valor de contorno (PVC). Um PVI é uma equação diferencial acompanhada do valor da função objetivo em determinado ponto, chamado de valor inicial ou condição inicial. Para a resolução de EDOs de ordens superiores, é necessário conhecer a condição inicial em valores diferentes da variável independente; esses são os PVCs. Suas restrições são geralmente especificadas nos pontos finais do domínio da solução. O número de restrições conhecidas acompanha a ordem da equação (uma equação de n-ésima ordem exige n restrições para a sua resolução).
Para a resolução de PVIs, existem métodos como Euller, Euller modificado, ponto central, Runge-Kutta, multipasso, preditor-corretor. Para os PVCs, os métodos mais conhecidos são método do tiro e método das diferenças finitas. Este tópico tem como foco a explicação do funcionamento e uma aplicação do método do tiro.

Método do tiro:

      O método do tiro é um método numérico utilizado para a resolução de PVCs. Nesse método, um PVC é convertido em dois PVIs pela transformação de uma EDO de segunda ordem em doas EDOs de primeira ordem, cada uma com a sua condição inicial. Uma EDO de segunda ordem é convertida em duas EDOs de primeira ordem pela mudança de variável, da seguinte forma:

É introduzida ao problema uma nova variável (w), restando:

Assim, temos:

As condições iniciais do problema são y(a) = Ya e y(b) = Yb.
Na solução pelo método do tiro, é realizada uma tentativa para a inclinação (derivada primeira) em x = a, onde temos uma condição inicial Ya e queremos chegar à segunda condição Yb.

FIGURA 1: Ilustração do método do tiro.
Fonte: GILAT, Amos. Métodos Numéricos para Engenheiros e Cientistas. Página 411.

Inserida a estimativa, resolve-se as equações (6) e (7) para a obtenção da solução numérica em x = b, yb1. Esta resolução é feita utilizando-se métodos de resolução de PVIs. Se a solução yb1 é suficientemente próxima da solução yb, obedecendo-se uma tolerância, a solução do problema foi obtida. Se não, obtém-se uma nova estimativa até que se chegue a uma solução yb2 e faz-se novamente a análise em relação a yb. Quando a tolerância de proximidade com yb é satisfeita, ou seja, quando ybi é numericamente igual a yb, tem-se a solução do problema.
Quando trabalhamos com o MATLAB, podemos implementar uma sub-rotina que faça a análise do erro em relação a yb e em seguida obter uma estimativa de inclinação (dy/dx) que zere esse erro, chegando assim rapidamente a um valor adequado.

Sugestões:

Para maior aprofundamento teórico nos temas discutidos, recomenda-se a leitura dos capítulos 8 e 9 do livro Métodos Numéricos para Engenheiros e Cientistas (Amos Gilat) e dos capítulos 25 e 27 do livro Métodos Numéricos na Engenharia (Steven Chapra).
Para maior entendimento das funções residentes do MATLAB (ode45) utilizadas para a resolução dos problemas a seguir, recomenda-se a utilização das funções doc ou help do software. Para tal, digite doc ode45 ou help ode45 na janela de comandos e pressione Enter.

Aplicações:


Para exemplificar a utilização do método do tiro em aplicações de engenharia, foram resolvidos dois problemas: a questão da segunda avaliação de ENGD04 (2017.1) que solicita a utilização do método do tiro, cuja solução não se encontra disponível até a data desta postagem e a questão 9.15 do livro-texto Métodos Numéricos para Engenheiros e Cientistas (Amos Gilat). Vejamos:

Questão 2 – 2ª avaliação 2017.1) O escoamento de um fluido sobre um plano inclinado de inclinação θ pode ser representado por uma equação diferencial de segunda ordem dada por:

Onde u(y) é a velocidade do fluido ao longo da lâmina de líquido, ρ a massa específica, g a gravidade µ a viscosidade do fluido. Dado que u(0) = 0 e u’(h) = 0, ρ = 995,7kg/m3, g = 10m/s2, µ = 0,798x103kg/ms, use o método do tiro para encontrar o perfil de u(y) para θ = π/4 e u’(0) = 0,1. Assumir como critério E = û’(h) – u’(h), onde û’(h) é a derivada da velocidade u em relação a y quando y é máximo (ponto h) obtida pelo método do tiro. Considerar h = 0,1m.

Na resolução pelo método do tiro, faremos a mudança de variável, foi explicado acima. Dessa forma, o problema será dividido em dois PVIs, que serão resolvidos pela função residente do MATLAB ode45, que resolve o PVI pelo método de Runge-Kutta de 4ª ordem com erro de truncamento de 5ª ordem. A resolução deste problema foi dividida em três códigos: principal (metodotiro_main), erro (metodotiro_erro) e divisão do PVC em dois PVIs (metodotiro). O programa executável é o principal. É necessário que todos os programas estejam salvos na mesma pasta. Vejamos a resolução:

Programa principal (metodotiro_main):
FIGURA 2: Programa principal

No programa principal, primeiramente são declaradas as condições de contorno, os limites inferior e superior da variável independente (nesse caso o y – altura) e a estimativa inicial do método do tiro, que é a derivada em y = 0 (limite inferior).
Em seguida, é obtida a função F em função da derivada du/dy (que iguala-se a W quando fazemos a mudança de variável) através da sub-rotina erro, que devolve ao programa principal uma função F(W).

Sub-rotina – obtenção da função erro (metodotiro_erro):
FIGURA 3: Sub-rotina para o erro

Neste código é obtida a função erro, que será zerada no código principal pela função residente fsolve, com estimativa inicial W0. Esta sub-rotina recebe os parâmetros do programa principal, resolve um PVI inicial pela função ode45 utilizando como auxílio a outra sub-rotina, que faz a divisão do PVC em PVIs. Este programa retorna uma função erro em função de W. A análise do erro é realizada em função da derivada de u no último ponto do intervalo de y (u’(h)), obedecendo à condição de contorno dada.

Sub-rotina – divisão do PVC em dois PVIs:
FIGURA 4: Sub-rotina para o mecanismo do método do tiro

Neste programa são definidas as constantes da EDO de segunda ordem, é feita a mudança de variável (mecanismo principal do método do tiro). O programa retorna uma variável dZ/dy, que é um vetor bidimensional, como visto acima.

No retorno ao programa principal, é usada a função fsolve para zerar a função erro usando a estimativa inicial W0; W é o valor no qual o erro é mínimo. Em seguida, resolve-se os PVIs através da função ode45, que retorna o vetor de variável independente (y) e uma matriz (Z). Essa matriz é composta por várias linhas e duas colunas, sendo a coluna 1 (Z(:,1)) correspondente a u e a coluna 2 (Z(:,2)) correspondente a du/dy (W). Como estamos interessados no comportamento de u em função de y, devemos plotar Z(:,1) vs y. Este procedimento é feito na FIGURA 1. O resultado gráfico obtido é o seguinte:

FIGURA 5: Resultado gráfico. Comportamento da velocidade, u (m/s) em função da altura, y (m)


Questão 9.15 - Amos Gilat)

FIGURA 6: Enunciado do problema.
Fonte: GILAT, Amos; Métodos Numéricos para Engenheiros e Cientistas. Página 438

Este problema segue a mesma tendência do anterior e a metodologia de resolução é similar. Vejamos:

Programa principal:
FIGURA 7: Programa principal - Problema 9.15 (Gilat)

Sub-rotina – obtenção da função erro:
FIGURA 8: Sub-rotina para o erro

Sub-rotina – divisão do PVC em dois PVIs:
FIGURA 9: Sub-rotina para o mecanismo do método

O resultado gráfico obtido foi o seguinte:
FIGURA 10: Gráfico que relaciona a forma do cabo, y com a distância entre os pontos, x (cm)

• Clique aqui para ter acesso aos códigos dos dois problemas.

Referências:

CHAPRA, Steven C. "Métodos numéricos para engenharia". 5. ed. São Paulo, SP: McGraw-Hill, 2008.

Gilat, Amos. “MATLAB com aplicações em engenharia”. 2nd ed. vol. 1. Tradução: Figueiredo, Glayson E. . Porto Alegre, RS. Editora Bookman, 2006.

Comentários

Postagens mais visitadas deste blog

Diferenciação Numérica

Otimização Numérica