Praktikum

Úvod

V tomto praktiku si předvedeme určení neznámé veličiny $C$ a její závoslost na veličině $T$. Budeme uvažovat komplikovaný vztah $$C = A \cdot B.$$ Veličíny $A$, $B$ a $T$ jsme určili měřením.

Měření


In [4]:
import numpy
import pandas
import scipy.optimize

data = pandas.read_csv('data.csv')
data['C'] = data['A'] * data['B']

def f(x, C0, C1):
    return C0 * x + C1

popt, pcov = scipy.optimize.curve_fit(f, data['T'], data['C'])
x = numpy.linspace(data['T'].min(), data['T'].max(), 100)
y = popt[0] * x + popt[1]

In [5]:
import tabulate
table = tabulate.tabulate(data, tablefmt="html", headers=['#'] + list(data.columns.values), floatfmt='0.4f')

In [6]:
import IPython.display
IPython.display.display(IPython.display.HTML(table))


# T A B C
0.000015.00000.1734459.000079.5906
1.000016.00000.1782450.000080.1900
2.000017.00000.1831441.000080.7471
3.000018.00000.1880435.000081.7800
4.000019.00000.1928427.000082.3256
5.000020.00000.1976419.000082.7944
6.000021.00000.2024411.000083.1864

Základní grafická vizualizace dat je také velice jednoduchá:


In [7]:
import bokeh
import bokeh.plotting
import bokeh.io
bokeh.io.output_notebook();


Loading BokehJS ...

In [8]:
fig = bokeh.plotting.figure(width=800, height=450)
fig.scatter(data['T'], data['C'], size=10)
fig.line(x, y, color='green')
fig.xaxis.axis_label = "T"
fig.yaxis.axis_label = "C"
bokeh.io.show(fig);