Buscar

Trabalho Método de Runge Kutta

Prévia do material em texto

UNIVERSIDADE ESTADUAL DA PARAÍBA – UEPB
CENTRO DE CIÊNCIAS,TECNOLOGIA E SAÚDE
CAMPUS VIII – ARARUNA
MÉTODO DE RUNGE-KUTTA: RESOLUÇÕES DE EQUAÇOES DIFERENCIAS ORDINÁRIAS COMPUTACIONALMENTE 
AYRTON WAGNER BERNARDINO TRIGUEIRO
HEITOR VENCESLAU BEZERRA DE SOUZA
SAMUEL NUNES MARQUES
ARARUNA - PB
2014
AYRTON WAGNER BERNARDINO TRIGUEIRO
HEITOR VENCESLAU BEZERRA DE SOUZA
SAMUEL NUNES MARQUES
MÉTODO DE RUNGE-KUTTA: RESOLUÇÕES DE EQUAÇOES DIFERENCIAS ORDINÁRIAS COMPUTACIONALMENTE 
Relatório apresentado ao professor Rafael de Brito Gomes em cumprimento da componente curricular Cálculo Numérico, com a finalidade de obtenção de nota da avaliação da segunda unidade temática.
ARARUNA - PB
2014
INTRODUÇÃO
	Carl David Runge (1856-1927), matemático e físico alemão, trabalhou muitos anos em espectroscopia. A análise de dados o levou a considerar problemas em computação numérica e o método de Runge-Kutta tem origem em seu artigo sobre soluções em 1901 por M. Wilhelm Kutta (1867-1944). Kutta era um matemático alemão que trabalhava com aerodinâmica e é, também, muito conhecido por suas contribuições importantes à teoria clássica de aerofólio.
	Para entender o método de Runge-Kutta, precisamos tomar conhecimento do método de Euler, que é também conhecido como método da reta secante, é um dos métodos mais antigos que se conhece para a solução de equações diferenciais ordinárias. Problemas práticos não devem ser resolvidos com o método de Euler. Existem outros métodos, como o método de Runge-Kutta, que proporcionam resultados com uma melhor precisão e estabilidade se comparados ao método de Euler para o mesmo passo.
	O método de Runge-Kutta pode ser entendido como um aperfeiçoamento do método de Euler, com uma melhor estimativa da derivada da função. No método de Euler a estimativa do valor de é realizado com o valor de e com a derivada no ponto . No método de Runge-Kutta, busca-se uma melhor estimativa da derivada com a avaliação da função em mais pontos no intervalo . Um método de Runge-Kutta de ordem possui um erro da ordem de .
	O método de Runge-Kutta é provavelmente um dos métodos mais populares. O método de Runge-Kutta de quarta ordem também é um dos mais preciosos para obter soluções aproximadas de valor inicial. 
	
.
 
OBJETIVO
	Apresentar o Método de Runge-Kutta, como também sua importância para resoluções de Equações Diferenciais Ordinárias e os possíveis erros associados ao mesmo.
FUNDAMENTAÇÃO TEÓRICA
História da Origem do Método
Brook Taylor (Londres, 18 de agosto de 1685 — Londres, 30 de novembro de 1731) foi um matemático britânico.
Publicou em 1719 o livro New Principles of Linear Perspective, uma versão melhorada do seu trabalho pioneiro intitulado Linear Perspective de 1715. Obra que foi revisada por John Colson em 1749 e reeditada em 1811. 
Taylor realizou a primeira investigação satisfatória sobre refração astronômico, é no entanto, mais conhecido pelo seu trabalho sobre as séries que hoje recebem seu nome, publicado em 1715 em Methodus incrementorum directa et inversa. 
Dito de outra maneira, uma série de Taylor é uma expansão de uma série de funções ao redor de um ponto. No desenvolvimento em Taylor, tem-se: 
 (1)
Leonhard Paul Euler (Basileia, 15 de abril de 1707 — São Petersburgo, 18 de setembro de 1783) foi um grande matemático e físico suíço de língua alemã que passou a maior parte de sua vida na Rússia e na Alemanha.
Euler fez importantes descobertas em campos variados nos cálculos e grafos. Ele também fez muitas contribuições para a matemática moderna no campo da terminologia e notação, em especial para as análises matemáticas, como a noção de uma função matemática.
Além disso ficou famoso por seus trabalhos em mecânica, óptica, e astronomia. Euler é considerado um dos mais proeminentes matemáticos do século XVIII. Uma declaração atribuída a Pierre-Simon Laplace manifestada sobre Euler na sua influência sobre a matemática: 
Em matemática e ciência computacional, o método de Euler, cujo nome relaciona-se com Leonhard Euler, é um procedimento numérico de primeira ordem para solucionar equações diferenciais ordinárias com um valor inicial dado. É o tipo mais básico de método explícito para integração numérica para equações diferenciais ordinárias. 
O Método de Euler segue o Método de Taylor, mas se limita à primeira derivada, ignorando da segunda derivada em diante. 
 (2)
 
