In [1]:
import numpy as np
import matplotlib.pyplot as plt
definice funkce počítající rmk
In [3]:
def rmk(x,k):
n=np.size(x)
#když k=0 geometrický průměr
if k==0:
sum=1
for i in range(n):
sum=sum*x[i]
sum=(sum)**(1/n)
else:
sum=0.0
for i in range(n):
sum=sum+x[i]**k
sum=(sum/n)**(1/k)
return(sum)
pole dat x: simulace 10 náhodných proměnných s normálním rozdělením N(0.95,0.2)
In [5]:
x=np.random.normal(0.95,0.2,10)
rmk počítáme pro k od -100 do 100
In [7]:
xp=np.empty(200)
yp=np.empty(200)
for i in range(200):
k=i-100
xp[i]=k
yp[i]=rmk(x,k)
vykreslení grafu rmk jako funkce k
In [9]:
plt.scatter(xp,yp,c="blue")
plt.xlabel("k")
plt.ylabel("rmk")
# nakreslíme ještě čáru odpovídající minimální a maximální hodnotě pole x
x_min=np.min(x)
x_max=np.max(x)
plt.plot([-100,100],[x_min,x_min],c="red",ls="dashed")
plt.plot([-100,100],[x_max,x_max],c="red",ls="dashed")
Out[9]:
[<matplotlib.lines.Line2D at 0x2a454c17910>]