curve_fit
from math import e, log
import numpy as np
import matplotlib.pyplot as plt
E = [ 279.20, 391.70, 661.66, 898.04, 1173.23, 1332.49, 1836.07]
E_ln = []
Podana_eff = [ 9.776E-2, 6.818E-2, 4.035E-2, 2.663E-2, 2.055E-2, 1.830E-2, 1.340E-2]
Eff_ln = []
for i in range(len(E)):
E_ln.append(log(E[i]))
Eff_ln.append(log(Podana_eff[i]))
z = np.polyfit(E_ln, Eff_ln, 5)
print('z', z)
moji_y = []
Eff_calc = []
for i in range(len(E)):
moji_y.append(z[5]+ z[4]*E_ln[i] + z[3]*E_ln[i]**2 + z[2]*E_ln[i]**3 + z[1]*E_ln[i]**4 + z[0]*E_ln[i]5)
Eff_calc.append(e(z[5]+ z[4]*E_ln[i] + z[3]*E_ln[i]**2 + z[2]*E_ln[i]**3 + z[1]*E_ln[i]**4 + z[0]*E_ln[i]**5))
print('Odstopanje #', E[i], abs(Eff_calc[i]-Podana_eff[i])/Podana_eff[i], '%, abs = ', abs(Eff_calc[i]-Podana_eff[i]))
#print(E_ln)
#print(Eff_ln)
#print(moji_y)
'''
#plt.plot(E, Podana_eff, label = 'podano')
plt.plot(E_ln, Eff_ln, label = 'log')
plt.plot(E_ln, moji_y, label = 'moji_y')
plt.legend()
plt.show()
'''
plt.plot(E, Podana_eff, label = 'podano')
plt.plot(E, Eff_calc, label = 'moji_y')
plt.yscale('log')
plt.legend()
plt.show()