Introdução aos Computadores e Programação
2004/2005, 1º Semestre
1º Trabalho de OCTAVE
Crescimento de uma População
1. Motivação
Em diferentes países foram recolhidos, durante os últimos 15 anos consecutivos, dados referentes ao número
total de individuos da população residente no país. Existem vários modelos matemáticos para a representação
do crescimento de uma população ao longo do tempo. Os modelos de crescimento linear, exponencial e
logístico são descritos respectivamente pelas equações:
x(t ) = xo + mt ,
x(t ) = xo e rt
e
x(t ) =
kxo e rt
,
xo (e rt − 1) + k
em que x0 é a população inicial, x(t) a população existente no tempo t, e m, r e k os parâmetros dos modelos.
Pretende-se escolher destes modelos, o mais adequado aos dados existentes para cada país e, com o modelo
escolhido, prever qual a população que deverá existir no próximo ano.
2. Descrição do Trabalho
Para cada um dos modelos, linear, exponencial e logístico1, devem ser desenvolvidas as seguintes funções:
•
Uma função (denominada respectivamente limites_lin, limites_exp e limites_log) que, dado um
vector com os 15 valores observados, calcule os intervalos de valores que se devem considerar para
x0 e para cada um dos parâmetros dos modelo de modo a que:
x0∈[v0/2, 2v0]);
m∈[0,20]);
r∈[0.1,0.3]);
k∈[v14, 2v14]);
em que v0, v1, ..., v14 são os 15 valores observados.
•
Uma função (denominada respectivamente modelo_lin, modelo_exp e modelo_log) que, dados os
valores de x0 e dos parâmetros do modelo, calcule os primeiros 16 valores previstos pelo modelo.
•
Uma função (denominada respectivamente melhor_lin, melhor_exp e melhor_log) que, dado um
vector com os 15 valores observados, calcule os primeiros 16 valores previstos pelo modelo usando
os valores de x0 e dos parâmetros do modelo que melhor aproximam os valores observados.
Deverá ser feita uma função (usada para a escolha da melhor aproximação em cada modelo) que avalia a
qualidade da aproximação face aos valores observados. Esta função (denominada distancia) calcula a
seguinte medida de distância entre dois vectores com 15 elementos (v0, ...,v14 e x0,..., x14 que representam
respectivamente os valores observados e os valores previstos pelo modelo):
14
∑ (x
i =0
i
− vi )
2
Deverá ainda ser desenvolvido um programa (denominado melhor_modelo) que de acordo com os dados
registados para um determinado país:
1
•
Apresenta num único gráfico os dados observados (1 série de pontos) e os valores previstos pelo
melhor de cada um dos modelos (3 séries de linhas);
•
Escreve o nome do melhor modelo (linear, exponencial ou logístico) e o respectivo valor previsto
para o próximo ano.
O modelo logístico é opcional.
3. Informação adicional
Os dados observados, que representam a população de um determinado país (em milhões de individuos),
deverão estar definidos num vector linha v (com 15 elementos) inicializado num ficheiro chamado dados.m.
Para efeitos de teste considere o seguinte ficheiro gravado com o nome dados.m:
v=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,39.8,50.2,62.9,76.0,92.0,105.7,122.8]
Durante a avaliação este ficheiro será substituído por outros idênticos mas com valores diferentes.
4. Avaliação
A realização das funções relativas ao modelo logístico (limites_log, modelo_log e melhor_log) é opcional,
podendo ser feitas apenas para valorizar o seu trabalho.
Cada grupo deverá entregar ao docente da aula prática os ficheiros que desenvolveu, devendo os autores
serem claramente identificados. A entrega pode ser feita por via electrónica.
O programa deverá ser demonstrado ao docente em horário a combinar, sendo testado com diferentes
ficheiros de dados (dados.m) não conhecidos previamente. Após a demonstração serão feitas algumas
questões aos alunos participantes sobre o código apresentado.
5. Prazo de Entrega
Os ficheiros deverão ser entregues ao docente até, 2ª feira, dia 22 de Novembro. Por cada dia útil de atraso é
descontado ½ valor (o valor máximo do trabalho é 5 valores).
Download

Crescimento de uma População