Carl David Tolmé Runge (Bremen, 30 de Agosto de 1856 — Göttingen, 3 de Janeiro de 1927) foi um matemático alemão.
Foi inicialmente professor em Hannover e em 1904, sob influência de Felix Klein, foi chamado para Göttingen para a nova cadeira de matemática aplicada (a primeira deste tipo na Alemanha).
Já em Hannover contribuiu para a física da espectroscopia. Em Göttingen desenvolveu, juntamente com Martin Wilhelm Kutta, o método de Runge-Kutta para a resolução numérica de problemas de valores iniciais. Famosa é também sua observação de polinómios de interpolação e o seu comportamento quando se aumenta o grau do polinómio.
Martin Wilhelm Kutta (Byczyna, 3 de novembro de 1867 — Fürstenfeldbruck, 25 de dezembro de 1944) foi um matemático alemão.
De 1885 a 1890 estudou na Universidade de Wrocław, e depois, até 1894, na Universidade de Munique. De 1894 a 1897 foi assistente de Walther von Dyck na Universidade Técnica de Munique. Em 1898 passou meio ano na Universidade de Cambridge. De 1899 a 1909 foi novamente assistente de Walther von Dyck.
De 1909 a 1910 foi professor na Universidade Friedrich Schiller de Jena, e de 1910 a 1912 foi professor na RWTH Aachen.
Em 1912 foi professor na Universidade de Stuttgart, onde permaneceu até aposentar-se em 1935.
Em 1901, baseado em um artigo de Carl Runge, desenvolveu o Método de Runge-Kutta, utilizado para resolver equações diferenciais ordinárias.
Runge – Kutta é um dos métodos mais populares para a integração da equação diferencial de primeira ordem. Esses métodos de aproximação de uma função se usam da expansão por série de Taylor. Desta forma, o método de Runge - Kutta de primeira ordem se utiliza da expansão de Taylor de primeira ordem, o método de Runge - Kutta de segunda ordem se utiliza da expansão de Taylor de segunda ordem, e, assim por diante. Lembrando que o método de Euler é equivalente ao método de Runge - Kutta de primeira ordem.
	No geral a família dos métodos de Runge - Kutta é dada pelas seguintes fórmulas:
 (3)
 (4)
 (5)
 (6)
Característica do Método de Runge-Kutta
	Cada método de Runge-Kutta consiste em comparar um polinômio de Taylor apropriado para eliminar o cálculo das derivadas. Fazendo-se várias avaliações da função a cada passo. Estes métodos podem ser construídos para qualquer ordem 
	Pelo polinômio de Taylor com resto, se uma função tiver derivadas contínuas em um intervalo aberto contendo e , poderemos escrever:
 (7)
onde é algum número entre e .
	Podemos dizer que o método de Runge-Kutta de ordem p se caracterizam pelas seguintes propriedades:
I.) São de passo um (para calcular usamos apenas );
II.) Não exigem o cálculo de qualquer derivada de ; no entanto, pagam, por isso, o preço de calcular em vários pontos;
III.) Após expandir por Taylor para função de duas variáveis em torno de e agrupar os termos semelhantes, sua expressão coincide com a do método de série de Taylor de mesma ordem.
	O método de Runge-Kutta é utilizado para a solução de problemas de valores iniciais em EDOs de primeira ordem. Como todo e qualquer método numérico, ele possui um erro associado devido a quantidade de iteração para a substituições das funções , que contornam os cálculos das derivadas. Essa quantidade de iteraçõesclassificam o método de Runge-Kutta através de ordens, sendo elas, primeira ordem, segunda ordem e assim sucessivamente.
	A ordem do método de Runge-Kutta também simboliza o erro obtido a cada iteração e o erro total acumulado, sendo assim, o método de Runge-Kutta de quarta ordem possui um erro associado a cada iteração da ordem de e o erro total acumulado é da ordem de , visto que .
Runge-Kutta de Primeira Ordem
	Substituindo por e por na eq. (7) obtemos.
 (8)
onde é agora algum número entre e .
	Fazendo na eq. (8) e se o resto for pequeno, obtemos a fórmula de Euler. Ou seja, o método de Runge-Kutta de primeira ordem é equivalente ao método de Euler.
Método de Runge-Kutta de Terceira Ordem
	Para obtermos o método de Runge-Kutta de terceira ordem fazemos 	 na eq. (8) obtemos:
 (9)
		Considerando:
 (10)
		Em que é a função incremento e tem valor . Onde:
 (11)
 (12)
 (13)
		O valor de são obtidos através da expansão de e em torno de em um polinômio de Taylor de grau três. Expandindo a solução teórica em uma sério de Taylor e comparando os coeficientes de mesma potência, de até , onde obtêm-se o sistema abaixo:
	Entretanto, um método de terceira ordem de Runge-Kutta bastante conhecido e utilizado, principalmente na área de cálculos numéricos, é o seguinte:
	Temos que nesse método o erro por passo é da ordem de e o erro total acumulado é de .
	
