{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Laboratório 4\n",
"\n",
"**Resolva todos os problemas por computação.**\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Problema 1:** O _Índice de Massa Corpórea_ (IMC) é usado para saber se um indivíduo está no peso ideal. Ele é definido pela fórmula\n",
"\n",
"$$IMC = \\dfrac{M}{A^2},$$\n",
"\n",
"onde $M$ é a massa (considere quilogramas) do indivíduo e $A$ é a sua altura (considere metros). Um indíviduo tem *peso normal* se seu IMC estiver no intervalo faixa $18.5 \\leq IMC < 25.0$. \n",
"\n",
"A seleção brasileira masculina de futebol profissional convocada para a Copa do Mundo 2018 era composta de 23 jogadores, a saber: Alisson, Casemiro, Cássio, Danilo, Douglas Costa, Ederson, Fagner, Fernandinho, Filipe Luis, Firmino, Fred, Gabriel Jesus, Geromel, Marcelo, Marquinhos, Miranda, Neymar, Paulinho, Philippe Coutinho, Renato Augusto, Taison, Thiago Silva e Willian.\n",
"\n",
"O arquivo copa2018.npy, disponibilizado juntamente com este arquivo, contém uma tabela de peso, altura e idade de cada um desses atletas. \n",
"\n",
"O gráfico abaixo plota o valor do IMC para cada um desses jogadores. Todos os jogadores possuem peso ideal, mas a linha tracejada divide-os em dois grupos: \n",
"\n",
"- Grupo 1: aqueles na faixa ideal cujo IMC é menor do que 21.7.\n",
"- Grupo 2: aqueles na faixa ideal cujo IMC é maior do que 21.7.\n",
"\n",
"```{figure} figs/04/imc.png\n",
"---\n",
"width: 800px\n",
"name: imc-selecao\n",
"---\n",
"IMC dos jogadores da seleção brasileira da Copa de 2018. [[Fonte: ESPN]](https://www.espn.com.br/artigo/_/id/4310177/selecao-brasileira-veja-o-censo-completo-dos-jogadores-que-vao-a-copa)\n",
"```\n",
"Carregue as informações do arquivo e reproduza o gráfico da figura anterior ou crie um similar estilizando-o do seu modo que contenha: \n",
"\n",
"- a linha tracejada intermediária;\n",
"- marcadores coloridos de modo distinto;\n",
"- eixo com os nomes dos jogadores;\n",
"- linhas de grade;\n",
"\n",
"**Obs.:** Use a função do *numpy* `load('...')`, com a opção `allow_pickle=True`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Problema 2**: A _Taxa Metabólica Basal_ (TMB) é a quantidade mínima de energia que o ser humano, em repouso, precisa para sobreviver. A *Equação de Mifflin - St. Jeor* para calcular a TMB em kcal/dia (quilocalorias por dia) de pessoas do sexo masculino é dada por: \n",
"\n",
"$$TMB = 10M + 6.25A - 5I + 5,$$\n",
"\n",
"onde $M$ é a massa do indivíduo, $A$ sua altura e $I$ sua idade. \n",
"\n",
"[[Fonte: Wiikipedia]](https://en.wikipedia.org/wiki/Basal_metabolic_rate)\n",
"\n",
"Usando a equação de Mifflin - St. Jeor: \n",
"\n",
"- calcule a energia necessária total para a manutenção vital de todos os jogadores da seleção de 2018 durante um ano inteiro, isto é, a TMB anual. Considere 1 ano = 365 dias.\n",
"- calcule a TMB anual do time inteiro para o quinquenio 2020 - 2024. Assuma o início do período em 1 de janeiro de 2020 e que nenhuma alteração na escalação do time ocorrerá no período.\n",
"- plote um gráfico em que o eixo `x` deve corresponder ao quinquênio e o eixo `y` ao total da TMB para todos os jogadores em cada ano. Use marcadores do tipo `'o'`.\n",
"- qual é o valor total em kcal no final de 2024? \n",
"\n",
"**Obs:** Note que a idade dos jogadores se altera com o tempo. Isto é, após o quinquênio estarão 5 anos mais velhos e a TMB para cada um será diferente a cada ano."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Problema 3:** O movimento executado por uma bola de futebol ao ser chutada a partir do campo por um jogador é similar ao movimento parabólico de um projétil. A velocidade da bola $V_b$ pode ser calculada pela expressão:\n",
"\n",
"$$V_b = V_p\\left( \\dfrac{M_p}{M_p + M_b} \\right)(1 + e),$$\n",
"\n",
"onde $V_p$ é a velocidade da perna do chutador, $M_p$ é a massa da perna do chutador, $M_b$ é a massa da bola e $e$ é o *coeficiente de restituição* da bola. \n",
"\n",
"O alcance $a$ é a medida horizontal máxima que a bola atinge a partir do ponto de lançamento de acordo com um certo ângulo em que é lançada. Como conhecemos da Física Básica, a fórmula para o alcance é dada por: \n",
"\n",
"$$a = \\dfrac{V_b^2\\textrm{sen}(2\\alpha)}{g}$$\n",
"\n",
"Diante disso, considere os seguintes dados: \n",
"\n",
"- A massa da bola de futebol profissional é de 400 gramas e seu coeficiente de restituição é 0.7.\n",
"- A massa da perna de um jogador equivale a 10% de sua massa.\n",
"- A velocidade da perna de um jogador é de 20 m/s.\n",
"- A constante gravitacional equivale a 9.8 m/s2.\n",
"\n",
"Assuma que um campo de futebol profissional \"padrão FIFA\" possui área de 100 x 68 2. Além disso, defina um *Whole-Field Kicker* (WFK) o jogador que, chutando uma bola a um ângulo de 45 graus, consegue transportá-la de gol a gol, ou seja de uma linha de fundo a outra, e como *Not Whole-Field Kicker* (not WFK) aquele que não consegue realizar esta proeza.\n",
"\n",
"Usando os dados disponíveis na tabela dos jogadores da seleção de 2018:\n",
"\n",
"- determine os jogadores que são \"WFK\" e os \"not WFK\", bem como a quantidade de jogadores em cada classe.\n",
"- determine quem é o WFK do time que chuta mais longe.\n",
"- determine qual é o menor alcance entre os chutes.\n",
"- plote um gráfico do tipo jogador x alcance, colorindo os \"not WFK\" com marcadores com borda vermelha e cor de face branca.\n",
"\n",
"[[Fonte: Physics of Kicking a Soccer Ball]](http://www.mathematicshed.com/uploads/1/2/5/7/12572836/physicsofkickingsoccerball.pdf)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Problema 4:** Em 1835, o astrônomo James Inman desenvolveu a _fórmula de Haversine_. A fórmula de haversine (ou _de haverseno_) é uma equação usada em navegação para fornecer distâncias entre dois pontos de uma esfera a partir de suas latitudes e longitudes. É um caso especial de uma fórmula mais geral de trigonometria esférica, a _lei dos haversines_, que relaciona os lados e ângulos de um triângulo contido em uma superfície esférica.\n",
"\n",
"A distância mais curta $d$ entre dois pontos sobre uma esfera de raio $R$ cujas latitudes são $(\\phi_1,\\phi_2)$ e longitudes $(\\theta_1,\\theta_2)$ é dada por:\n",
"\n",
"$$d = 2R \\, \\textrm{arcsen}\\big(\\sqrt{ \\textrm{hav}(\\phi_2 - \\phi_1) + \\cos(\\phi_1)\\cos(\\phi_2)\\textrm{hav}(\\theta_2 - \\theta_1) } \\big),$$\n",
"\n",
"onde $\\textrm{hav}(\\alpha) = \\textrm{sen}^2\\big(\\frac{\\alpha}{2}\\big)$ é a função haverseno de um ângulo $\\alpha$.\n",
"\n",
"\n",
"A tabela abaixo lista os 5 aeroportos mais movimentados do mundo em 2014, com latitudes e longitudes dadas em graus.\n",
"\n",
"|IATA| Aeroporto|$\\phi$|$\\theta$\n",
"|---|---|---|---|\n",
"|FRA|Frankfurt|50.026|8.543|\n",
"|DEN|Denver International|39.862|-104.673|\n",
"|BKK|Suvarnabhumi|13.681|100.747|\n",
"|SYD|Sydney Kingsford-Smith|-33.946|151.177|\n",
"|GRU|Guarulhos|-23.432|-46.47|\n",
"\n",
"Tarefas:\n",
"\n",
"- Escreva uma função para calcular a distância mais curta em quilômetros entre dois pontos quaisquer sobre a superfície da Terra (considere $R = 6378.1$ km) dadas as suas latitudes e longitudes. \n",
"- Use esta função para calcular as distâncias dois-a-dois para todos os aeroportos da tabela acima dadas não só as latitudes e longitudes, mas também os seus códigos IATA.\n",
"- Construa uma matriz numérica $M$ de correlação de distâncias _estritamente triangular inferior_ com base na ordem alfabética do código IATA. Note que uma matriz estritamente triangular inferior é possui zeros em todas as posições $M_{ij}$, exceto quando $i > j$. Logo, não é necessário computar duas vezes um mesmo trajeto, por exemplo, a distância de FRA a DEN será a mesma de DEN a FRA. (Vide exemplo de uma matriz de distâncias [aqui](https://www.researchgate.net/figure/Figura-2-Matriz-de-distancias_fig3_322896495))\n",
"- Determine $i$ e $j$ tais que $M_{ij}$ é máxima, bem como o valor de $M_{ij}$."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 4
}