FORTRAN 90/95 (Euler)

Expõe aqui as tuas questões e dúvidas sobre assuntos de Física.

FORTRAN 90/95 (Euler)

Mensagempor Jujubean em Domingo Jul 20, 2008 10:31 pm

Olá,

gostaria de saber se há alguém que percebe de FORTRAN e que me pudesse explicar o método de Euler e o método de Euler modificado.

Obrigada :D
Avatar do utilizador
Jujubean
gluão
gluão
 
Mensagens: 6
Registado: Domingo Jul 20, 2008 9:56 pm

Mensagempor hexphreak em Segunda Jul 21, 2008 12:18 am

Os métodos de Euler e de Euler modificado são métodos numéricos, que não precisam de fazer alusão a qualquer linguagem de programação em particular :)

O método de Euler é bastante intuitivo. Se tivermos um par de equações da forma

\frac{dy}{dt} = f(y)
y(0) = y_0

queremos encontrar uma aproximação numérica ao valor de y para um dado t. Para isso, escolhemos um passo h, tal que o intervalo [0,t] é dividido em t/h subintervalos [t_i,t_{i+1}].

Agora, uma vez que sabemos a derivada em t_i, linearizamos à volta deste ponto, de tal modo que se y_i = y(t_i) temos y_{i+1} = y_i + y'_i h = y_i + f(y_i)h.

Este método tem o enorme defeito de acumular um erro significativo se o passo não for suficientemente pequeno. O método de Euler modificado apresenta um melhoramento que consiste em utilizar a média das derivadas em t_i e em t_{i+1}, ou seja, y_{i+1} = y_i + h(y'_i + y'_{i+1})/2, em que a primeira aproximação a y_{i+1}, utilizada para calcular a derivada no ponto, é dada pelo método de Euler.

Espero não ter sido muito confuso :) Se precisares de implementações em Fortran também se arranjam.
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Mensagempor Jujubean em Segunda Jul 21, 2008 3:51 pm

eu percebo a base do método (muito obrigado já agora :D ) mas o meu problema é passar para código FORTRAN

todos os livros que eu já li não têm um exemplo de um programa com o Método mais umas sidenotes para nos sabermos orientar.

alguém me pode ajudar com isso?
Avatar do utilizador
Jujubean
gluão
gluão
 
Mensagens: 6
Registado: Domingo Jul 20, 2008 9:56 pm

Mensagempor jap em Segunda Jul 21, 2008 4:59 pm

Não é nada difícil encontrar implementações do método de Euler em FORTRAN na net, vê por exemplo


http://computation.pa.msu.edu/phy201/worksheet9tex/node3.html


De qualquer forma, o método é tão básico que a sua programação em FORTRAN ou em qualquer outra linguagem de programação é muitas vezes usada como um exercício simples de codificação de um algoritmo numérico.

Aqui vai o algoritmo em Python:

Código: Seleccionar Todos
def euler(f,x,y,h,xmax):
      """
      Integrates y'=f(x,y) with initial value y(x), step size h to xmax
      using the Euler method. Returns a list of pairs (x,y).
      """
      table = [[x,y]]
      while x < xmax:
                   y += h*f(x,y)
                   x += h
      table.append([x,y])
      return table
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra


Voltar para Questões sobre Física

Quem está ligado

Utilizadores a navegar neste fórum: Nenhum utilizador registado e 2 visitantes

cron