Média Harmônica
A média harmônica de uma amostra é, em termos simples, o inverso da soma dos inversos dos elementos da amostra, dividido pelo tamanho da amostra. Por isso, é uma medida que se torna particularmente útil em situações específicas, como quando os valores são inversamente proporcionais. Por exemplo, podemos aplicá-la no caso da velocidade ou frequência.
Fórmula:
Sendo:
: Média harmônica : Elementos da população ou amostra : Número de elementos da amostra.
Python :
H = len(values) / sum(list(map(lambda x: 1/x, values)))
Julia :
H = length(values) / sum(1 ./ values)
Libs:
Exercício 1
Um automóvel fez um percurso com uma velocidade de 100 km/h em determinado dia. Por outro lado, em outro dia, ele fez o mesmo percurso a uma velocidade de 60 km/h. Assim, surge a seguinte questão: qual seria sua velocidade média nesse mesmo percurso?
Python
''' Sem o uso de bibliotecas '''
lista = [100, 60]
# Calculando a média
H = len(lista) / sum(list(map(lambda x: 1/x, lista)))
# RESPOSTA: H = 75 km/h
''' Utilizando a função harmonic_mean da biblioteca Statistics '''
import statistics as st
# Calculando a média
H = st.harmonic_mean([100, 60])
Julia
" Sem o uso de bibliotecas "
valor = [100, 60]
# Calculando a média
H = length(valor) / sum(1 ./ valor)
Exercício 2
Considere um veículo que realizou o trajeto de ida e volta entre as cidades A e B. Na ida, a velocidade média foi de 80 km/h, enquanto na volta, o valor foi de 120 km/h. Levando isso em conta, qual seria a velocidade média ao considerar o percurso completo de ida e volta?
Python
''' Considerando que a distância percorrida na ida e na volta seja a mesma, inicialmente, pode parecer fácil calcular a média das velocidades médias de ida e volta, o que resultaria em 100 km/h. Entretanto, o que se pede no problema é a velocidade média para o percurso total (ida + volta), e não apenas a média aritmética das velocidades. Dessa forma, é importante ressaltar que a velocidade média é, na verdade, a média harmônica entre as duas velocidades médias: ida = 80 km/h e volta = 120 km/h. '''
''' Sem o uso de bibliotecas '''
lista = [120, 80]
# Calculando a média
H = len(lista) / sum(list(map(lambda x: 1/x, lista)))
# RESPOSTA: 96.0 km/h
''' Utilizando a função harmonic_mean da biblioteca Statistics '''
import statistics as st
# Calculando a média
H = st.harmonic_mean([120, 80])
Julia
" Sem o uso de bibliotecas "
valor = [120, 80]
# Calculando a média
H = length(valor) / sum(1 ./ valor)
Mas, afinal, por que a velocidade média seria 96 km/h? Em que exatamente se baseia esse resultado?
Vamos considerar o seguinte: independentemente da distância entre as cidades, sabemos que as velocidades médias foram de 80 km/h na ida e de 120 km/h na volta. Assim, para facilitar a explicação, vamos adotar que a distância entre as cidades A e B seja de 120 km.
Com base nessas informações, podemos calcular que o tempo gasto na ida seria de 1,5 hora, já que a distância dividida pela velocidade média da ida resulta em: 120 km / 80 km/h = 1,5 h.
Analogamente, na volta, o tempo gasto seria de 1 hora: 120 km / 120 km/h = 1 h.
Dessa forma, para percorrer um total de 240 km, o tempo necessário seria de 2,5 horas. Concluímos, então, que a velocidade média seria: 240 km / 2,5 h = 96 km/h.
Exercício 3
Durante uma viagem espacial, foi descoberto um novo elemento. Ao trazê-lo para a Terra, os cientistas perceberam tratar-se de uma mistura completamente homogênea composta de três substâncias:
- Substância A, com densidade d=0,4 g/cm3d = 0,4 \, \text{g/cm}^3d=0,4g/cm3;
- Substância B, com densidade d=0,6 g/cm3d = 0,6 \, \text{g/cm}^3d=0,6g/cm3;
- Substância C, com densidade d=1,2 g/cm3d = 1,2 \, \text{g/cm}^3d=1,2g/cm3.
Sabendo ainda que as massas da substância A e da substância B são as mesmas, como podemos calcular a densidade dessa mistura?
Python
''' Sem o uso de bibliotecas '''
lista = [0.4, 0.6, 1.2]
# Calculando a média
H = len(lista) / sum(list(map(lambda x: 1/x, lista)))
# RESPOSTA: 0,6 g/cm³
Julia
" Sem o uso de bibliotecas "
valor = [0.4, 0.6, 1.2]
# Calculando a média
H = length(valor) / sum(1 ./ valor)
Harmônico Global
O harmônico global, em resumo, refere-se à média harmônica de todos os dados disponíveis em um conjunto de dados. Por essa razão, ele leva em consideração a totalidade dos elementos da amostra. É especialmente utilizado em aplicações que exigem a análise da tendência central de uma população inteira, como, por exemplo, na avaliação de desempenho de uma equipe esportiva ou de uma empresa.
Fórmula:
Sendo:
: Harmônico global : Elementos da população ou amostra
Python :
Hg = 1 / sum(list(map(lambda x: 1/x, values)))
Julia :
Hg = 1 / sum(1 ./ values)
Exercício 1
Imagine o seguinte cenário: uma torneira é capaz de encher uma caixa-d’água em 3 horas. Entretanto, outra torneira realiza a mesma tarefa em 5 horas. Se abrirmos ambas simultaneamente, qual será o tempo necessário para que a caixa-d’água fique completamente cheia?
Python
''' Sem o uso de bibliotecas '''
lista = [3, 5]
Hg = 1 / sum(list(map(lambda x: 1/x, lista)))
# Como o resultado foi 1.875, temos que converter em um valor temporal
# Descobrindo as horas
horas = int(Hg)
resto_horas = Hg - int(Hg)
# Descobrindo os minutos
minutos = int(60 * resto_horas)
resto_minutos = 60 * resto_horas - int(minutos)
# Descobrindo os segundos
segundos = int(60 * resto_minutos)
# RESPOSTA: Harmônico global: 1.875, sendo este, 1 hora, 52 minutos e 30 segundos
Julia
" Sem o uso de bibliotecas "
valor = [3, 5]
Hg = 1 / sum(1 ./ valor)
# Descobrindo as horas
horas = floor(Int, Hg)
resto_horas = Hg - horas
# Descobrindo os minutos
minutos = floor(Int, 60 * resto_horas)
resto_minutos = 60 * resto_horas - minutos
# Descobrindo os segundos
segundos = floor(Int, 60 * resto_minutos)
Exercício 2
Considere uma residência cuja caixa-d’água é enchida pela rede pública de água em 5 horas. Por outro lado, os moradores da casa consomem a água dessa caixa a ponto de esvaziá-la completamente em 9 horas. Assim, se a entrada e a saída de água estiverem funcionando simultaneamente, quanto tempo será necessário para que a caixa-d’água fique completamente cheia? Indique o tempo em horas, minutos e segundos.
Python
''' Sem o uso de bibliotecas '''
lista = [5, -9]
Hg = 1 / sum(list(map(lambda x: 1/x, lista)))
Hg = float(f'{Hg:.2f}')
# Como o resultado foi 11.25, temos que converter em um valor temporal
# Descobrindo as horas
horas = int(Hg)
resto_horas = Hg - int(Hg)
# Descobrindo os minutos
minutos = int(60 * resto_horas)
resto_minutos = 60 * resto_horas - int(minutos)
# RESPOSTA: Harmônico global: 11.25, sendo este, 11 horas e 15 minutos
Julia
" Sem o uso de bibliotecas "
valor = [5, -9]
Hg = 1 / sum(1 ./ valor)
# Descobrindo as horas
horas = floor(Int, Hg)
resto_horas = Hg - horas
# Descobrindo os minutos
minutos = round(Int, 60 * resto_horas)
resto_minutos = 60 * resto_horas - minutos
Exercício 3
Uma pessoa sozinha consegue construir um muro em 6 horas, enquanto outra pessoa é capaz de realizar a mesma tarefa em 9 horas. Sabendo disso, se ambas trabalharem em conjunto, qual será o tempo total, t, necessário para construir o muro?
Python
''' Sem o uso de bibliotecas '''
lista = [6, 9]
Hg = 1 / sum(list(map(lambda x: 1/x, lista)))
Hg = float(f'{Hg:.1f}')
''' Convertendo o resultado em um valor temporal '''
# Como o resultado foi 3.6, temos que converter em um valor temporal
# Descobrindo as horas
horas = int(Hg)
resto_horas = Hg - int(Hg)
# Descobrindo os minutos
minutos = int(60 * resto_horas)
resto_minutos = 60 * resto_horas - int(minutos)
# RESPOSTA: Harmônico global: 3.6, sendo este, 3 horas e 36 minutos
Julia
" Sem o uso de bibliotecas "
valor = [6, 9]
Hg = 1 / sum(1 ./ valor)
# Descobrindo as horas
horas = floor(Int, Hg)
resto_horas = Hg - horas
# Descobrindo os minutos
minutos = round(Int, 60 * resto_horas)
resto_minutos = 60 * resto_horas - minutos
Deixe um comentário