Você está na página 1de 3

MINISTÉRIO DA EDUCAÇÃO

Universidade Federal de Alfenas. UNIFAL-MG


Rua Gabriel Monteiro da Silva, 700. Alfenas/MG. CEP 37130-000
Fone: (35) 3299-1000. Fax: (35) 3299-1063

Disciplina: Cálculo Numérico


Discente: Vinícius Gabriel Silva Nogueira
Matrícula: 2014.1.10.034

Relatório Atividade Avaliativa 1B


Link para o código: https://rextester.com/DMPU8251

x=seq(1930,2010,by=10);x
x=(x-1930)/10
y=c(0.63,0.76,0.92,1.1,1.2,1.3,1.5,1.7,1.9);y
n=length(x)
plot(x,y,col="red")

v<-function(u){ # função v(u)


a=u[1];b=u[2]; c=u[3]
p=0
for (i in 1:n){
p=p+(y[i]-a/(b+c*exp(-a*x[i])))^2
}
p/2
}

# Teste do código para v(u)


v(c(1,2,3))

gradnv<-function(u){ # gradiente de v(u)


a=u[1];b=u[2]; c=u[3]
p=0
for (i in 1:n){
p=p+(y[i]-a/( b+c*exp(-a*x[i])))*c(-(b+c*exp(-a*x[i]))+a*c*exp(-a*x[i])*(-x[i]), a,
a*exp(-a*x[i]))/(b+c*exp(-a*x[i]))^2}
p
}
# Teste da função gradnv(u)
gradnv(c(1,2,3))

ZeroEuler<-function(u0,t,m){ # método de Euler


w=u0
h=t/m
for (i in 1:m){w=w-h*gradnv(w)}
w
}

# Teste de aproximação de solução do problema de minimização


u0=c(1,0.45,0.8);print("Condição inicial");u0;
t=10; m=100000
print("Teste de v(u0)");v(u0) # Teste de v(u0)

u=ZeroEuler(u0,t,m) ; print("Aproximação"); u # Aproximadamente u(t)


print("Teste de minímo aproximado");v(u) # Teste de minímo aproximado

# Definição da aproximação de f(u)


a=u[1];b=u[2]; c=u[3]
print("Parâmetros");u
eqdif<-function(s){a/(b+c*exp(-a*(s-1930)/10))}

print("Provável população em 2021");eqdif(2021)

curve(eqdif,-5,5,ylim=c(0,78))
points(x,y,col="red") # Teste de ajuste

plot(x,y-eqdif(seq(1930,2010,by=10)),'l')
Etapas do desenvolvimento:
• Inicialmente foi plotado os dados do problema e nomeada uma função v que irá
descrevê-los;
• Determinamos o gradiente de v;
• Assim, foram realizados vários testes que buscavam a aproximação da solução
através de modificações nas condições iniciais u0, nos passos t e na quantidade
(m).
• Por fim, a estimativa da população em 2021 foi gerada à partir da função eqdif que
propõe um modelo de equação diferencial para o crescimento de populações.

Você também pode gostar