Método de Runge-Kutta de Quarta Ordem
	Para obtermos o método de Runge-Kutta de quarta ordem fazemos na eq. (8) obtemos:
 (14)
	É necessário encontrar constantes que satisfação:
 (15)
	Pela eq. (10) em que é a função incremento e sabendo que:
 (16)
 (17)
 (18)
 (19)
	Após todas essas operações é possível observar que coincide com um polinômio de Taylor de quarto grau. Isso resulta em 11 equações e 13 incógnitas, ou seja, possui infinitas soluções. Entretanto, o método abaixo é o mais utilizado no que se refere a cálculos numéricos de EDOs.
 (20)
		Temos que nesse método o erro por passo é da ordem de e o erro total acumulado é de .
Exemplos
Exemplo 1:
Utilize o método de Runge-Kutta e calcula uma aproximação de com .
Com 
Em seguida fazemos:
Fazendo as iterações seguintes e arredondando em quatro casas decimais obtemos a tabela seguinte:
	
	
	Valor Exato 
	Erro Absoluto
	Erro Relativo
	1,0000
	1,0000
	1,0000
	0,0000
	0,0000
	1,1000
	1,2337
	1,2337
	0,0000
	0,0000
	1,2000
	1,5527
	1,5527
	0,0000
	0,0000
	1,3000
	1,9937
	1,9937
	0,0000
	0,0000
	1,4000
	2,6116
	2,6117
	0,0001
	0,0000
	1,5000
	3,4902
	3,4904
	0,0001
	0,0001
Algoritmo do método de Runge-Kutta de 1ª, 2ª, 3ª e 4ª Ordem em Python
O python prioriza a velocidade na hora da execução dos algoritmos , e possui uma sintaxe clara combinada com ótimas bibliotecas que auxilia na hora de elaborar um programa minimizando o esforço do programador. Por isso , segue o algoritmo dos métodos de Runge-Kutta de 1ª, 2ª, 3ª e 4ª Ordem.
from math import sqrt # Importação de bibliotecas para escrever a função
from math import exp # que se deseja calcular o problema de valor inicial 
def RungeKutta1(f,y,x,h):
 return y + h*f(x,y)
def RungeKutta2(f,y,x,h):
 return y + 0.5*h*(f(x,y) + f(x+h,RungeKutta1(f,y,x,h)))
def RungeKutta3(f,y,x,h):
 k1 = f(x,y)
 k2 = lambda k1: f(x + h/2, y + h*k1/2)
 k3 = lambda k2: f(x + h, y + 2*h*k2(k1) - h*k1)
 return y + h*(k1+4*k2(k1)+k3(k2))/6
def RungeKutta4(f,y,x,h):
 k1 = h*f(x,y)
 k2 = lambda k1: h*f(x + h/2, y + k1/2)
 k3 = lambda k2: h*f(x + h/2, y + k2(k1)/2)
 k4 = lambda k3: h*f(x+h,y + k3(k2))
 return y + (k1+2*k2(k1)+2*k3(k2)+k4(k3))/6
f = lambda x,y : 2*x*y # Obtêm-se essa função isolando y' na EDO
y0,x0,h,t = 1,1,0.05,0 # Parâmetros iniciais dados para a resolução do problema
# RUNGE-KUTTA 4ª Ordem
# Exemplo de solução através do método de 4ª Ordem
print ('\n\n\t\t\t\tRunge-Kutta 4 Ordem\n\n')
while x0 <= 2.5:
 yn = RungeKutta4(f,y0,x0,h)
 print("y(%2.2f)\t= %4.6f" % (x0,y0))
 y0 = yn
 x0 += h
 
CONCLUSÃO
	Através de estudos feitos sobre o tema apresentado, notamos o quão é importante a resolução de uma EDO, pois diversos fenômenos físicos podem e, se possível, são descritos por EDO's. Em nossa rotina de trabalho, como futuros engenheiros, provavelmente vamos nos deparar com esse tipo de equação. Porém, em alguns casos não é possível resolvê-las analiticamente, é necessário o auxílio de métodos computacionais, como por exemplo, o método aqui apresentado, o método de Runge- Kutta, que é uma importante ferramenta para resolução, com valores altamente precisos.
	Como vimos, o método de Runge-Kutta nos motiva a achar a solução partindo de um valor inicial, aprimorando os valores com a alta minimização dos erros e por fim ter uma solução aceitável.
REFERÊNCIAS
Disponível em: <http://www.usr.inf.ufsm.br/~gbaratto/graduacao/ELC1021/atual/textos/EDO/solucao_EDO_pelos_metodos_Euler_Runge-Kutta.pdf>. Acesso em: 04/11/2014.
Disponível em : <http://www.mat.ufmg.br/~espec/Monografias_Noturna/Monografia_KarineNayara.pdf>. Acesso em: 05/11/2014.
Disponível em: <http://wwwp.fc.unesp.br/~arbalbo/Iniciacao_Cientifica/equacoesdif/teoria/3_Met_Runge-Kutta.pdf>. Acesso em: 06/11/2014.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes