Вы находитесь на странице: 1из 8

TRABALHO #1

METODOS
NUMERICOS

Recife, 03 de Abril de 2015

Guilherme Pedrosa
Universidade Federal de Pernambuco - UFPE
Programa de Pos Graduacao em Engenharia Mecanica - PPGEM
guilherme.pedrosa@gmail.com

Sum
ario
1. Problema

2. Metodologia

3. Soluc
oes
3.1. Analtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. An
alise das Soluc
oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
4
4
5

A. C
odigo em R

1. Problema
O problema a ser resolvido e uma variac
ao dos exemplos 1.1 e 1.2 encontrados em [1].
Ele pode ser enunciado da seguinte forma:
Um paraquedista pesando 68.1 kg pula de um bal
ao estacion
ario. Compute sua velocidade analitica e numericamente, imediatamente antes de abrir o para-quedas, considerando um coeficiente de arrasto de 12.5 kg/s e g = 9.8m/s2 . A seguir, compute os erros
associados `
a resoluc
ao numerica e realize uma an
alise de sensibilidade parametrica.

Figura 1: Paraquedista em queda livre.

2. Metodologia
A resoluc
ao do problema se dar
a de duas formas distintas:
Resoluc
ao analtica: obtenc
ao de uma solucao exata;
Resoluc
ao numerica: atraves do metodo das diferencas finitas.
A solucao analtica, por ser exata, sera tomada como referencia para a analise de erro
relativa para o metodo das diferencas finitas. Sua obtencao se dara a partir da aplicacao
dos conceitos b
asicos de fsica e c
alculo.
O metodo numerico escolhido para resolucao do problema foi o metodo das diferencas
finitas. Este metodo e proveniente do truncamento da serie de Taylor, utilizada como
aproximacao para a funcao derivada. Os termos da serie superiores `
a segunda ordem
serao desprezados.
Alem da aplicacao do metodo das diferencas finitas, sera realizada uma analise de
sensibilidade do parametro t para verificar sua influencia no processo de convergencia.
Para verificar a proximidade do metodo numerico com a solucao analtica e utilizado o
erro relativo,


V alor V erdadeiro Aproximacao
100
Erro Relativo =
(1)

V alor V erdadeiro
por sua capacidade de identificar o quanto o erro representa percentualmente com
relacao `as grandezas envolvidas.

3. Soluc
oes
Nesta secao sao apresentadas as solucoes analticas e numericas para o problema do
paraquedista.

3.1. Analtica
A partir do diagrama de forcas apresentado na figura 1, e aplicando a segunda lei de
Newton obtem-se:
F = FU + FD
ma = mg cv
dv
m
= mg cv
dt

(2)

Como a forca de resistencia do ar pode ser modelada de diversas formas, foi escolhida
a maneira mais simploria: ela e diretamente proporcional `a velocidade. A equacao que
rege a taxa com que velocidade do paraquedista varia e dada, portanto, por:
dv
c
=g v
(3)
dt
m
Ao aplicar o teorema fundamental do c
alculo, e possvel resolver a express
ao em 3.
O resultado e a equacao que governa a velocidade de queda do paraquedista 4, solucao
analtica do problema.
v(t) =

gm
(1 exp(c/m)t )
c

(4)

3.2. Num
erica
Pelo metodo das diferencas finitas, a equacao 3 pode ser reescrita da seguinte maneira:
dv
v
v(ti+1 ) v(ti )
c
'
=
=g v
dt
t
ti+1 ti
m

(5)

Resolvendo a equacao 5 para v(ti+1 ) explicitamente temos:


h
i
c
v(ti+1 ) = v(ti ) + g v(ti ) (ti+1 ti )
(6)
m
A equacao 6 e f
ormula para o calculo da velocidade do paraquedista no instante t + 1
pelo metodo das diferencas finitas.

3.3. An
alise das Soluc
oes

Solucoes para o problema do paraquedista foram propostas nas secoes anteriores. E


apresentado a seguir uma comparacao entre o metodo analtico de resolucao e o metodo
numerico via diferencas finitas, com t = 2 s, como proposto pelo enunciado do problema
em [1].

v(t)

40

20
Analtica
Numerica
0
0

6
t

10

12

t (s)

vreal (m/s)

vdif.f inital (m/s)

0
2
4
6
8
10
12

0
16.42
27.8
35.68
41.14
44.92
47.54
53.44

0
19.62
32.04
39.9
44.87
48.02
50.01
53.44

