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>]
No description has been provided for this image