Considerando que a expressão que modela o crescimento da população brasileira pode
ser escrita como
onde t é dado em anos. Plote um gráfico que mostre o crescimento populacional de 1900 a 2100 (Dica: a função exponencial no Octave é
. Para executar uma divisão elemento a elemento, dividindo o mesmo numerador por um vetor de denominadores, use o comando ./).
ser escrita como
Passo 1
O enunciado pede para traçar (plotar) o gráfico da função que modela o crescimento populacional do Brasil no intervalo de anos de 1900 a 2100. A função dada é
onde
está em anos. As informações relevantes que temos são:
- A expressão explícita de
: . - O intervalo temporal para o gráfico:
. - A dica técnica: no Octave a exponencial é
e a divisão elemento-a-elemento usa (útil quando se divide um escalar por um vetor).
Passo 2
Entender rapidamente o que essa função é e o que os parâmetros significam (isso ajuda a escolher escalas e checar o resultado na hora da prova).
-
Essa é uma função logística (forma clássica):onde:
-
é a capacidade de suporte (valor assintótico máximo); aqui . -
é a taxa de crescimento; aqui . -
é o ano do ponto médio (onde a população atinge ); aqui .
-
-
Verificações rápidas (úteis para conferir se o gráfico ficou correto):
- Para
(ponto médio) temos , então - Para
:
- Para
- Para
:
Essas contas dão uma ideia de escala: no começo do século XX a população modelo está na casa das dezenas de milhões, em 1950 vale metade de
, e em 2100 já está bem próxima de
.
Passo 3
Como construir o vetor de anos e calcular
no Octave (lembre: Octave opera bem com vetores; use operação elemento-a-elemento).
- Escolher resolução do eixo
: para um gráfico suave, pode-se usar passo anual ( ano) ou passo menor (por exemplo ano). Passo anual é suficiente aqui. - Em Octave cria-se um vetor linha de
assim: (isso gera anos inteiros de 1900 a 2100). - Calcular
de forma vetorizada: - A expressão em Octave que replica a fórmula é (atenção aos operadores elemento-a-elemento):
- Aqui
calcula exponenciais elemento-a-elemento e divide o escalar pelo vetor de denominadores.
- A expressão em Octave que replica a fórmula é (atenção aos operadores elemento-a-elemento):
Passo 4
Como montar o gráfico de forma clara (rotular e ajustar aparência — útil para prova e apresentação).
- Comandos úteis em Octave (explicando cada um):
-
: traça versus com linha contínua e largura maior. -
: fixa o eixo no intervalo pedido. -
: assegura que o eixo mostre até um pouco acima de para visualização. -
e : rótulos dos eixos. -
: título do gráfico. -
: liga grade para facilitar leitura. -
e se quiser marcar (opcional). -
salva a figura em arquivo PNG.
-
Passo 5
Código completo pronto para copiar/colar no Octave. Esse script gera o gráfico e faz as marcações/checagens que expliquei (ele também imprime valores de checagem para
).
Resposta
% Script Octave para plotar P(t) de 1900 a 2100
t = 1900:2100; % vetor de anos (passo 1 ano)
P = 157273000 ./ (1 + exp(-0.0313 * (t - 1950))); % cálculo vetorizado de P(t)
figure;
plot(t, P, '-', 'LineWidth', 2); % traça a curva
xlim([1900 2100]);
ylim([0 1.05 * 157273000]);
xlabel('Ano');
ylabel('Populacao');
title('Crescimento populacional (modelo logístico)');
grid on;
% Marcação opcional do ano médio t0 = 1950 e valores de checagem
hold on;
plot([1950 1950], [0 157273000], '--r', 'LineWidth', 1); % linha vertical em 1950
text(1952, 78636500, 't_0 = 1950 (P = K/2)', 'Color', 'r');
% Mostrar alguns valores de referência no console
P1900 = 157273000 / (1 + exp(-0.0313 * (1900 - 1950)));
P1950 = 157273000 / 2;
P2100 = 157273000 / (1 + exp(-0.0313 * (2100 - 1950)));
fprintf('P(1900) ≈ %d\n', round(P1900));
fprintf('P(1950) = %d\n', round(P1950));
fprintf('P(2100) ≈ %d\n', round(P2100));
% Salvar figura (opcional)
print -dpng 'populacao_1900_2100.png';