Figura 2: Grafico da solucao analtica e Tabela 1: Valores de velocidade do panumerica via metodo das diferaquedista utilizando solucao
rencas finitas para o problema do
analtica e via metodo das diparaquedista.
ferencas finitas.
possvel observar que:
E
O metodo das diferencas finitas superestima o resultado;
O metodo das diferencas finitas converge para a velocidade de equilbrio;
A solucao analtica e valida para todo instante t, enquanto que a solucao numerica
e discreta e v
alida somente nos pontos especificados.
Para verificar o impacto da escolha do t na convergencia do algoritmo, uma an
alise
de sensibilidade foi realizada. Foram selecionados t = 0.4, 0.8, 1.6, 3.2, 5 s. Um grafico
com a soluc
ao analtica e os intervalos t citados encontram-se em 3.

Figura 3: Analise de sensibilidade para o metodo das diferencas finitas com t =


0.4, 0.8, 1.6, 3.2, 5 s.
Quanto maior o intervalo de aproximacao t pior a solucao, especialmente para valores
t < 20 s. A partir dele, para quaisquer valor de t ha convergencia para v = 53.44 m/s.
Uma melhor visualizacao e possvel ao considerar o gr
afico do erro versus tempo 4.
Pode-se observar que o erro, que chega a ser superior a 50% para t = 5 s, decresce
monotonicamente para a soluc
ao estacionaria, nao importando a escolha do paco t .

Figura 4: Erro relativo entre solucao analtica e solucao numerica via metodo das diferencas finitas para t = 0.4, 0.8, 1.6, 3.2, 5 s.

Refer
encias
[1] Steven C. Chapra, Raymond P. Canale, Numerical Methods, New York, 2015, ISBN
9780073397924

A. C
odigo em R
library(ggplot2)
library(reshape2)
# Parachutist problem
dt = 0.1 # Pa
co do tempo (s)
m = 68.1 # Massa do paraquedista (kg)
g = 9.81 # Gravidade (m/s)
c = 12.5 # Coeficiente de atrito (kg/s)
time = seq(0,40,dt)
vreal <- function (t,m,g,c){
vreal <- g*m/c * (1-exp(-(c/m)*t))
}
vmdf <- function (v0,t0,time,m,g,c){
vnum <- vector(mode="numeric", length=length(time))
for (i in 1:length(time)){
if (i==1){
vnum[i] <- v0 + (g-c/m*v0)*(time[i]-t0)
}else{
vnum[i] <- vnum[i-1] + (g-c/m*vnum[i-1])*(time[i]-time[i-1])
}
}
vnum
}
steps <- c(0.4,0.8,1.6,3.2,5)
constructor <- function(steps){
sortedSteps <- sort(steps)
df <- data.frame(time,rep(Real,length(time)),vreal(time,m,g,c)
,vreal(time,m,g,c))
names(df) <- c(Time,Solution,Velocity,VReal)
for (i in 1:length(sortedSteps)){
# Velocities
timestamp <- seq(0,40,sortedSteps[i])
vnumerico <- vmdf(0,0,timestamp,m,g,c)
vrealts <- vreal(timestamp,m,g,c)
newdf <- data.frame(timestamp,rep(as.character(sortedSteps[i]))
,vnumerico,vrealts)
names(newdf) <- c(Time,Solution,Velocity,VReal)
df <- rbind(df,newdf)
}
df
}

dfm <- constructor(steps)


gg <- ggplot(dfm, aes(Time,Velocity)) + geom_line(aes(colour = Solution)) +
theme(axis.title=element_text(size=14,face="bold")) +
xlab(Tempo(s)) +
ylab(Velocidade (m/s))
print(gg)
ggsave(filename="~/Dropbox/Msc/M
etodos Num
ericos/img/comparacao.jpg", plot=gg)
error_analysis <- function(vreal,vnum){
erro <- (vnum-vreal)/vreal * 100
}
erro <- error_analysis(dfm$VReal,dfm$Velocity)
edf <- data.frame(dfm$Time,dfm$Solution,erro)
names(edf) <- c(Time,Solution,Error)
ee <- ggplot(edf, aes(Time,Error)) + geom_line(aes(colour = Solution)) +
theme(axis.title=element_text(size=14,face="bold")) +
xlab(Tempo(s)) +
ylab(Erro(%))
print(ee)
ggsave(filename="~/Dropbox/Msc/M
etodos Num
ericos/img/erro.jpg", plot=ee)

Вам также может понравиться