In [120]:
import numpy as np
import matplotlib.pyplot as plt
In [121]:
def Cauchy_pdf(x):
return(1/np.pi*1/(1+x**2))
def Gaussian_pdf(x,mu,sigma):
return(1/(np.sqrt(2*np.pi)*sigma)*np.exp(-(x-mu)**2/(2*sigma**2)))
In [135]:
xp=np.arange(-5,5,0.01)
plt.plot(xp,Cauchy_pdf(xp),label='Cauchy')
plt.plot(xp,Gaussian_pdf(xp,0,0.85),c='red',label='Gaussian')
plt.xlim(-5,5)
plt.ylim(0,)
plt.xlabel('x')
plt.ylabel('pdf(x)')
plt.legend()
plt.show()
In [123]:
N=1000 #celkový počet dat
mean_C=np.empty(N) #aritmentický průměr hodnot z Cauchyho rozdělení
mean_G=np.empty(N) #aritmentický průměr hodnot z Normálního rozdělení N(0,0.85)
median_C=np.empty(N) #medián hodnot z Cauchyho rozdělení
median_G=np.empty(N) #medián hodnot z Normálního rozdělení N(0,0.85)
x_C=np.empty(N) #pole hodnot z Cauchyho rozdělení
x_G=np.empty(N) #pole hodnot z Normálního rozdělení N(0,0.85)
for i in range(N):
x_C[i]=np.tan(np.pi*(np.random.random()-0.5)) #simulace hodnot z Cauchyho rozdělení
x_G[i]=np.random.normal(0,0.85) #simulace hodnot z Normálního rozdělení N(0,0.85)
mean_C[i]=np.mean(x_C[0:i])
mean_G[i]=np.mean(x_G[0:i])
median_C[i]=np.median(x_C[0:i])
median_G[i]=np.median(x_G[0:i])
In [124]:
k=np.arange(0,N,1)
plt.title('aritmetický průměr')
plt.plot(k,mean_C,label='Cauchy')
plt.plot(k,mean_G,c='red',label='Gaussian')
plt.legend()
plt.xlim(0,N)
plt.xlabel('N')
plt.ylabel('průměr')
plt.show()
In [125]:
plt.title('medián')
plt.plot(k,median_C,label='Cauchy')
plt.plot(k,median_G,c='red',label='Gaussian')
plt.legend()
plt.xlim(0,N)
plt.xlabel('N')
plt.ylabel('medián')
plt.show()
In [126]:
plt.title('medián - zoom')
plt.plot(k,median_C,label='Cauchy')
plt.plot(k,median_G,c='red',label='Gaussian')
plt.legend()
plt.xlim(0,N)
plt.xlabel('N')
plt.ylabel('medián')
plt.ylim(-0.5,0.5)
plt.show()
In [ ]: