1º Trabalho Computacional - Análise Numérica (2020/21)
Relatório-resumo do Grupo: 00 Nome: Nome do Aluno (nº 99999)
Questão 1.a):
Exemplico apenas um aspecto gráco para o relatório(podem usar outro). Uso aqui minimização por mínimos quadrados - com ajustamento a uma curva Gaussiana.
Motivo: o ajustamento de dados aleatórios, que crescem com tendência exponencial, mas que não podem crescer indenidamente, é justicado neste caso.
[R1a1]Sendo os pontos a vermelho os valores diários conheci-dos, o gráco da função gaussiana f está a negro, estendendo-se até ao dia 50 (19 de Abril).
0 10 20 30 40 50
500 1000 1500 2000
O gráco está cortado, para visualização da parte relevante, sendo neste caso f(50) = 50 203.
[R1a2]A tabela pedida seria esta: xk Valores Exactos Estimados
5 8 4 10 19 18 15 117 70 20 320 241 25 724 755 30 ?? 2139
Interessa especialmente aqui ver se a função aproxima os dados conhecidos (interpolação), já que extrapolações há muitas...
Podem complementar indicando o erro absoluto máximo, ou algo que conside-rem relevante.
Questão 1.b):
[R1b1]O mesmo que anteriormente, com dados até 2 de Abril, incluindo os vericados posteriormente (pontos a cinzento).
0 10 20 30 40 50
500 1000 1500
2000 [R1b2] Surge aqui a nova tabela:
xk Valores exactos Estimados
30 808 867
35 452 1136
40 515 1144
45 750 885
É relevante notar que nesta altura (2 de Abril) era já clara a tendência para um pico máximo antes de 9 de Abril, seguido de decréscimo, o que se iria ve-ricar nos dias seguintes. Constata-se aliás que esse pico ocorreu mesmo no nal de Março.
Questão 1.c):
[R1c] É claro que um tratamento para dados aleatórios, depende de múltiplos factores, que não estão relacionados com o número de casos, como seja a maior ou menor capacidade de testagem, a efectividade dessa testagem, e outras condicionantes.
Quando factores desconhecidos inuenciam ou comprometem os dados, é preferível uma abordagem semi-aleatória. Não é conveniente ser completamente aleatória, quando há alguma regularidade, e bastaria fazer o gráco do logaritmo: 10 20 30 40 50 1 2 3 4 5 6 7
para vericar um comportamento com um aspecto algo previsível, ajustando os dados a uma curva regularizada conveniente.
Perto de 20 de Março, poderia vericar-se a mudança de curvatura (calculando a segunda derivada regula-rizada), e no nal de Março, era clara a tendência para estabilização ou decréscimo.
Portanto, com base neste comportamento, até nal de Março poderia conjecturar-se f (50) ≈ exp(6.63) = 742.48(∼ 742)
(outras previsões apontavam para números muitíssimo superiores). Etc, etc... Questão 2.a):
[R2a1]Considera-se aqui a ilha de S. Nicolau em Cabo Verde. Usamos apenas splines lineares como ilustração.
Aqui foram usados 90 pontos, mas podem começar com um número maior e deixar apenas 72.
A imagem do Google Maps sem etiquetas é conseguida no modo satélite indo às opções (mas isso não é relevante). Podem obter a escala usando Medir distâncias (botão da direita).
[R2a2] Colocamos agora a imagem com menos pontos, apenas para ilustração. O spline cúbico deverá acompanhar tanto quanto possível a costa, mas não é preciso optimizar a distância da curva à costa.
Serve apenas para ilustrar a capacidade dos splines se ajustarem a um contorno.
Questão 2.b): [R2b] Aqui usei a fórmula da área de um polígono de vértices xk= (xk, yk)
Área = 1 2 n−1 X k=0 (xkyk+1− xk+1yk) Perímetro = n−1 X k=0 ||xk+1− xk||
e aqui o perímetro é dado pela soma das distâncias e xn= x0. No trabalho não é isto!
No trabalho devem usar integração numérica, e não usar NIntegrate, Derivative, ou outras funções já implementadas, pois não contam como programação vossa.
Os resultados obtidos foram:
Pontos Área (Km2) Perímetro (Km)
90 355.574 123.297
20 346.655 109.708
e quando comparada com a área ocial 344 Km2, não é bom, mas este algoritmo é também bastante rudimentar,
sujeito a cancelamento subtractivo, e especialmente ao ajuste de pontos e escala.
Código LaTeX
Podem usarverbatimpara o código car no modo copy/paste. \documentclass[10pt,portuges]{article} \usepackage[T1]{fontenc} \usepackage[latin9]{inputenc} \usepackage[a4paper]{geometry} \geometry{verbose,lmargin=2cm,rmargin=2cm} \usepackage{color} \usepackage{calc} \usepackage{textcomp} \usepackage{graphicx} \usepackage{amsbsy} \usepackage{amstext} \voffset=-2cm \textheight=27cm \usepackage[dvipsnames]{xcolor} \usepackage{babel} \usepackage{multicol} \usepackage{array} \newcommand{\cX}[1]{\begin{center}#1\end{center}} \newcommand{\corX}[2]{{\color{#1}#2}} \newcommand{\colXX}[2]{
\begin{center}\begin{tabular}{m{9.5cm} m{0.5cm} m{6cm}} #1& \end{tabular}\end{center}}
\newcommand{\tX}[1]{\begin{tabular}#1\end{tabular}} \begin{document}
\noindent\begin{minipage}[t]{1\columnwidth}\textsf{\textbf{\textcolor{blue} {\Large 1º Trabalho Computacional - Análise Numérica (2020/21)}}}
\end{minipage} \medskip\noindent
\fbox{\begin{minipage}[t]{1\columnwidth - 2\fboxsep - 2\fboxrule} \textbf{Relatório-resumo do Grupo:} 00
\hfill \textbf{Nome:} Nome do Aluno (nº 99999) \end{minipage}}
\bigskip\noindent {\bf Questão 1.a):}
\corX{blue}{\bf Exemplifico apenas um \emph{aspecto gráfico} para o relatório} (podem usar outro).
Uso aqui minimização por mínimos quadrados - com ajustamento a uma curva Gaussiana. Motivo: \emph{o ajustamento de dados aleatórios, que crescem com tendência
exponencial, mas que não podem crescer indefinidamente, é justificado neste caso.} \colXX{ %%%%
\corX{blue}{[R1a1]}
Sendo os pontos a vermelho os valores diários conhecidos, o gráfico da função gaussiana $f$ está a negro,
estendendo-se até ao dia 50 (19 de Abril). \includegraphics[scale=0.65]{trab01.pdf}
O gráfico está cortado, para visualização da parte relevante, sendo neste caso $f(50)=50\,203.$
}{ %%%%
\corX{blue}{[R1a2]} A tabela pedida seria esta: \medskip
\begin{tabular}{|l|c|c|} \hline
$x_k$ & Valores Exactos & Estimados\\ \hline 5 & 8 & 4 \\ \hline
10 & 19 & 18 \\ \hline 15 & 117 & 70 \\ \hline 20 & 320 & 241 \\ \hline 25 & 724 & 755 \\ \hline 30 & ?? & 2139 \\ \hline \end{tabular}
\medskip
Interessa especialmente aqui ver se a função aproxima os dados conhecidos (interpolação), já que extrapolações há muitas...
Podem complementar indicando o erro absoluto máximo, ou algo que considerem relevante. } %%%%
\bigskip \noindent
{\bf Questão 1.b):} \colXX{ %%%%
\corX{blue}{[R1b1]}
O mesmo que anteriormente, com dados até 2 de Abril,
incluindo os verificados posteriormente (pontos a cinzento). \includegraphics[scale=0.65]{trab02.pdf}
}{ %%%%
{\color{blue}[R1b2] } Surge aqui a nova tabela: \medskip
\begin{tabular}{|l|c|c|} \hline
$x_k$ & Valores exactos & Estimados\\ \hline 30 & 808 & 867 \\ \hline
35 & 452 & 1136 \\ \hline 40 & 515 & 1144 \\ \hline 45 & 750 & 885 \\ \hline \end{tabular}
\bigskip
É relevante notar que nesta altura (2 de Abril) era já clara a tendência para um pico máximo antes de 9 de Abril, seguido de decréscimo, o que se iria verificar nos dias seguintes. Constata-se aliás que esse pico ocorreu mesmo no final de Março. } %%%%
\newpage \noindent
{\bf Questão 1.c):} {\color{blue}[R1c]}
É claro que um tratamento para dados aleatórios, depende de múltiplos factores, que não estão relacionados com o número de casos, como seja a maior ou menor capacidade de testagem, a efectividade dessa testagem, e outras condicionantes.
Quando factores desconhecidos influenciam ou comprometem os dados, é preferível uma abordagem semi-aleatória.
Não é conveniente ser completamente aleatória, quando há alguma regularidade, e bastaria fazer o gráfico do logaritmo:
$$ \includegraphics[scale=0.65]{trab03.pdf} $$
para verificar um comportamento com um aspecto algo previsível, ajustando os dados a uma curva regularizada conveniente.
Perto de 20 de Março, poderia verificar-se a mudança de curvatura (calculando a segunda derivada regularizada), e no final de Março, era clara a tendência para estabilização ou decréscimo.
Portanto, com base neste comportamento, até final de Março poderia conjecturar-se $$ f(50)\approx \exp(6.63) = 742.48 (\sim 742) $$
(outras previsões apontavam para números muitíssimo superiores). Etc, etc... \bigskip\noindent
{\bf Questão 2.a):}
\corX{blue}{[R2a1]} Considera-se aqui a ilha de S. Nicolau em Cabo Verde. Usamos apenas splines lineares como ilustração.
$$ \includegraphics[scale=0.5]{trab04.pdf} $$
Aqui foram usados 90 pontos, mas podem começar com um número maior e deixar apenas 72.
A imagem do Google Maps sem etiquetas é conseguida no modo satélite indo às opções (mas isso não é relevante).
\newpage
\corX{blue}{[R2a2]}
Colocamos agora a imagem com menos pontos, apenas para ilustração.
O spline cúbico deverá acompanhar tanto quanto possível a costa, mas não é preciso optimizar a distância da curva à costa.
Serve apenas para ilustrar a capacidade dos splines se ajustarem a um contorno. $$ \includegraphics[scale=0.5]{trab05.pdf} $$
\bigskip\noindent {\bf Questão 2.b):} {\color{blue}[R2b]}
Aqui usei a fórmula da área de um polígono de vértices $\mathbf x_k=(x_k,y_k)$ $$
\mbox{Área}=\left|\frac12\sum_{k=0}^{n-1} (x_ky_{k+1}-x_{k+1}y_k)\right| \qquad
\mbox{Perímetro}=\sum_{k=0}^{n-1} ||\mathbf x_{k+1}-\mathbf x_{k}|| $$
e aqui o perímetro é dado pela soma das distâncias e $\mathbf x_n=\mathbf x_0$. \corX{red!80!}{\bf No trabalho não é isto!}
\medskip
No trabalho devem usar integração numérica, e {\bf não usar} NIntegrate, Derivative, ou outras funções já implementadas, pois não contam como programação vossa.
\medskip Os resultados obtidos foram: \cX{\begin{tabular}{|l|c|c|} \hline
Pontos & Área (Km$^2$) & Perímetro (Km)\\ \hline 90 & 355.574 & 123.297 \\ \hline
20 & 346.655 & 109.708 \\ \hline \end{tabular} } %%% cX
e quando comparada com a área oficial 344 Km$^2$, não é bom, mas este algoritmo é também bastante rudimentar, sujeito a cancelamento subtractivo, e
especialmente ao ajuste de pontos e escala.
\bigskip\noindent \cX{\Large \corX{blue}{\bf -- Código LaTeX --}}
Podem usar \corX{blue}{verbatim} para o código ficar no modo copy/paste. \end{document}