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).