Saltar para o conteúdo

Métodos explícitos e implícitos

Origem: Wikipédia, a enciclopédia livre.

Métodos explícitos e implícitos são aproximações usadas na análise numérica para a obtenção de soluções dependentes do tempo, de equações diferenciais ordinárias e parciais, como é exigido em simulações computacionais de processos físicos. Métodos explícitos calculam o estado do sistema num tempo posterior ao estado atual do sistema, enquanto que métodos implícitos encontram a solução resolvendo uma equação que envolve ambos estados atual e posterior do sistema. Matematicamente, se é o estado atual do sistema e é o estado posterior ( é um pequeno passo de tempo), então, para um método explícito:

enquanto que um método implícito usa a equação:

para encontrar

Fica claro que métodos implícitos exigem uma computação adicional e eles podem ser muito mais difíceis de serem implementados. Métodos implícitos são usados em problemas em que o uso de um método explícito exigiria passos de tempo impraticavelmente pequenos para manter os erros limitados(ver estabilidade numérica). Para atingir a precisão desejada em tais problemas, leva muito menos tempo computacional quando um método implícito é usado. Eles geralmente são incondicionalmente estáveis, o que quer dizer que podemos dar grandes valores ao passo de tempo para que a solução possa ser encontrada mais rapidamente, porém o custo computacional também aumenta consideravelmente, o que também aumenta a necessidade de mais memória do computador já que a velocidade do processo é maior.

Métodos de Euler explícito e implícito

[editar | editar código-fonte]

Considerando a equação da convecção linear unidimensional:

onde é a função desconhecida de e a é a velocidade de convecção (velocidade da onda). Considerando um problema de valor inicial e de contorno, essa equação tem que ser fundamentada pelas seguintes condições iniciais e de contorno, para a>0:

Discretização dos eixos de tempo e espaço

A fim de aplicar um método de diferenças finitas, discretizamos os domínios do tempo e espaço, com passos constantes. Ou seja, o eixo x é discretizado em N intervalos de malha , e o eixo y em intervalos de tempos constantes , como mostrado na figura ao lado, com:

Onde o nível de tempo é indicado por n e a posição do espaço é indicada por i. A fim de obtermos um esquema numérico, temos que discretizar as derivadas do espaço e do tempo. Poderíamos selecionar, por exemplo, um método de diferenças centradas de segunda ordem para a discretização da derivada do espaço no ponto i. Isto leva ao esquema semi-discreto, também chamado de método das linhas:

O lado esquerdo representa as derivadas do tempo avaliadas no ponto i, onde o próximo passo é definir uma discretização no tempo. Isto implica na substituição da derivada do tempo por uma forma discreta e também na decisão quanto ao nível de tempo em que o lado direito será avaliado. Em um problema de convecção (ou propagação), sabemos a solução em t=0 e procuramos a solução para tempos posteriores. Traduzindo numericamente, quando progredimos de um nível de tempo n para um nível de tempo (n+1), considerando que conhecemos a solução no nível n, queremos encontrar a evolução dessa solução para o tempo de nível (n+1). Assim fica lógico escolhermos uma fórmula de diferença finita avançada(explicita) para , o que nos leva a:

Este método é conhecido por método de Euler explicito para a integração no tempo de equações diferenciais ordinárias, levando ao esquema numerico explícito:

Avaliando o lado direito da equação (1) para o nível de tempo (n+1), encontramos o esquema implícito:

o qual é conhecido por método de Euler implícito, já que três valores desconhecidos aparecem simultaneamente no nível de tempo (n+1).

Se levarmos em consideração a equação diferencial parcial:

O método de euler explícito, pode entao ser escrito na forma:

Já o método de euler implícito fica na forma: