# -*- coding: utf-8 -*-
"""
@author: Vaclav Miklas

Zdroj dat:
STRAKA, František a Michal DOHÁNYOS. Bioplyn: příručka pro výuku, projekci 
a provoz bioplynových systémů. 2., rozš. a dopl. vyd. Praha: GAS, 2006, 
706 s. : il. ; 25 cm. ISBN 80-7328-090-6.
"""
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy import interpolate

def func1(x, a, b, c):
    return a*x**2 + b*x + c

def func2(x, a, b):
    return a*x + b


xdata = np.array([1, 10, 100]) # t VL/den
ydata = np.array([0.222, 1.43, 9.17])/24*277.777 # kW
r = interpolate.PchipInterpolator(xdata, ydata)
xdatavec = np.linspace(-10, 110, 1000)

plt.plot(xdata, ydata, 'kx', label=u'Vstupní data', markersize=8)
plt.rc('font', family='serif')
popt1, pcov1 = curve_fit(func1, xdata, ydata)
popt2, pcov2 = curve_fit(func2, xdata, ydata)
plt.plot(xdatavec, func1(xdatavec, *popt1), 'k-', label=u'MNČ: ax$^2$ + bx + c')
plt.plot(xdatavec, func2(xdatavec, *popt2), 'k--', label=u'MNČ: ax + b')
plt.plot(xdatavec, r(xdatavec), 'k-.', label=u'Interpolace PCHIP')


plt.xlabel('Velikost jednotky [t VL/d]')
plt.ylabel('Spotřeba na míchání [kW]')
plt.title('Aproximace míchacího příkonu – mechanické míchání')
plt.legend()
plt.axvspan(-20,1,color=(1,0,0,0.05))
plt.axvspan(100,120,color=(1,0,0,0.05))
plt.axvspan(1,100,color=(0,1,0,0.05))
# plt.show()
plt.savefig('graf_mech_mich.svg', dpi=1200, transparent=True)