Vyhodnocení tlakové zkoušky na betonových krychlích¶
In [2]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy import stats
In [3]:
%matplotlib inline
Načtení dat¶
- načtěte data ze souboru tlakova_zkouska-data.txt - pomocí numpy
In [5]:
f_cube = XXX
f_cube
Out[5]:
Stanovení charakteristik souboru naměřených hodnot¶
- využijte funkce balíčku numpy případně scipy.stats
In [4]:
width = 8
print('{:>{width}} = {: d}'.format('n', XXX, width=width)) # velikost souboru dat
print('{:>{width}} = {: .1f}'.format('min', XXX, width=width))
print('{:>{width}} = {: .1f}'.format('max', XXX, width=width))
print('{:>{width}} = {: .3f}'.format('mu', XXX, width=width))
print('{:>{width}} = {: .3f}'.format('std', XXX, width=width)) # Excel - smodch.vyber
print('{:>{width}} = {: .6f}'.format('skew', XXX, width=width)) # šikmost
print('{:>{width}} = {: .6f}'.format('kurtosis', XXX, width=width)) # špičatost
print('{:>{width}} = {: .2f} %'.format('CoV', XXX * 100, width=width)) # variační koeficient
Aproximace pomocí známých hustot pravděpodobnosti¶
- nafitujte parametry normálního, lognormálního dvou parametrického (loc=0) a weibulova dvou parametrického rozdělení (loc=0) na naměřená data
In [5]:
params = stats.norm.fit(f_cube)
rv_norm = stats.norm(*params)
print('params =', params)
print('mu, std =', rv_norm.mean(), rv_norm.std())
In [6]:
params = XXX
rv_lognorm = XXX
print('params =', params)
print('mu, std =', rv_lognorm.mean(), rv_lognorm.std())
In [7]:
params = XXX
rv_weib = XXX
print('params =', params)
print('mu, std =', rv_weib.mean(), rv_weib.std())
Grafické zobrazení hustot¶
- vykreslete normovaný histogram - počet sloupečků je $sqrt{n}$
- sloupečky mají průhlednost 50 % a barva hranice je černá
- vykreslete nafitovaná rozdělení
In [8]:
fig, ax = plt.subplots(figsize=(6,3), tight_layout=True)
ax.hist(f_cube, XXX, XXX, XXX, label='data', XXX)
x = np.linspace(20, 45, 100)
ax.plot(x, XXX, label='norm')
ax.plot(x, XXX, label='lognorm')
ax.plot(x, XXX, label='weibull')
ax.legend();
Grafické zobrazení distribučních funkcí¶
In [9]:
fig, ax = plt.subplots(figsize=(6,3), tight_layout=True)
# kopie předchozího a změna na distribuční funkce
Výpočet kvantilů¶
- funkce pro tisk vybraných kvantilů náhodné veličiny (percent point function)
In [10]:
def print_quantils(rv, name):
print(name)
print('\tf_0.05 =', XXX)
print('\tf_0.95 =', XXX)
print('\tf_0.001 =', XXX)
print_quantils(rv_norm, 'rv_norm')
print_quantils(rv_lognorm, 'rv_lognorm')
print_quantils(rv_weib, 'rv_weib')