import numpy as np
import matplotlib.pyplot as plt
#definindo um vetor de 100 elementos, representando as probabilidades....
np.linspace(0.0001,1,100)
array([1.000e-04, 1.020e-02, 2.030e-02, 3.040e-02, 4.050e-02, 5.060e-02, 6.070e-02, 7.080e-02, 8.090e-02, 9.100e-02, 1.011e-01, 1.112e-01, 1.213e-01, 1.314e-01, 1.415e-01, 1.516e-01, 1.617e-01, 1.718e-01, 1.819e-01, 1.920e-01, 2.021e-01, 2.122e-01, 2.223e-01, 2.324e-01, 2.425e-01, 2.526e-01, 2.627e-01, 2.728e-01, 2.829e-01, 2.930e-01, 3.031e-01, 3.132e-01, 3.233e-01, 3.334e-01, 3.435e-01, 3.536e-01, 3.637e-01, 3.738e-01, 3.839e-01, 3.940e-01, 4.041e-01, 4.142e-01, 4.243e-01, 4.344e-01, 4.445e-01, 4.546e-01, 4.647e-01, 4.748e-01, 4.849e-01, 4.950e-01, 5.051e-01, 5.152e-01, 5.253e-01, 5.354e-01, 5.455e-01, 5.556e-01, 5.657e-01, 5.758e-01, 5.859e-01, 5.960e-01, 6.061e-01, 6.162e-01, 6.263e-01, 6.364e-01, 6.465e-01, 6.566e-01, 6.667e-01, 6.768e-01, 6.869e-01, 6.970e-01, 7.071e-01, 7.172e-01, 7.273e-01, 7.374e-01, 7.475e-01, 7.576e-01, 7.677e-01, 7.778e-01, 7.879e-01, 7.980e-01, 8.081e-01, 8.182e-01, 8.283e-01, 8.384e-01, 8.485e-01, 8.586e-01, 8.687e-01, 8.788e-01, 8.889e-01, 8.990e-01, 9.091e-01, 9.192e-01, 9.293e-01, 9.394e-01, 9.495e-01, 9.596e-01, 9.697e-01, 9.798e-01, 9.899e-01, 1.000e+00])
x = np.linspace(0.0001,1,100)
h = -x*np.log2(x)
#plt.plot(x,h);
##Algumas analises rápidas e interessantes
plt.figure(figsize=(8,4)), plt.plot(x,h);
plt.grid(True);
xmax, ymax = np.argmax(h), np.max(h)
plt.plot(x[xmax],ymax,'ro');
#plt.plot(0.5,0.5,'ko');
plt.plot(x[xmax]*np.ones(len(x)),np.linspace(0,ymax,len(x)),'r--');
plt.plot(0.5*np.ones(len(x)),np.linspace(0,0.5,len(x)),'k--');
#plt.grid(True);
Tem algo estranho aqui! 🤔
Porque o resultado anterior não coincide com a a figura (abaixo) na descrição mostrada na Wikipedia??
## Como o número de bits (quantidade de informação) cresce com o número de estados?
#plt.figure(figsize=(8,5));
for N in range(1,16):
S = np.random.rand(N) #espaços amostrais
p = np.ones(N)/N #probabilidades de um evento
H = np.sum(np.log2(1/p)*p) #Entropia de Shannon
plt.plot(N,H,'ob')
plt.xlabel('probabilidade, $x_i=P(N)$')
plt.ylabel('Entropia de Shannon, $H(x)$')
plt.savefig('entropia.png')
P.S.: Este notebook é um exemplo de como o uso de ferramentas computacionais, para explorar os dados, informações e formalismo, até mesmo de forma integrada às aulas (em tempo real), pode ser utilizada para aprofundar e compreender melhor os conceitos e ideias. Mesmo conceitos abstratos teóricos! Deixo, portanto, "no ar" a pergunta feita na aula para vocês pensarem a respeito e responderem.
Fiquem à vontade de colocar suas respostas e/ou continuar a discussão no fórum (online) no e-Disciplinas.
[S.R.M]