edit2
ShahlaHuseynova 2 years ago
parent 3abbd3d48a
commit c3bde14969

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
jupyter nbconvert simulations.ipynb --TagRemovePreprocessor.enabled=True --TagRemovePreprocessor.remove_cell_tags="['exclude']" --no-input --to html

File diff suppressed because one or more lines are too long

@ -1,271 +0,0 @@
#!/usr/bin/env python
# coding: utf-8
# In[1]:
import numpy as np
from scipy.optimize import minimize
import pandas as pd
import matplotlib.pyplot as plt
# #### Theory
# ![image.png](attachment:image.png)
# #### Preliminary Calculation
# In[2]:
PmmHg = 440.8
TC = 9.158144271
zis = [0.66,0.135,0.162,0.043]
# In[3]:
def AntoinePsat(coeff,TC):
A,B,C = coeff
return 10**(A-B/(TC + C))
# In[4]:
coeffs = [[7.94917,1657.462,227.02],
[7.5788,863.35,273.15],
[6.49454,255.6784,266.55],
[6.69147,319.0117,266.7]]
# In[5]:
""" Calculate Psats """
Psats = [AntoinePsat(coeff,TC) for coeff in coeffs]
Psats
# In[6]:
""" Calculate Kis"""
Kis = np.divide(Psats,PmmHg)
Kis
# In[7]:
""" solve for V"""
# define the mass balance
def vapor_phase_mass_balance(V,zis):
"""
Equation 10.17 SVA
"""
return np.abs(1-sum([(zi*Ki)/(1+V*(Ki-1)) for zi,Ki in list(zip(zis,Kis))]))
# minimize vapor_phase_mass_balance to solve for V
F_vapor_phase_mass_balance = lambda x : vapor_phase_mass_balance(x,zis)
res = minimize(F_vapor_phase_mass_balance, x0 = 0.5 ,method='Nelder-Mead', tol=1e-6)
# evaluate L and V
if res.success:
V,L = res.x[0],1-res.x[0]
else:
print('Did not converge')
raise
# In[8]:
""" evaluate yis"""
yis = [(zi*Ki)/(1+V*(Ki-1)) for zi,Ki in list(zip(zis,Kis))]
yis
# In[9]:
""" evaluate xis"""
xis = [yi/Ki for yi,Ki in list(zip(yis,Kis))]
xis
# In[10]:
L*xis[0],1*zis[0]*0.99
# #### T99 Calculation
# In[11]:
zis = [0.66,0.135,0.162,0.043]
# In[12]:
def calcT98(TC,zis):
""" Calculate Psats """
Psats = [AntoinePsat(coeff,TC) for coeff in coeffs]
""" Calculate Kis"""
Kis = np.divide(Psats,PmmHg)
""" solve for the vapor fraction,V"""
F_vapor_phase_mass_balance = lambda x : vapor_phase_mass_balance(x,zis)
res = minimize(F_vapor_phase_mass_balance, x0 = 0.5 ,method='Nelder-Mead', tol=1e-6)
# evaluate L and V
if res.success:
V,L = res.x[0],1-res.x[0]
else:
print('Did not converge')
raise
""" evaluate yis"""
yis = [(zi*Ki)/(1+V*(Ki-1)) for zi,Ki in list(zip(zis,Kis))]
""" evaluate xis"""
xis = [yi/Ki for yi,Ki in list(zip(yis,Kis))]
return [np.abs(L*xis[0] - (1*zis[0]*0.98)),yis[0]]
F_calcT98 = lambda x : calcT98(x,zis)[0]
# In[13]:
T98 = minimize(F_calcT98, x0 = 10 ,method='Nelder-Mead', tol=1e-6)
# In[14]:
T98 = T98.x[0]
T98
# #### Effect of Composition to T98
# In[15]:
"""water_to_carbondioxide_mass_ratios"""
r1s = np.linspace(0.05,2,11)
"""wetcarbondioxide_to_air_mole_ratios"""
r2s = 1-np.linspace(0.00,0.40,11)
# In[16]:
r1 = r1s[0]
r2 = r2s[0]
# In[17]:
results = []
for r1 in r1s:
for r2 in r2s:
mCO2 = 1
mwater = r1*mCO2
nCO2 = mCO2/ 44.01
nwater = mwater / 18.01528
z1_pure = nwater / (nwater + nCO2)
z2_pure = nCO2 / (nwater + nCO2)
zs = [ r2*z1_pure,
r2*z2_pure,
0.79*(1 - r2*z1_pure - r2*z2_pure),
0.21*(1 - r2*z1_pure - r2*z2_pure)]
zijs = [np.round(z,3) for z in zs]
"""define a lambda funtion at the calculated zijs"""
F_calcT98 = lambda x : calcT98(x,zijs)[0]
"""solve for T98"""
T98 = minimize(F_calcT98, x0 = 50 ,method='Nelder-Mead', tol=1e-6)
"""append the result and the calculation parameter levels"""
results.append({'zH2O' : zijs[0],
'zCO2' : zijs[1],
'zN2' : zijs[2],
'zO2' : zijs[3],
'r1' : r1,
'r2' : 1-r2,
'yH2O' : calcT98(T98.x[0],zijs)[1],
'T98' : T98.x[0]})
# In[18]:
results = pd.DataFrame(results)
results.head()
# In[19]:
df=results.pivot('r1','r2','yH2O')
df
# In[20]:
plt.figure(dpi=100)
X=df.columns.values
Y=df.index.values
Z=df.values
x,y=np.meshgrid(X, Y)
plt.contourf(x, y, Z) #the NAN will be plotted as white spaces
plt.colorbar(label = 'y$_{water}$')
plt.xlabel('mole air / (mole CO$_2$ + H$_2$O)')
plt.ylabel('mass H$_2$O / mass CO$_2$')
# In[21]:
df=results.pivot('r1','r2','T98')
df
# In[22]:
plt.figure(dpi=100)
X=df.columns.values
Y=df.index.values
Z=df.values
x,y=np.meshgrid(X, Y)
plt.contourf(x, y, Z) #the NAN will be plotted as white spaces
plt.colorbar(label = 'T$_{98}$,[°C]')
plt.xlabel('mole air / (mole CO$_2$ + H$_2$O)')
plt.ylabel('mass H$_2$O / mass CO$_2$')
plt.show()
# //CBa20220220

@ -1,15 +0,0 @@
{
"Case 1": {
"client" : "ENCORE",
"description": "First case",
"heatpump": {
"type": "Type 1",
"electric power": 1,
"COP": 3.5,
"technical lifetime": 25,
"CAPEX": 1000000
}
}
}

@ -1,51 +0,0 @@
;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;100;101;102;103;104;105;106;107;108;109;110;111;112;113;114;115;116;117;118;119;120;121;122;123;124;125;126;127;128;129;130;131;132;133;134;135;136;137;138;139;140;141;142;143;144;145;146;147;148;149;150;151;152;153;154;155;156;157;158;159;160;161;162;163;164;165;166;167;168;169
25;2.9940818181818183;2.948946428571429;2.9053947368421054;2.863344827586207;2.822720338983051;2.78345;2.7454672131147544;2.708709677419355;2.673119047619048;2.6386406250000003;2.6052230769230773;2.572818181818182;2.5413805970149257;2.5108676470588236;2.481239130434783;2.452457142857143;2.424485915492958;2.397291666666667;2.370842465753425;2.3451081081081084;2.3200600000000002;2.295671052631579;2.2719155844155843;2.248769230769231;2.226208860759494;2.2042125;2.1827592592592593;2.161829268292683;2.1414036144578317;2.1214642857142856;2.101994117647059;2.082976744186047;2.064396551724138;2.0462386363636367;2.028488764044944;2.0111333333333334;1.9941593406593405;1.977554347826087;1.9613064516129033;1.9454042553191488;1.9298368421052632;1.91459375;1.8996649484536081;1.8850408163265304;1.8707121212121212;1.8566700000000003;1.8429059405940595;1.8294117647058825;1.8161796116504858;1.8032019230769234;1.7904714285714287;1.777981132075472;1.7657242990654207;1.7536944444444444;1.7418853211009178;1.7302909090909093;1.7189054054054056;1.7077232142857144;1.6967389380530973;1.6859473684210526;1.6753434782608694;1.6649224137931034;1.6546794871794874;1.6446101694915256;1.6347100840336135;1.624975;1.6154008264462811;1.6059836065573772;1.596719512195122;1.5876048387096775;1.5786360000000002;1.5698095238095238;1.5611220472440945;1.5525703125;1.5441511627906976;1.5358615384615384;1.5276984732824426;1.5196590909090908;1.5117406015037593;1.5039402985074628;1.4962555555555557;1.4886838235294118;1.4812226277372265;1.4738695652173914;1.4666223021582734;1.4594785714285716;1.4524361702127662;1.445492957746479;1.438646853146853;1.4318958333333334
26;3.049527777777778;3.0025636363636363;2.957276785714286;2.9135789473684213;2.8713879310344828;2.830627118644068;2.7912250000000003;2.7531147540983607;2.7162338709677423;2.6805238095238098;2.6459296875000002;2.6124;2.579886363636364;2.5483432835820894;2.517727941176471;2.4880000000000004;2.4591214285714287;2.4310563380281693;2.4037708333333336;2.3772328767123287;2.351412162162162;2.32628;2.301809210526316;2.277974025974026;2.25475;2.232113924050633;2.21004375;2.188518518518519;2.167518292682927;2.1470240963855423;2.127017857142857;2.107482352941177;2.0884011627906975;2.0697586206896554;2.051539772727273;2.033730337078652;2.0163166666666665;1.9992857142857146;1.982625;1.9663225806451612;1.950367021276596;1.9347473684210525;1.919453125;1.9044742268041237;1.8898010204081632;1.8754242424242427;1.8613350000000004;1.8475247524752476;1.8339852941176473;1.8207087378640778;1.8076875000000001;1.794914285714286;1.7823820754716981;1.770084112149533;1.758013888888889;1.746165137614679;1.7345318181818183;1.723108108108108;1.711888392857143;1.700867256637168;1.6900394736842106;1.6793999999999998;1.6689439655172416;1.658666666666667;1.6485635593220342;1.6386302521008407;1.6288625000000003;1.6192561983471074;1.6098073770491805;1.6005121951219514;1.591366935483871;1.5823680000000002;1.5735119047619048;1.5647952755905512;1.55621484375;1.547767441860465;1.53945;1.5312595419847328;1.5231931818181819;1.515248120300752;1.507421641791045;1.4997111111111114;1.4921139705882354;1.4846277372262775;1.4772500000000002;1.4699784172661872;1.4628107142857143;1.455744680851064;1.4487781690140846;1.441909090909091
27;3.107066037735849;3.0581666666666667;3.011045454545455;2.965607142857143;2.9217631578947367;2.8794310344827587;2.838533898305085;2.7990000000000004;2.7607622950819675;2.723758064516129;2.6879285714285714;2.65321875;2.6195769230769232;2.5869545454545455;2.555305970149254;2.5245882352941176;2.4947608695652175;2.4657857142857145;2.43762676056338;2.4102500000000004;2.383623287671233;2.3577162162162164;2.3325;2.3079473684210527;2.2840324675324677;2.2607307692307694;2.238018987341772;2.215875;2.1942777777777778;2.173207317073171;2.152644578313253;2.1325714285714286;2.112970588235294;2.093825581395349;2.0751206896551726;2.056840909090909;2.03897191011236;2.0215;2.004412087912088;1.987695652173913;1.9713387096774193;1.9553297872340425;1.939657894736842;1.9243124999999999;1.909283505154639;1.8945612244897962;1.880136363636364;1.866;1.852143564356436;1.8385588235294117;1.82523786407767;1.812173076923077;1.7993571428571429;1.7867830188679248;1.774443925233645;1.7623333333333333;1.7504449541284404;1.7387727272727274;1.727310810810811;1.7160535714285714;1.704995575221239;1.6941315789473683;1.6834565217391306;1.6729655172413795;1.6626538461538465;1.6525169491525424;1.6425504201680674;1.6327500000000001;1.623111570247934;1.6136311475409837;1.6043048780487805;1.5951290322580647;1.5861;1.5772142857142857;1.5684685039370079;1.559859375;1.5513837209302326;1.5430384615384616;1.5348206106870228;1.5267272727272727;1.5187556390977446;1.510902985074627;1.503166666666667;1.495544117647059;1.4880328467153285;1.480630434782609;1.4733345323741007;1.4661428571428572;1.4590531914893619;1.4520633802816902
28;3.166817307692308;3.1158679245283016;3.066805555555556;3.019527272727273;2.9739375;2.929947368421053;2.8874741379310347;2.846440677966102;2.806775;2.7684098360655742;2.731282258064516;2.6953333333333336;2.6605078125;2.6267538461538464;2.5940227272727276;2.562268656716418;2.5314485294117652;2.501521739130435;2.4724500000000003;2.444197183098592;2.416729166666667;2.390013698630137;2.36402027027027;2.3387200000000004;2.3140855263157896;2.2900909090909094;2.2667115384615384;2.2439240506329114;2.22170625;2.200037037037037;2.178896341463415;2.158265060240964;2.138125;2.118458823529412;2.09925;2.0804827586206898;2.0621420454545456;2.0442134831460677;2.0266833333333336;2.0095384615384617;1.992766304347826;1.9763548387096774;1.9602925531914894;1.9445684210526317;1.9291718750000002;1.9140927835051547;1.8993214285714286;1.8848484848484852;1.8706650000000002;1.856762376237624;1.8431323529411765;1.8297669902912623;1.816658653846154;1.8038;1.7911839622641512;1.778803738317757;1.7666527777777778;1.754724770642202;1.7430136363636364;1.7315135135135136;1.72021875;1.7091238938053097;1.6982236842105265;1.687513043478261;1.6769870689655175;1.6666410256410258;1.656470338983051;1.6464705882352944;1.6366375000000002;1.6269669421487603;1.617454918032787;1.6080975609756099;1.598891129032258;1.5898320000000001;1.5809166666666667;1.5721417322834648;1.56350390625;1.555;1.5466269230769232;1.538381679389313;1.530261363636364;1.522263157894737;1.5143843283582092;1.5066222222222223;1.4989742647058826;1.4914379562043798;1.4840108695652174;1.4766906474820145;1.469475;1.4623617021276596
29;3.2289117647058823;3.1757884615384615;3.124669811320755;3.075444444444445;3.028009090909091;2.9822678571428574;2.9381315789473685;2.8955172413793107;2.854347457627119;2.81455;2.77605737704918;2.738806451612903;2.7027380952380953;2.667796875;2.6339307692307696;2.6010909090909093;2.5692313432835823;2.538308823529412;2.5082826086956524;2.4791142857142856;2.4507676056338026;2.4232083333333336;2.3964041095890414;2.370324324324325;2.3449400000000002;2.3202236842105264;2.2961493506493507;2.272692307692308;2.2498291139240507;2.2275375000000004;2.2057962962962963;2.1845853658536587;2.163885542168675;2.1436785714285715;2.1239470588235294;2.104674418604651;2.085844827586207;2.0674431818181818;2.0494550561797755;2.0318666666666667;2.0146648351648353;1.997836956521739;1.9813709677419356;1.9652553191489361;1.949478947368421;1.9340312500000003;1.9189020618556702;1.9040816326530614;1.889560606060606;1.8753300000000002;1.861381188118812;1.8477058823529413;1.8342961165048546;1.8211442307692307;1.8082428571428573;1.7955849056603774;1.783163551401869;1.7709722222222224;1.7590045871559634;1.7472545454545454;1.735716216216216;1.7243839285714286;1.7132522123893807;1.7023157894736842;1.6915695652173914;1.6810086206896555;1.6706282051282053;1.6604237288135593;1.6503907563025213;1.6405250000000002;1.6308223140495868;1.6212786885245902;1.611890243902439;1.6026532258064516;1.5935640000000002;1.5846190476190478;1.5758149606299214;1.5671484375;1.5586162790697675;1.5502153846153846;1.541942748091603;1.5337954545454549;1.5257706766917296;1.517865671641791;1.5100777777777779;1.5024044117647062;1.4948430656934308;1.4873913043478262;1.4800467625899283;1.472807142857143
30;3.2934900000000003;3.2380588235294114;3.1847596153846154;3.133471698113208;3.084083333333333;3.0364909090909094;2.9905982142857144;2.9463157894736844;2.903560344827586;2.862254237288136;2.822325;2.783704918032787;2.7463306451612906;2.7101428571428574;2.6750859375000005;2.6411076923076924;2.608159090909091;2.5761940298507464;2.5451691176470588;2.5150434782608695;2.4857785714285714;2.4573380281690143;2.4296875;2.4027945205479453;2.3766283783783786;2.35116;2.326361842105263;2.3022077922077924;2.278673076923077;2.25573417721519;2.23336875;2.211555555555556;2.1902743902439026;2.1695060240963855;2.149232142857143;2.129435294117647;2.1100988372093026;2.091206896551724;2.0727443181818184;2.054696629213483;2.03705;2.019791208791209;2.002907608695652;1.9863870967741935;1.9702180851063829;1.9543894736842107;1.9388906250000004;1.9237113402061858;1.908841836734694;1.8942727272727273;1.879995;1.866;1.8522794117647061;1.8388252427184466;1.8256298076923079;1.8126857142857145;1.799985849056604;1.7875233644859816;1.7752916666666667;1.7632844036697248;1.7514954545454544;1.739918918918919;1.7285491071428574;1.7173805309734516;1.7064078947368424;1.695626086956522;1.6850301724137933;1.6746153846153846;1.664377118644068;1.654310924369748;1.6444125;1.6346776859504133;1.6251024590163936;1.6156829268292685;1.6064153225806452;1.597296;1.5883214285714284;1.5794881889763779;1.57079296875;1.5622325581395349;1.5538038461538464;1.5455038167938933;1.5373295454545457;1.529278195488722;1.5213470149253734;1.5135333333333334;1.5058345588235296;1.4982481751824819;1.4907717391304347;1.4834028776978418
31;3.360704081632653;3.30282;3.247205882352941;3.1937307692307693;3.14227358490566;3.0927222222222226;3.0449727272727274;2.998928571428572;2.9545;2.911603448275862;2.8701610169491527;2.8301;2.7913524590163936;2.7538548387096773;2.7175476190476195;2.6823750000000004;2.6482846153846156;2.6152272727272727;2.5831567164179106;2.552029411764706;2.521804347826087;2.492442857142857;2.4639084507042255;2.436166666666667;2.4091849315068496;2.3829324324324324;2.35738;2.3325;2.3082662337662336;2.284653846153846;2.2616392405063293;2.2392000000000003;2.2173148148148147;2.1959634146341465;2.1751265060240965;2.1547857142857145;2.1349235294117648;2.1155232558139536;2.0965689655172417;2.0780454545454545;2.059938202247191;2.0422333333333333;2.0249175824175825;2.007978260869565;1.9914032258064516;1.97518085106383;1.9593000000000003;1.94375;1.9285206185567012;1.9136020408163268;1.8989848484848486;1.8846600000000002;1.8706188118811884;1.8568529411764707;1.8433543689320389;1.8301153846153846;1.8171285714285714;1.8043867924528303;1.7918831775700936;1.779611111111111;1.7675642201834862;1.7557363636363637;1.7441216216216218;1.732714285714286;1.7215088495575224;1.7105000000000001;1.6996826086956522;1.689051724137931;1.6786025641025644;1.6683305084745765;1.658231092436975;1.6483;1.6385330578512396;1.6289262295081968;1.6194756097560976;1.6101774193548386;1.6010280000000001;1.5920238095238095;1.5831614173228346;1.5744375;1.5658488372093025;1.557392307692308;1.5490648854961835;1.5408636363636363;1.5327857142857144;1.5248283582089552;1.516988888888889;1.509264705882353;1.501653284671533;1.4941521739130437
32;3.43071875;3.3702244897959184;3.31215;3.2563529411764707;3.202701923076923;3.1510754716981135;3.1013611111111112;3.0534545454545454;3.007258928571429;2.962684210526316;2.919646551724138;2.8780677966101695;2.837875;2.799;2.761379032258065;2.7249523809523812;2.6896640625000003;2.6554615384615383;2.622295454545455;2.590119402985075;2.558889705882353;2.5285652173913045;2.499107142857143;2.470478873239437;2.4426458333333336;2.4155753424657536;2.3892364864864866;2.3636;2.338638157894737;2.3143246753246753;2.290634615384615;2.2675443037974685;2.2450312500000003;2.2230740740740744;2.2016524390243903;2.180746987951807;2.1603392857142856;2.1404117647058825;2.1209476744186047;2.1019310344827584;2.083346590909091;2.065179775280899;2.047416666666667;2.030043956043956;2.013048913043478;1.99641935483871;1.980143617021277;1.9642105263157896;1.9486093750000002;1.9333298969072166;1.9183622448979594;1.9036969696969699;1.8893250000000001;1.8752376237623762;1.8614264705882353;1.847883495145631;1.8346009615384615;1.8215714285714286;1.8087877358490565;1.7962429906542057;1.7839305555555556;1.7718440366972477;1.759977272727273;1.7483243243243245;1.7368794642857144;1.725637168141593;1.714592105263158;1.7037391304347826;1.6930732758620692;1.6825897435897437;1.6722838983050847;1.662151260504202;1.6521875000000001;1.6423884297520661;1.63275;1.6232682926829267;1.6139395161290322;1.6047599999999997;1.5957261904761904;1.5868346456692914;1.5780820312500001;1.56946511627907;1.5609807692307696;1.5526259541984735;1.5443977272727274;1.536293233082707;1.5283097014925375;1.5204444444444447;1.5126948529411766;1.5050583941605842
33;3.503712765957447;3.4404375000000003;3.379744897959184;3.32148;3.2655;3.211673076923077;3.159877358490566;3.1100000000000003;3.061936363636364;3.0155892857142863;2.9708684210526317;2.927689655172414;2.8859745762711864;2.84565;2.806647540983607;2.7689032258064517;2.7323571428571434;2.6969531250000003;2.662638461538462;2.6293636363636366;2.597082089552239;2.5657500000000004;2.5353260869565215;2.5057714285714288;2.477049295774648;2.449125;2.421965753424658;2.3955405405405408;2.36982;2.3447763157894737;2.320383116883117;2.296615384615385;2.273449367088608;2.2508625;2.2288333333333337;2.207341463414634;2.186367469879518;2.165892857142857;2.1459;2.1263720930232557;2.107293103448276;2.0886477272727273;2.070421348314607;2.0526;2.0351703296703296;2.0181195652173916;2.001435483870968;1.9851063829787237;1.969121052631579;1.9534687500000003;1.9381391752577322;1.923122448979592;1.908409090909091;1.89399;1.8798564356435645;1.866;1.8524126213592234;1.8390865384615385;1.8260142857142858;1.813188679245283;1.8006028037383177;1.7882500000000001;1.7761238532110095;1.764218181818182;1.7525270270270272;1.741044642857143;1.7297654867256638;1.7186842105263158;1.7077956521739133;1.697094827586207;1.6865769230769232;1.6762372881355934;1.6660714285714286;1.656075;1.6462438016528924;1.6365737704918033;1.6270609756097563;1.6177016129032258;1.608492;1.5994285714285714;1.5905078740157481;1.5817265625;1.5730813953488374;1.564569230769231;1.5561870229007635;1.5479318181818182;1.5398007518796994;1.5317910447761194;1.5239;1.5161250000000002
34;3.579880434782609;3.5136382978723404;3.45015625;3.389265306122449;3.3308099999999996;3.27464705882353;3.2206442307692313;3.1686792452830193;3.118638888888889;3.070418181818182;3.023919642857143;2.9790526315789476;2.93573275862069;2.8938813559322036;2.8534250000000005;2.8142950819672135;2.776427419354839;2.739761904761905;2.7042421875000002;2.6698153846153847;2.6364318181818183;2.604044776119403;2.572610294117647;2.5420869565217394;2.5124357142857145;2.483619718309859;2.455604166666667;2.428356164383562;2.4018445945945945;2.37604;2.3509144736842105;2.3264415584415588;2.302596153846154;2.279354430379747;2.25669375;2.234592592592593;2.213030487804878;2.191987951807229;2.1714464285714286;2.151388235294118;2.131796511627907;2.112655172413793;2.0939488636363635;2.0756629213483144;2.057783333333333;2.0402967032967037;2.0231902173913046;2.006451612903226;1.9900691489361706;1.9740315789473686;1.958328125;1.9429484536082477;1.9278826530612245;1.9131212121212122;1.8986550000000002;1.8844752475247526;1.870573529411765;1.8569417475728156;1.8435721153846154;1.830457142857143;1.8175896226415094;1.80496261682243;1.7925694444444447;1.780403669724771;1.7684590909090911;1.75672972972973;1.7452098214285716;1.7338938053097348;1.7227763157894738;1.7118521739130437;1.7011163793103448;1.6905641025641027;1.680190677966102;1.6699915966386556;1.6599625;1.650099173553719;1.6403975409836067;1.6308536585365854;1.6214637096774194;1.6122239999999999;1.6031309523809525;1.5941811023622048;1.58537109375;1.5766976744186048;1.5681576923076923;1.5597480916030535;1.551465909090909;1.5433082706766919;1.5352723880597015;1.5273555555555556
35;3.6594333333333333;3.5900217391304348;3.5235638297872343;3.459875;3.3987857142857143;3.3401400000000003;3.2837941176470595;3.2296153846153848;3.1774811320754717;3.127277777777778;3.0789;3.03225;2.987236842105263;2.9437758620689656;2.9017881355932205;2.8612;2.8219426229508198;2.783951612903226;2.7471666666666668;2.71153125;2.676992307692308;2.6435;2.611007462686567;2.5794705882352944;2.5488478260869565;2.5191000000000003;2.4901901408450704;2.462083333333333;2.4347465753424657;2.4081486486486487;2.38226;2.3570526315789477;2.3325000000000005;2.3085769230769233;2.2852594936708863;2.262525;2.2403518518518517;2.218719512195122;2.1976084337349397;2.177;2.1568764705882355;2.137220930232558;2.1180172413793104;2.09925;2.0809044943820223;2.062966666666667;2.0454230769230772;2.0282608695652176;2.0114677419354843;1.995031914893617;1.978942105263158;1.9631875;1.947757731958763;1.932642857142857;1.9178333333333333;1.9033200000000001;1.8890940594059407;1.8751470588235297;1.8614708737864079;1.8480576923076923;1.8349000000000002;1.8219905660377358;1.8093224299065422;1.7968888888888892;1.7846834862385323;1.7727000000000002;1.7609324324324325;1.7493750000000001;1.7380221238938054;1.7268684210526317;1.7159086956521739;1.705137931034483;1.6945512820512822;1.6841440677966102;1.6739117647058823;1.66385;1.6539545454545457;1.6442213114754098;1.6346463414634147;1.625225806451613;1.6159560000000002;1.6068333333333336;1.5978543307086617;1.589015625;1.5803139534883721;1.5717461538461541;1.5633091603053437;1.5550000000000002;1.5468157894736843;1.5387537313432835
36;3.742602272727273;3.6698000000000004;3.600163043478261;3.533489361702128;3.46959375;3.40830612244898;3.34947;3.2929411764705883;3.2385865384615387;3.1862830188679245;3.1359166666666667;3.0873818181818184;3.0405803571428573;2.995421052631579;2.9518189655172415;2.9096949152542377;2.8689750000000003;2.8295901639344265;2.791475806451613;2.754571428571429;2.7188203125;2.6841692307692306;2.6505681818181817;2.6179701492537317;2.5863308823529416;2.5556086956521744;2.5257642857142857;2.496760563380282;2.4685625;2.4411369863013697;2.414452702702703;2.3884800000000004;2.3631907894736845;2.3385584415584417;2.3145576923076923;2.2911645569620256;2.26835625;2.2461111111111114;2.224408536585366;2.2032289156626508;2.1825535714285715;2.1623647058823527;2.1426453488372093;2.1233793103448275;2.104551136363636;2.0861460674157306;2.06815;2.050549450549451;2.0333315217391306;2.016483870967742;1.999994680851064;1.9838526315789475;1.9680468750000002;1.9525670103092785;1.93740306122449;1.9225454545454546;1.907985;1.893712871287129;1.879720588235294;1.866;1.852543269230769;1.839342857142857;1.8263915094339624;1.8136822429906543;1.8012083333333335;1.7889633027522938;1.7769409090909094;1.7651351351351354;1.7535401785714289;1.7421504424778762;1.7309605263157897;1.7199652173913043;1.7091594827586207;1.6985384615384616;1.6880974576271188;1.6778319327731093;1.6677374999999999;1.6578099173553718;1.6480450819672132;1.6384390243902438;1.6289879032258066;1.619688;1.6105357142857144;1.6015275590551183;1.59266015625;1.58393023255814;1.5753346153846155;1.5668702290076335;1.558534090909091;1.5503233082706769
37;3.829639534883721;3.7532045454545457;3.680166666666667;3.6103043478260872;3.543414893617021;3.4793125000000003;3.417826530612245;3.3588000000000005;3.302088235294118;3.2475576923076925;3.1950849056603774;3.1445555555555558;3.0958636363636365;3.0489107142857144;3.003605263157895;2.959862068965517;2.9176016949152546;2.8767500000000004;2.837237704918033;2.799;2.7619761904761906;2.726109375;2.691346153846154;2.657636363636364;2.624932835820896;2.5931911764705884;2.5623695652173915;2.5324285714285715;2.5033309859154933;2.475041666666667;2.447527397260274;2.4207567567567567;2.3947000000000003;2.3693289473684214;2.3446168831168834;2.3205384615384617;2.297069620253165;2.2741875;2.25187037037037;2.2300975609756097;2.2088493975903614;2.1881071428571426;2.167852941176471;2.1480697674418603;2.1287413793103447;2.109852272727273;2.0913876404494385;2.0733333333333337;2.0556758241758244;2.0384021739130436;2.0215;2.0049574468085107;1.988763157894737;1.97290625;1.9573762886597939;1.9421632653061227;1.9272575757575758;1.9126500000000002;1.8983316831683168;1.8842941176470587;1.8705291262135924;1.8570288461538462;1.8437857142857146;1.830792452830189;1.8180420560747665;1.8055277777777778;1.7932431192660552;1.7811818181818184;1.769337837837838;1.7577053571428571;1.746278761061947;1.7350526315789474;1.7240217391304349;1.7131810344827587;1.702525641025641;1.692050847457627;1.6817521008403362;1.671625;1.6616652892561983;1.6518688524590164;1.6422317073170736;1.6327500000000001;1.62342;1.6142380952380955;1.6052007874015748;1.5963046875000002;1.5875465116279073;1.5789230769230769;1.5704312977099237;1.5620681818181819
38;3.920821428571429;3.8404883720930236;3.7638068181818185;3.690533333333333;3.6204456521739132;3.5533404255319154;3.4890312500000005;3.42734693877551;3.3681300000000003;3.311235294117647;3.2565288461538464;3.2038867924528303;3.153194444444445;3.1043454545454545;3.057241071428572;3.0117894736842103;2.9679051724137935;2.9255084745762714;2.884525;2.8448852459016396;2.806524193548387;2.7693809523809523;2.7333984375;2.698523076923077;2.6647045454545455;2.63189552238806;2.6000514705882356;2.569130434782609;2.5390928571428573;2.509901408450704;2.481520833333333;2.4539178082191784;2.427060810810811;2.40092;2.375467105263158;2.3506753246753247;2.3265192307692306;2.3029746835443037;2.28001875;2.25762962962963;2.2357865853658536;2.2144698795180724;2.1936607142857145;2.173341176470588;2.1534941860465118;2.1341034482758623;2.1151534090909094;2.0966292134831463;2.078516666666667;2.060802197802198;2.0434728260869566;2.026516129032258;2.0099202127659574;1.9936736842105263;1.977765625;1.9621855670103092;1.9469234693877553;1.9319696969696971;1.917315;1.9029504950495049;1.8888676470588233;1.8750582524271846;1.8615144230769234;1.8482285714285718;1.8351933962264153;1.8224018691588788;1.8098472222222224;1.7975229357798166;1.7854227272727274;1.7735405405405404;1.7618705357142859;1.7504070796460178;1.7391447368421054;1.7280782608695653;1.7172025862068965;1.7065128205128206;1.6960042372881357;1.685672268907563;1.6755125;1.6655206611570246;1.65569262295082;1.6460243902439027;1.6365120967741937;1.6271520000000002;1.6179404761904763;1.6088740157480317;1.5999492187500002;1.5911627906976746;1.5825115384615385;1.5739923664122137
39;4.016451219512195;3.9319285714285717;3.8513372093023257;3.774409090909091;3.7009;3.6305869565217392;3.563265957446809;3.4987500000000002;3.4368673469387754;3.37746;3.3203823529411767;3.2655;3.212688679245283;3.1618333333333335;3.112827272727273;3.065571428571429;3.0199736842105267;2.975948275862069;2.933415254237288;2.8923;2.852532786885246;2.8140483870967743;2.7767857142857144;2.7406875000000004;2.7057;2.671772727272727;2.638858208955224;2.606911764705883;2.5758913043478264;2.545757142857143;2.5164718309859158;2.4880000000000004;2.4603082191780823;2.433364864864865;2.40714;2.381605263157895;2.3567337662337664;2.3325;2.308879746835443;2.28585;2.2633888888888887;2.2414756097560975;2.220090361445783;2.1992142857142856;2.178829411764706;2.158918604651163;2.1394655172413795;2.120454545454546;2.101870786516854;2.0837000000000003;2.0659285714285716;2.0485434782608696;2.0315322580645163;2.0148829787234046;1.9985842105263159;1.982625;1.9669948453608248;1.9516836734693879;1.9366818181818182;1.92198;1.907569306930693;1.893441176470588;1.8795873786407769;1.8660000000000003;1.852671428571429;1.8395943396226415;1.8267616822429908;1.814166666666667;1.801802752293578;1.7896636363636365;1.7777432432432434;1.7660357142857144;1.7545353982300886;1.743236842105263;1.7321347826086957;1.7212241379310345;1.7105000000000001;1.699957627118644;1.68959243697479;1.6793999999999998;1.6693760330578513;1.6595163934426234;1.6498170731707318;1.6402741935483873;1.630884;1.6216428571428574;1.6125472440944884;1.6035937500000002;1.594779069767442;1.5861
40;4.1168625;4.027829268292683;3.943035714285714;3.862186046511628;3.7850113636363636;3.711266666666667;3.6407282608695652;3.5731914893617027;3.5084687500000005;3.446387755102041;3.38679;3.329529411764706;3.274471153846154;3.221490566037736;3.170472222222222;3.121309090909091;3.073901785714286;3.028157894736842;2.983991379310345;2.941322033898305;2.900075;2.8601803278688527;2.8215725806451615;2.7841904761904765;2.7479765625000003;2.712876923076923;2.6788409090909093;2.6458208955223883;2.6137720588235296;2.5826521739130435;2.552421428571429;2.523042253521127;2.494479166666667;2.4666986301369866;2.439668918918919;2.41336;2.387743421052632;2.362792207792208;2.3384807692307694;2.314784810126582;2.29168125;2.2691481481481484;2.2471646341463414;2.225710843373494;2.204767857142857;2.1843176470588235;2.1643430232558143;2.1448275862068966;2.125755681818182;2.1071123595505616;2.0888833333333334;2.071054945054945;2.0536141304347826;2.036548387096774;2.0198457446808513;2.0034947368421054;1.9874843750000002;1.9718041237113404;1.9564438775510204;1.9413939393939394;1.926645;1.9121881188118812;1.898014705882353;1.884116504854369;1.8704855769230773;1.857114285714286;1.8439952830188682;1.8311214953271029;1.8184861111111115;1.8060825688073396;1.7939045454545455;1.781945945945946;1.7702008928571429;1.7586637168141595;1.747328947368421;1.7361913043478263;1.7252456896551724;1.7144871794871794;1.7039110169491525;1.6935126050420168;1.6832875000000003;1.6732314049586778;1.6633401639344263;1.6536097560975611;1.6440362903225807;1.634616;1.6253452380952382;1.6162204724409448;1.6072382812500001;1.5983953488372094
41;4.222423076923077;4.128525;4.039207317073171;3.954142857142857;3.8730348837209303;3.795613636363637;3.7216333333333336;3.6508695652173917;3.5831170212765957;3.5181875000000002;3.455908163265306;3.3961200000000002;3.3386764705882355;3.283442307692308;3.230292452830189;3.179111111111111;3.129790909090909;3.0822321428571433;3.036342105263158;2.992034482758621;2.9492288135593223;2.90785;2.867827868852459;2.8290967741935487;2.7915952380952382;2.7552656250000003;2.7200538461538466;2.685909090909091;2.6527835820895524;2.6206323529411764;2.589413043478261;2.5590857142857146;2.529612676056338;2.5009583333333336;2.4730890410958906;2.445972972972973;2.41958;2.3938815789473686;2.3688506493506494;2.3444615384615384;2.3206898734177215;2.2975125;2.2749074074074076;2.2528536585365853;2.231331325301205;2.210321428571429;2.1898058823529416;2.1697674418604653;2.1501896551724142;2.1310568181818184;2.11235393258427;2.094066666666667;2.0761813186813187;2.0586847826086956;2.041564516129032;2.024808510638298;2.008405263157895;1.9923437499999999;1.9766134020618558;1.961204081632653;1.9461060606060605;1.9313099999999999;1.9168069306930695;1.9025882352941177;1.8886456310679614;1.874971153846154;1.861557142857143;1.8483962264150944;1.835481308411215;1.8228055555555556;1.8103623853211008;1.7981454545454547;1.7861486486486489;1.7743660714285716;1.76279203539823;1.751421052631579;1.7402478260869567;1.7292672413793104;1.7184743589743592;1.707864406779661;1.6974327731092438;1.6871750000000003;1.6770867768595044;1.6671639344262297;1.6574024390243904;1.6477983870967745;1.6383480000000001;1.6290476190476193;1.6198937007874017;1.6108828125
42;4.333539473684211;4.234384615384616;4.1401875;4.050585365853658;3.9652499999999997;3.883883720930233;3.8062159090909096;3.732;3.6610108695652173;3.5930425531914896;3.52790625;3.4654285714285713;3.40545;3.347823529411765;3.292413461538462;3.2390943396226417;3.1877500000000003;3.1382727272727275;3.0905625;3.044526315789474;3.0000775862068965;2.9571355932203387;2.915625;2.8754754098360658;2.836620967741936;2.7990000000000004;2.7625546875;2.7272307692307693;2.6929772727272727;2.6597462686567166;2.6274926470588236;2.5961739130434784;2.56575;2.5361830985915494;2.5074375;2.479479452054795;2.4522770270270273;2.4258;2.4000197368421055;2.3749090909090906;2.3504423076923078;2.3265949367088608;2.30334375;2.2806666666666664;2.258542682926829;2.236951807228916;2.2158750000000005;2.1952941176470593;2.1751918604651164;2.155551724137931;2.1363579545454545;2.117595505617978;2.09925;2.0813076923076927;2.063755434782609;2.0465806451612902;2.0297712765957447;2.013315789473684;1.997203125;1.9814226804123711;1.9659642857142856;1.9508181818181818;1.9359750000000002;1.9214257425742576;1.9071617647058825;1.8931747572815536;1.8794567307692311;1.866;1.8527971698113208;1.8398411214953272;1.827125;1.8146422018348625;1.8023863636363637;1.7903513513513514;1.77853125;1.7669203539823009;1.755513157894737;1.744304347826087;1.7332887931034482;1.7224615384615385;1.7118177966101698;1.7013529411764707;1.6910625000000001;1.6809421487603307;1.670987704918033;1.6611951219512198;1.651560483870968;1.64208;1.63275;1.6235669291338584
43;4.450662162162162;4.345815789473685;4.246346153846154;4.1518500000000005;4.061963414634146;3.976357142857143;3.8947325581395353;3.816818181818182;3.742366666666667;3.6711521739130437;3.602968085106383;3.5376250000000002;3.474948979591837;3.41478;3.3569705882352943;3.301384615384616;3.2478962264150946;3.196388888888889;3.1467545454545456;3.0988928571428573;3.0527105263157894;3.0081206896551724;2.965042372881356;2.9234000000000004;2.8831229508196725;2.844145161290323;2.806404761904762;2.76984375;2.7344076923076925;2.7000454545454544;2.6667089552238807;2.634352941176471;2.602934782608696;2.572414285714286;2.5427535211267607;2.513916666666667;2.485869863013699;2.458581081081081;2.43202;2.4061578947368423;2.3809675324675323;2.356423076923077;2.3325;2.3091749999999998;2.286425925925926;2.2642317073170735;2.2425722891566267;2.2214285714285715;2.2007823529411765;2.180616279069768;2.1609137931034486;2.141659090909091;2.1228370786516857;2.104433333333333;2.086434065934066;2.0688260869565216;2.0515967741935484;2.0347340425531915;2.018226315789474;2.0020625;1.9862319587628865;1.9707244897959182;1.9555303030303035;1.9406400000000001;1.9260445544554459;1.9117352941176473;1.8977038834951458;1.8839423076923079;1.8704428571428573;1.8571981132075472;1.8442009345794395;1.8314444444444447;1.818922018348624;1.8066272727272727;1.7945540540540539;1.7826964285714286;1.7710486725663719;1.7596052631578947;1.7483608695652173;1.7373103448275862;1.7264487179487182;1.7157711864406782;1.7052731092436977;1.6949500000000002;1.684797520661157;1.6748114754098364;1.6649878048780489;1.6553225806451612;1.645812;1.636452380952381
44;4.574291666666666;4.46327027027027;4.358092105263158;4.258307692307692;4.1635124999999995;4.073341463414634;3.987464285714286;3.905581395348838;3.8274204545454547;3.7527333333333335;3.6812934782608693;3.6128936170212764;3.5473437500000005;3.484469387755102;3.42411;3.3661176470588234;3.3103557692307692;3.2566981132075474;3.2050277777777776;3.1552363636363636;3.1072232142857144;3.0608947368421053;3.0161637931034484;2.9729491525423732;2.931175;2.890770491803279;2.8516693548387098;2.8138095238095238;2.7771328125;2.7415846153846153;2.7071136363636366;2.673671641791045;2.641213235294118;2.6096956521739134;2.5790785714285716;2.549323943661972;2.5203958333333336;2.4922602739726027;2.4648851351351353;2.43824;2.412296052631579;2.387025974025974;2.362403846153846;2.3384050632911393;2.3150062499999997;2.2921851851851853;2.2699207317073173;2.2481927710843377;2.2269821428571435;2.206270588235294;2.186040697674419;2.1662758620689657;2.1469602272727273;2.128078651685393;2.1096166666666667;2.09156043956044;2.0738967391304346;2.0566129032258065;2.039696808510638;2.023136842105263;2.0069218749999997;1.9910412371134023;1.9754846938775512;1.9602424242424243;1.9453050000000003;1.930663366336634;1.916308823529412;1.902233009708738;1.8884278846153848;1.8748857142857145;1.8615990566037737;1.8485607476635515;1.8357638888888892;1.8232018348623853;1.810868181818182;1.7987567567567568;1.7868616071428571;1.7751769911504425;1.7636973684210528;1.752417391304348;1.7413318965517244;1.7304358974358975;1.7197245762711866;1.7091932773109244;1.6988375000000002;1.6886528925619837;1.6786352459016394;1.6687804878048782;1.6590846774193548;1.6495440000000001
45;4.704985714285715;4.58725;4.475878378378379;4.370368421052632;4.27026923076923;4.175175;4.0847195121951225;3.998571428571429;3.9164302325581395;3.838022727272728;3.7630999999999997;3.6914347826086957;3.6228191489361707;3.5570625;3.4939897959183677;3.43344;3.375264705882353;3.3193269230769236;3.2655;3.2136666666666667;3.1637181818181817;3.1155535714285714;3.0690789473684212;3.0242068965517244;2.98085593220339;2.93895;2.8984180327868856;2.859193548387097;2.8212142857142855;2.784421875;2.7487615384615385;2.7141818181818187;2.680634328358209;2.648073529411765;2.6164565217391305;2.5857428571428573;2.555894366197183;2.526875;2.498650684931507;2.471189189189189;2.4444600000000003;2.418434210526316;2.3930844155844158;2.3683846153846155;2.344310126582278;2.3208375000000006;2.297944444444445;2.275609756097561;2.2538132530120483;2.2325357142857145;2.211758823529412;2.19146511627907;2.171637931034483;2.152261363636364;2.1333202247191014;2.1148000000000002;2.096686813186813;2.078967391304348;2.0616290322580646;2.044659574468085;2.0280473684210527;2.0117812500000003;1.995850515463918;1.9802448979591838;1.9649545454545456;1.9499700000000002;1.935282178217822;1.9208823529411765;1.9067621359223303;1.8929134615384617;1.8793285714285717;1.866;1.8529205607476635;1.8400833333333335;1.827481651376147;1.815109090909091;1.8029594594594593;1.7910267857142856;1.7793053097345133;1.7677894736842106;1.7564739130434783;1.7453534482758624;1.7344230769230773;1.7236779661016952;1.7131134453781514;1.7027250000000003;1.69250826446281;1.6824590163934428;1.6725731707317073;1.6628467741935484
46;4.843367647058823;4.7183142857142855;4.600208333333334;4.488486486486487;4.3826447368421055;4.282230769230769;4.1868375;4.09609756097561;4.009678571428571;3.927279069767442;3.848625;3.7734666666666667;3.701576086956522;3.632744680851064;3.56678125;3.503510204081633;3.4427700000000003;3.3844117647058827;3.328298076923077;3.274301886792453;3.2223055555555558;3.1722;3.123883928571429;3.077263157894737;3.0322500000000003;2.988762711864407;2.9467250000000003;2.906065573770492;2.866717741935484;2.8286190476190476;2.7917109375;2.7559384615384617;2.7212500000000004;2.687597014925373;2.654933823529412;2.623217391304348;2.5924071428571427;2.5624647887323944;2.533354166666667;2.505041095890411;2.4774932432432433;2.45068;2.4245723684210527;2.399142857142857;2.3743653846153845;2.350215189873418;2.32666875;2.303703703703704;2.281298780487805;2.2594337349397593;2.238089285714286;2.2172470588235296;2.196889534883721;2.177;2.1575625;2.138561797752809;2.1199833333333333;2.1018131868131866;2.0840380434782606;2.0666451612903227;2.049622340425532;2.032957894736842;2.016640625;2.000659793814433;1.9850051020408164;1.969666666666667;1.9546350000000001;1.93990099009901;1.9254558823529413;1.9112912621359226;1.8973990384615385;1.8837714285714287;1.8704009433962265;1.8572803738317756;1.8444027777777778;1.8317614678899083;1.81935;1.8071621621621623;1.7951919642857144;1.7834336283185839;1.7718815789473688;1.7605304347826087;1.7493750000000003;1.7384102564102566;1.7276313559322034;1.7170336134453783;1.7066125;1.6963636363636363;1.6862827868852461;1.6763658536585366
47;4.990136363636363;4.857088235294118;4.731642857142857;4.613166666666666;4.501094594594594;4.394921052631579;4.294192307692308;4.1985;4.107475609756098;4.020785714285714;3.9381279069767445;3.859227272727273;3.783833333333334;3.7117173913043477;3.6426702127659576;3.5765000000000002;3.513030612244898;3.4521;3.393558823529412;3.337269230769231;3.283103773584906;3.2309444444444444;3.180681818181818;3.1322142857142863;3.0854473684210526;3.040293103448276;2.9966694915254237;2.9545;2.9137131147540987;2.8742419354838713;2.8360238095238097;2.7990000000000004;2.763115384615385;2.728318181818182;2.6945597014925373;2.6617941176470588;2.6299782608695654;2.599071428571429;2.5690352112676056;2.539833333333333;2.5114315068493154;2.483797297297297;2.4569;2.4307105263157895;2.4052012987012987;2.3803461538461543;2.3561202531645575;2.3325000000000005;2.3094629629629635;2.286987804878049;2.26505421686747;2.2436428571428575;2.2227352941176473;2.202313953488372;2.182362068965517;2.162863636363636;2.1438033707865167;2.125166666666667;2.1069395604395607;2.089108695652174;2.071661290322581;2.0545851063829788;2.037868421052632;2.0215000000000005;2.005469072164949;1.9897653061224492;1.9743787878787882;1.9593;1.9445198019801981;1.930029411764706;1.9158203883495148;1.9018846153846156;1.8882142857142856;1.874801886792453;1.8616401869158876;1.8487222222222224;1.8360412844036698;1.823590909090909;1.8113648648648648;1.799357142857143;1.7875619469026551;1.7759736842105265;1.7645869565217394;1.7533965517241379;1.7423974358974361;1.731584745762712;1.720953781512605;1.7105000000000001;1.700219008264463;1.6901065573770495
48;5.146078125000001;5.004272727272728;4.870808823529412;4.744971428571429;4.626125;4.5137027027027035;4.407197368421053;4.306153846153847;4.2101625;4.118853658536586;4.031892857142857;3.948976744186046;3.8698295454545457;3.7942;3.721858695652174;3.652595744680851;3.5862187500000005;3.522551020408163;3.46143;3.4027058823529415;3.3462403846153848;3.2919056603773584;3.2395833333333335;3.1891636363636366;3.140544642857143;3.0936315789473685;3.048336206896552;3.004576271186441;2.962275;2.921360655737705;2.881766129032258;2.8434285714285714;2.8062890625000003;2.7702923076923076;2.735386363636364;2.7015223880597015;2.668654411764706;2.6367391304347825;2.6057357142857143;2.575605633802817;2.5463125;2.5178219178082193;2.4901013513513512;2.46312;2.4368486842105264;2.4112597402597404;2.3863269230769233;2.3620253164556964;2.3383312500000004;2.3152222222222223;2.292676829268293;2.270674698795181;2.2491964285714285;2.228223529411765;2.2077383720930235;2.187724137931035;2.168164772727273;2.149044943820225;2.13035;2.1120659340659342;2.0941793478260866;2.0766774193548385;2.059547872340426;2.0427789473684212;2.026359375;2.010278350515464;1.9945255102040818;1.9790909090909092;1.9639650000000002;1.9491386138613862;1.934602941176471;1.9203495145631069;1.9063701923076923;1.8926571428571428;1.8792028301886794;1.866;1.853041666666667;1.8403211009174312;1.8278318181818183;1.8155675675675678;1.8035223214285716;1.791690265486726;1.7800657894736844;1.7686434782608698;1.757418103448276;1.7463846153846154;1.7355381355932205;1.724873949579832;1.7143875;1.7040743801652893
49;5.3120806451612905;5.160656250000001;5.018409090909091;4.8845294117647065;4.7583;4.639083333333334;4.526310810810811;4.419473684210526;4.318115384615385;4.221825000000001;4.130231707317074;4.043;3.959825581395349;3.880431818181818;3.804566666666667;3.732;3.6625212765957453;3.5959375;3.5320714285714288;3.4707600000000003;3.4118529411764706;3.3552115384615386;3.300707547169811;3.248222222222223;3.1976454545454547;3.1488750000000003;3.1018157894736844;3.056379310344828;3.0124830508474574;2.9700499999999996;2.9290081967213113;2.8892903225806457;2.8508333333333336;2.8135781250000003;2.7774692307692312;2.742454545454546;2.7084850746268656;2.675514705882353;2.6435;2.6124;2.582176056338028;2.552791666666667;2.524212328767123;2.4964054054054055;2.46934;2.4429868421052636;2.417318181818182;2.3923076923076927;2.3679303797468356;2.3441625000000004;2.3209814814814815;2.2983658536585367;2.276295180722892;2.25475;2.233711764705882;2.2131627906976745;2.1930862068965515;2.1734659090909094;2.154286516853933;2.135533333333333;2.1171923076923074;2.09925;2.081693548387097;2.0645106382978726;2.0476894736842106;2.0312187500000003;2.0150876288659796;1.9992857142857146;1.9838030303030305;1.96863;1.9537574257425743;1.9391764705882355;1.924878640776699;1.910855769230769;1.8971;1.8836037735849058;1.8703598130841121;1.8573611111111112;1.8446009174311926;1.8320727272727273;1.8197702702702705;1.8076875000000001;1.7958185840707968;1.7841578947368424;1.7727;1.7614396551724139;1.750371794871795;1.7394915254237289;1.728794117647059;1.718275
50;5.48915;5.327129032258065;5.1752343750000005;5.032545454545454;4.89825;4.771628571428572;4.652041666666667;4.538918918918919;4.431750000000001;4.330076923076923;4.233487500000001;4.14160975609756;4.054107142857143;3.970674418604651;3.8910340909090912;3.8149333333333337;3.742141304347826;3.6724468085106388;3.60565625;3.5415918367346944;3.4800900000000006;3.4210000000000003;3.364182692307692;3.309509433962264;3.2568611111111117;3.2061272727272727;3.1572053571428573;3.1100000000000003;3.0644224137931038;3.0203898305084746;2.977825;2.9366557377049185;2.8968145161290324;2.8582380952380957;2.8208671875;2.784646153846154;2.749522727272727;2.71544776119403;2.682375;2.6502608695652174;2.619064285714286;2.5887464788732393;2.5592708333333336;2.530602739726027;2.5027094594594597;2.47556;2.4491250000000004;2.4233766233766234;2.3982884615384616;2.373835443037975;2.3499937500000003;2.3267407407407408;2.3040548780487806;2.2819156626506025;2.2603035714285715;2.2392000000000003;2.2185872093023256;2.198448275862069;2.1787670454545456;2.1595280898876403;2.1407166666666666;2.1223186813186814;2.1043206521739135;2.086709677419355;2.0694734042553193;2.0526000000000004;2.0360781250000004;2.019896907216495;2.004045918367347;1.9885151515151516;1.973295;1.9583762376237626;1.94375;1.9294077669902912;1.9153413461538462;1.9015428571428572;1.888004716981132;1.8747196261682242;1.8616805555555556;1.8488807339449542;1.8363136363636365;1.8239729729729732;1.8118526785714288;1.7999469026548673;1.7882500000000001;1.7767565217391308;1.765461206896552;1.7543589743589743;1.7434449152542375;1.7327142857142857
51;5.6784310344827595;5.5047;5.342177419354839;5.1898125;5.046681818181818;4.911970588235294;4.784957142857143;4.665;4.551527027027027;4.444026315789474;4.342038461538462;4.24515;4.152987804878049;4.065214285714285;3.9815232558139537;3.901636363636364;3.8253000000000004;3.752282608695652;3.682372340425532;3.6153750000000002;3.5511122448979595;3.48942;3.4301470588235294;3.373153846153847;3.3183113207547175;3.2655;3.214609090909091;3.1655357142857143;3.118184210526316;3.0724655172413797;3.028296610169492;2.9856000000000003;2.9443032786885244;2.9043387096774196;2.8656428571428574;2.82815625;2.791823076923077;2.7565909090909093;2.7224104477611943;2.689235294117647;2.657021739130435;2.6257285714285716;2.5953169014084505;2.56575;2.5369931506849315;2.509013513513514;2.48178;2.455263157894737;2.429435064935065;2.404269230769231;2.379740506329114;2.3558250000000003;2.3325;2.3097439024390245;2.2875361445783136;2.265857142857143;2.2446882352941175;2.224011627906977;2.2038103448275863;2.1840681818181817;2.164769662921348;2.1459;2.1274450549450554;2.1093913043478265;2.0917258064516133;2.074436170212766;2.05751052631579;2.0409375;2.0247061855670108;2.0088061224489797;1.9932272727272728;1.9779600000000002;1.9629950495049506;1.9483235294117647;1.9339368932038834;1.9198269230769232;1.9059857142857142;1.8924056603773587;1.8790794392523362;1.8659999999999999;1.8531605504587159;1.8405545454545458;1.8281756756756757;1.8160178571428571;1.8040752212389384;1.792342105263158;1.7808130434782612;1.7694827586206898;1.758346153846154;1.747398305084746
52;5.881232142857143;5.694517241379311;5.520250000000001;5.357225806451613;5.204390625;5.060818181818182;4.925691176470589;4.798285714285715;4.677958333333334;4.564135135135135;4.456302631578947;4.354;4.2568125000000006;4.164365853658537;4.076321428571429;3.9923720930232562;3.912238636363637;3.8356666666666666;3.7624239130434782;3.6922978723404256;3.62509375;3.5606326530612247;3.4987500000000002;3.439294117647059;3.3821250000000003;3.32711320754717;3.274138888888889;3.2230909090909092;3.173866071428572;3.1263684210526317;3.0805086206896553;3.0362033898305087;2.9933750000000003;2.951950819672131;2.9118629032258068;2.8730476190476195;2.8354453125;2.799;2.763659090909091;2.729373134328358;2.696095588235294;2.6637826086956524;2.632392857142857;2.6018873239436617;2.572229166666667;2.543383561643836;2.5153175675675676;2.4880000000000004;2.461401315789474;2.435493506493507;2.41025;2.3856455696202534;2.3616562500000002;2.3382592592592593;2.3154329268292684;2.293156626506024;2.2714107142857145;2.2501764705882352;2.229436046511628;2.2091724137931035;2.189369318181818;2.170011235955056;2.1510833333333337;2.1325714285714286;2.1144619565217395;2.0967419354838714;2.0793989361702128;2.062421052631579;2.045796875;2.029515463917526;2.0135663265306123;1.9979393939393941;1.982625;1.967613861386139;1.9528970588235293;1.9384660194174756;1.9243125;1.9104285714285714;1.896806603773585;1.8834392523364487;1.8703194444444446;1.8574403669724773;1.8447954545454548;1.8323783783783785;1.8201830357142859;1.8082035398230092;1.796434210526316;1.7848695652173914;1.7735043103448276;1.7623333333333333
53;6.099055555555556;5.897892857142858;5.710603448275862;5.5358;5.372274193548387;5.21896875;5.0749545454545455;4.939411764705882;4.811614285714286;4.690916666666666;4.576743243243244;4.468578947368421;4.365961538461539;4.2684750000000005;4.175743902439025;4.087428571428572;4.003220930232558;3.922840909090909;3.8460333333333336;3.7725652173913047;3.702223404255319;3.6348125000000002;3.57015306122449;3.5080800000000005;3.4484411764705882;3.3910961538461537;3.3359150943396227;3.2827777777777776;3.2315727272727273;3.1821964285714284;3.1345526315789476;3.0885517241379317;3.0441101694915256;3.00115;2.959598360655738;2.919387096774194;2.8804523809523808;2.842734375;2.806176923076923;2.7707272727272727;2.7363358208955226;2.702955882352941;2.6705434782608695;2.6390571428571428;2.608457746478873;2.5787083333333336;2.54977397260274;2.521621621621622;2.4942200000000003;2.467539473684211;2.4415519480519485;2.4162307692307694;2.3915506329113927;2.3674875;2.344018518518519;2.3211219512195123;2.298777108433735;2.276964285714286;2.255664705882353;2.234860465116279;2.2145344827586206;2.1946704545454545;2.1752528089887644;2.1562666666666668;2.1376978021978026;2.1195326086956525;2.1017580645161296;2.0843617021276595;2.0673315789473685;2.0506562500000003;2.0343247422680415;2.018326530612245;2.0026515151515154;1.98729;1.9722326732673268;1.957470588235294;1.942995145631068;1.9287980769230768;1.9148714285714286;1.901207547169811;1.887799065420561;1.8746388888888892;1.8617201834862387;1.8490363636363638;1.8365810810810812;1.8243482142857144;1.8123318584070798;1.8005263157894738;1.7889260869565218;1.7775258620689658
54;6.333634615384616;6.116333333333333;5.914553571428572;5.726689655172414;5.55135;5.3873225806451615;5.233546875;5.08909090909091;4.953132352941177;4.824942857142858;4.703875;4.589351351351351;4.480855263157895;4.377923076923077;4.2801375;4.187121951219512;4.098535714285715;4.01406976744186;3.933443181818182;3.8564000000000003;3.7827065217391302;3.7121489361702125;3.64453125;3.579673469387755;3.5174100000000004;3.457588235294118;3.400067307692308;3.344716981132076;3.2914166666666667;3.2400545454545453;3.190526785714286;3.142736842105263;3.096594827586207;3.052016949152543;3.008925;2.9672459016393447;2.9269112903225807;2.887857142857143;2.8500234375;2.813353846153846;2.7777954545454544;2.7432985074626863;2.7098161764705884;2.677304347826087;2.6457214285714286;2.615028169014085;2.5851875;2.556164383561644;2.527925675675676;2.50044;2.4736776315789477;2.44761038961039;2.422211538461539;2.397455696202532;2.37331875;2.3497777777777777;2.326810975609756;2.3043975903614458;2.2825178571428575;2.2611529411764706;2.24028488372093;2.219896551724138;2.199971590909091;2.1804943820224723;2.1614500000000003;2.142824175824176;2.1246032608695655;2.1067741935483872;2.0893244680851066;2.072242105263158;2.055515625;2.039134020618557;2.0230867346938775;2.0073636363636362;1.991955;1.9768514851485148;1.9620441176470589;1.9475242718446601;1.933283653846154;1.9193142857142858;1.905608490566038;1.892158878504673;1.8789583333333337;1.866;1.8532772727272728;1.840783783783784;1.828513392857143;1.8164601769911504;1.8046184210526317;1.7929826086956524
55;6.5869800000000005;6.351576923076923;6.133611111111112;5.931214285714286;5.7427758620689655;5.5669;5.402370967741936;5.248125;5.103227272727273;4.966852941176471;4.838271428571429;4.716833333333334;4.60195945945946;4.493131578947368;4.3898846153846165;4.2918;4.198500000000001;4.109642857142857;4.0249186046511625;3.9440454545454546;3.866766666666667;3.7928478260869567;3.7220744680851063;3.65425;3.5891938775510206;3.52674;3.4667352941176475;3.409038461538462;3.3535188679245285;3.3000555555555553;3.248536363636364;3.1988571428571433;3.1509210526315794;3.104637931034483;3.0599237288135597;3.0167;2.9748934426229505;2.934435483870968;2.895261904761905;2.8573125;2.8205307692307695;2.784863636363636;2.750261194029851;2.716676470588235;2.6840652173913044;2.652385714285715;2.621598591549296;2.591666666666667;2.5625547945205485;2.53422972972973;2.50666;2.479815789473684;2.4536688311688315;2.4281923076923078;2.403360759493671;2.37915;2.355537037037037;2.3325;2.310018072289157;2.2880714285714285;2.2666411764705883;2.245709302325581;2.2252586206896554;2.2052727272727273;2.18573595505618;2.1666333333333334;2.1479505494505498;2.1296739130434785;2.1117903225806454;2.0942872340425533;2.0771526315789473;2.060375;2.0439432989690722;2.0278469387755105;2.0120757575757575;1.99662;1.981470297029703;1.9666176470588237;1.9520533980582524;1.9377692307692307;1.9237571428571432;1.9100094339622644;1.8965186915887853;1.8832777777777778;1.8702798165137615;1.857518181818182;1.8449864864864867;1.8326785714285716;1.8205884955752214;1.8087105263157897
56;6.8614375;6.60564;6.369519230769231;6.15088888888889;5.947875;5.7588620689655174;5.582450000000001;5.41741935483871;5.262703125;5.117363636363637;4.980573529411765;4.8516;4.729791666666667;4.614567567567567;4.505407894736843;4.401846153846154;4.3034625;4.209878048780488;4.12075;4.035767441860465;3.954647727272728;3.877133333333333;3.8029891304347823;3.732;3.6639687500000004;3.5987142857142858;3.5360700000000005;3.4758823529411766;3.4180096153846153;3.362320754716981;3.3086944444444444;3.257018181818182;3.2071875000000003;3.159105263157895;3.112681034482759;3.0678305084745765;3.024475;2.9825409836065573;2.941959677419355;2.9026666666666667;2.8646015625;2.8277076923076923;2.7919318181818182;2.7572238805970146;2.7235367647058824;2.6908260869565224;2.6590500000000006;2.6281690140845075;2.5981458333333336;2.5689452054794524;2.540533783783784;2.5128800000000004;2.4859539473684213;2.4597272727272728;2.434173076923077;2.40926582278481;2.38498125;2.3612962962962962;2.338189024390244;2.3156385542168674;2.293625;2.272129411764706;2.2511337209302327;2.2306206896551726;2.210573863636364;2.1909775280898875;2.171816666666667;2.1530769230769233;2.1347445652173915;2.116806451612903;2.09925;2.082063157894737;2.065234375;2.0487525773195876;2.0326071428571426;2.016787878787879;2.001285;1.9860891089108912;1.9711911764705883;1.9565825242718446;1.942254807692308;1.9282000000000004;1.9144103773584908;1.9008785046728973;1.8875972222222224;1.8745596330275232;1.861759090909091;1.8491891891891892;1.8368437500000003;1.8247168141592922
57;7.159760869565218;6.8808750000000005;6.6243;6.3874615384615385;6.168166666666666;5.964535714285715;5.774948275862069;5.598000000000001;5.4324677419354845;5.277281250000001;5.131500000000001;4.994294117647059;4.864928571428572;4.74275;4.627175675675677;4.517684210526316;4.413807692307692;4.315125;4.221256097560976;4.131857142857143;4.0466162790697675;3.96525;3.8875;3.813130434782609;3.741925531914894;3.6736875000000007;3.6082346938775514;3.5454000000000003;3.4850294117647063;3.426980769230769;3.3711226415094337;3.317333333333334;3.2655000000000003;3.2155178571428578;3.1672894736842108;3.1207241379310346;3.0757372881355933;3.03225;2.990188524590164;2.9494838709677422;2.910071428571429;2.871890625;2.834884615384615;2.799;2.764186567164179;2.73039705882353;2.6975869565217394;2.665714285714286;2.6347394366197188;2.6046250000000004;2.5753356164383563;2.5468378378378382;2.5191;2.492092105263158;2.4657857142857145;2.440153846153846;2.4151708860759493;2.3908125;2.3670555555555555;2.3438780487804878;2.3212590361445784;2.2991785714285715;2.2776176470588236;2.256558139534884;2.2359827586206897;2.2158750000000005;2.196219101123596;2.177;2.158203296703297;2.1398152173913045;2.121822580645161;2.1042127659574468;2.0869736842105264;2.07009375;2.053561855670103;2.0373673469387756;2.0215;2.00595;1.9907079207920793;1.9757647058823529;1.961111650485437;1.9467403846153848;1.9326428571428573;1.9188113207547173;1.9052383177570096;1.891916666666667;1.8788394495412843;1.866;1.8533918918918921;1.8410089285714286
58;7.485204545454546;7.1800434782608695;6.9003125;6.64296;6.405403846153846;6.185444444444445;5.981196428571429;5.791034482758621;5.61355;5.447516129032258;5.2918593750000005;5.145636363636364;5.008014705882353;4.878257142857143;4.755708333333334;4.639783783783784;4.52996052631579;4.425769230769231;4.3267875;4.232634146341463;4.142964285714286;4.05746511627907;3.9758522727272725;3.8978666666666673;3.823271739130435;3.751851063829787;3.68340625;3.6177551020408165;3.55473;3.4941764705882354;3.4359519230769235;3.379924528301887;3.3259722222222226;3.2739818181818183;3.2238482142857148;3.1754736842105262;3.12876724137931;3.08364406779661;3.0400250000000004;2.997836065573771;2.957008064516129;2.9174761904761906;2.8791796874999998;2.842061538461538;2.8060681818181816;2.771149253731344;2.737257352941177;2.704347826086957;2.6723785714285717;2.64130985915493;2.611104166666667;2.5817260273972606;2.553141891891892;2.52532;2.498230263157895;2.471844155844156;2.4461346153846155;2.4210759493670886;2.39664375;2.3728148148148147;2.3495670731707317;2.326879518072289;2.304732142857143;2.2831058823529413;2.261982558139535;2.2413448275862073;2.2211761363636366;2.2014606741573037;2.1821833333333336;2.1633296703296705;2.1448858695652175;2.1268387096774193;2.109175531914894;2.091884210526316;2.074953125;2.0583711340206188;2.042127551020408;2.0262121212121214;2.010615;1.9953267326732673;1.980338235294118;1.9656407766990291;1.9512259615384617;1.9370857142857143;1.9232122641509437;1.9095981308411216;1.896236111111111;1.883119266055046;1.8702409090909091;1.8575945945945946
59;7.841642857142858;7.5064090909090915;7.200326086956522;6.91975;6.661619999999999;6.423346153846154;6.2027222222222225;5.997857142857144;5.807120689655172;5.6291;5.462564516129032;5.3064375;5.159772727272728;5.021735294117647;4.891585714285714;4.768666666666667;4.6523918918918925;4.542236842105264;4.43773076923077;4.33845;4.244012195121951;4.154071428571429;4.0683139534883725;3.9864545454545457;3.9082333333333334;3.833413043478261;3.7617765957446814;3.693125;3.6272755102040817;3.56406;3.5033235294117646;3.4449230769230774;3.3887264150943404;3.3346111111111116;3.2824636363636364;3.2321785714285713;3.183657894736842;3.1368103448275866;3.0915508474576274;3.0478;3.0054836065573767;2.964532258064516;2.9248809523809522;2.8864687499999997;2.8492384615384614;2.8131363636363638;2.778111940298508;2.7441176470588236;2.7111086956521744;2.6790428571428575;2.6478802816901412;2.6175833333333336;2.5881164383561646;2.559445945945946;2.53154;2.5043684210526314;2.4779025974025974;2.452115384615385;2.426981012658228;2.402475;2.378574074074074;2.3552560975609755;2.3325000000000005;2.3102857142857145;2.288594117647059;2.2674069767441862;2.246706896551724;2.226477272727273;2.2067022471910116;2.1873666666666667;2.168456043956044;2.1499565217391305;2.1318548387096774;2.1141382978723406;2.096794736842105;2.0798125;2.0631804123711337;2.046887755102041;2.0309242424242426;2.0152799999999997;1.9999455445544556;1.9849117647058825;1.9701699029126214;1.955711538461539;1.9415285714285715;1.92761320754717;1.9139579439252339;1.9005555555555556;1.8873990825688076;1.8744818181818184
60;8.233725;7.863857142857143;7.527613636363637;7.2206086956521744;6.9391875;6.680280000000001;6.441288461538463;6.220000000000001;6.014517857142858;5.823206896551724;5.64465;5.477612903225806;5.321015625;5.173909090909091;5.035455882352942;4.904914285714286;4.781625;4.665;4.554513157894737;4.449692307692308;4.3501125;4.25539024390244;4.165178571428571;4.079162790697675;3.997056818181819;3.9186;3.843554347826087;3.771702127659575;3.7028437500000004;3.636795918367347;3.57339;3.5124705882352947;3.4538942307692313;3.397528301886793;3.3432500000000003;3.2909454545454544;3.240508928571429;3.191842105263158;3.144853448275862;3.0994576271186443;3.055575;3.0131311475409834;2.9720564516129033;2.9322857142857144;2.8937578125;2.856415384615385;2.820204545454546;2.785074626865672;2.7509779411764708;2.7178695652173914;2.685707142857143;2.6544507042253525;2.6240625;2.5945068493150685;2.5657500000000004;2.53776;2.5105065789473686;2.483961038961039;2.458096153846154;2.432886075949367;2.40830625;2.384333333333333;2.36094512195122;2.338120481927711;2.315839285714286;2.2940823529411767;2.2728313953488373;2.2520689655172417;2.231778409090909;2.211943820224719;2.19255;2.1735824175824177;2.1550271739130435;2.1368709677419355;2.1191010638297874;2.1017052631578945;2.084671875;2.0679896907216495;2.0516479591836734;2.0356363636363635;2.019945;2.004564356435644;1.9894852941176473;1.9746990291262136;1.9601971153846156;1.9459714285714287;1.9320141509433961;1.918317757009346;1.904875;1.8916788990825688
61;8.667078947368422;8.25705;7.886071428571428;7.548818181818182;7.2408913043478265;6.9586250000000005;6.69894;6.4592307692307696;6.237277777777778;6.031178571428573;5.839293103448276;5.6602;5.492661290322581;5.33559375;5.188045454545455;5.049176470588235;4.918242857142857;4.794583333333334;4.6776081081081085;4.56678947368421;4.461653846153846;4.361775;4.266768292682927;4.176285714285715;4.090011627906977;4.007659090909091;3.9289666666666667;3.853695652173913;3.7816276595744682;3.7125624999999998;3.6463163265306124;3.58272;3.521617647058824;3.4628653846153847;3.4063301886792456;3.3518888888888894;3.299427272727273;3.248839285714286;3.200026315789474;3.152896551724138;3.107364406779661;3.0633500000000002;3.02077868852459;2.9795806451612905;2.939690476190476;2.9010468750000005;2.8635923076923078;2.8272727272727276;2.7920373134328362;2.757838235294118;2.724630434782609;2.6923714285714286;2.6610211267605637;2.630541666666667;2.600897260273973;2.572054054054054;2.54398;2.5166447368421054;2.4900194805194804;2.464076923076923;2.4387911392405064;2.4141375;2.390092592592593;2.3666341463414637;2.3437409638554216;2.3213928571428575;2.2995705882352944;2.2782558139534888;2.257431034482759;2.2370795454545456;2.2171853932584273;2.1977333333333333;2.1787087912087912;2.1600978260869566;2.1418870967741936;2.124063829787234;2.1066157894736843;2.08953125;2.072798969072165;2.056408163265306;2.040348484848485;2.02461;2.0091831683168317;1.994058823529412;1.979228155339806;1.9646826923076925;1.9504142857142859;1.9364150943396228;1.922677570093458;1.9091944444444446
62;9.148583333333333;8.69163157894737;8.280375;7.908285714285714;7.570022727272727;7.2611739130434785;6.978062500000001;6.717600000000001;6.477173076923077;6.254555555555556;6.047839285714286;5.855379310344828;5.67575;5.507709677419355;5.350171875000001;5.202181818181819;5.0628970588235305;4.931571428571429;4.807541666666667;4.690216216216217;4.579065789473685;4.4736153846153845;4.3734375;4.278146341463415;4.187392857142857;4.10086046511628;4.0182613636363635;3.939333333333334;3.863836956521739;3.7915531914893617;3.72228125;3.655836734693878;3.5920500000000004;3.5307647058823535;3.4718365384615386;3.415132075471698;3.360527777777778;3.3079090909090914;3.257169642857143;3.2082105263157894;3.1609396551724136;3.115271186440678;3.0711250000000003;3.028426229508197;2.9871048387096772;2.9470952380952387;2.9083359375000004;2.870769230769231;2.8343409090909093;2.7990000000000004;2.764698529411765;2.7313913043478264;2.6990357142857144;2.667591549295775;2.6370208333333336;2.6072876712328767;2.578358108108108;2.5502000000000002;2.5227828947368423;2.496077922077922;2.4700576923076922;2.444696202531645;2.4199687500000002;2.395851851851852;2.3723231707317076;2.349361445783133;2.3269464285714285;2.305058823529412;2.28368023255814;2.262793103448276;2.242380681818182;2.2224269662921348;2.202916666666667;2.183835164835165;2.1651684782608696;2.1469032258064518;2.129026595744681;2.1115263157894737;2.094390625;2.0776082474226802;2.061168367346939;2.0450606060606065;2.029275;2.01380198019802;1.9986323529411767;1.9837572815533981;1.9691682692307695;1.954857142857143;1.940816037735849;1.9270373831775702
63;9.686735294117646;9.1745;8.716184210526317;8.303700000000001;7.930499999999999;7.591227272727274;7.2814565217391305;6.9975000000000005;6.736260000000001;6.495115384615385;6.271833333333333;6.0645;5.87146551724138;5.6913;5.52275806451613;5.364750000000001;5.216318181818182;5.076617647058824;4.9449000000000005;4.820500000000001;4.702824324324324;4.591342105263158;4.485576923076923;4.3851;4.289524390243903;4.1985;4.111709302325582;4.028863636363637;3.9497;3.873978260869565;3.801478723404255;3.732;3.665357142857143;3.6013800000000007;3.5399117647058826;3.4808076923076925;3.4239339622641514;3.369166666666667;3.3163909090909094;3.2655;3.2163947368421053;3.1689827586206896;3.123177966101695;3.0789;3.036073770491803;2.994629032258065;2.9545000000000003;2.9156250000000004;2.877946153846154;2.8414090909090914;2.805962686567164;2.771558823529412;2.7381521739130434;2.7057;2.674161971830986;2.6435;2.6136780821917807;2.584662162162162;2.55642;2.5289210526315786;2.5021363636363634;2.4760384615384616;2.450601265822785;2.4258;2.4016111111111114;2.3780121951219515;2.3549819277108437;2.3325000000000005;2.3105470588235297;2.289104651162791;2.268155172413793;2.2476818181818183;2.2276685393258426;2.2081;2.1889615384615384;2.1702391304347826;2.15191935483871;2.1339893617021275;2.116436842105263;2.09925;2.082417525773196;2.0659285714285716;2.0497727272727273;2.0339400000000003;2.018420792079208;2.0032058823529413;1.9882864077669904;1.9736538461538462;1.9593;1.9452169811320754
64;10.292156250000001;9.714176470588235;9.200416666666667;8.740736842105264;8.327024999999999;7.952714285714286;7.612431818181819;7.301739130434783;7.016937500000001;6.75492;6.513057692307693;6.2891111111111115;6.081160714285715;5.887551724137931;5.706850000000001;5.537806451612903;5.379328125000001;5.2304545454545455;5.0903382352941176;4.958228571428571;4.833458333333334;4.715432432432433;4.603618421052632;4.497538461538462;4.3967625;4.300902439024391;4.209607142857143;4.122558139534884;4.039465909090909;3.9600666666666666;3.884119565217391;3.8114042553191494;3.7417187500000004;3.6748775510204084;3.61071;3.5490588235294123;3.489778846153846;3.432735849056604;3.3778055555555557;3.324872727272727;3.2738303571428573;3.224578947368421;3.1770258620689655;3.1310847457627116;3.086675;3.04372131147541;3.002153225806452;2.9619047619047625;2.9229140625000003;2.8851230769230773;2.8484772727272727;2.8129253731343287;2.7784191176470587;2.744913043478261;2.712364285714286;2.6807323943661974;2.6499791666666668;2.620068493150685;2.5909662162162164;2.56264;2.535059210526316;2.508194805194805;2.482019230769231;2.4565063291139246;2.4316312500000006;2.4073703703703706;2.3837012195121954;2.3606024096385543;2.3380535714285715;2.316035294117647;2.294529069767442;2.2735172413793103;2.2529829545454545;2.2329101123595505;2.2132833333333335;2.1940879120879124;2.1753097826086956;2.1569354838709676;2.138952127659574;2.1213473684210524;2.104109375;2.0872268041237114;2.070688775510204;2.054484848484849;2.038605;2.023039603960396;2.007779411764706;1.9928155339805826;1.9781394230769231;1.9637428571428572
65;10.9783;10.321312500000001;9.741617647058824;9.226333333333333;8.765289473684211;8.35035;7.974928571428572;7.633636363636364;7.3220217391304345;7.0363750000000005;6.77358;6.531;6.30638888888889;6.097821428571429;5.903637931034483;5.7224;5.552854838709678;5.393906250000001;5.24459090909091;5.104058823529412;4.971557142857143;4.846416666666667;4.72804054054054;4.6158947368421055;4.5095;4.408425;4.312280487804879;4.220714285714286;4.133406976744187;4.050068181818182;3.9704333333333333;3.8942608695652177;3.821329787234043;3.7514375000000006;3.6843979591836735;3.6200400000000004;3.558205882352941;3.4987500000000002;3.4415377358490566;3.386444444444445;3.3333545454545455;3.2821607142857143;3.2327631578947367;3.1850689655172415;3.138991525423729;3.09445;3.051368852459017;3.0096774193548392;2.9693095238095237;2.9302031250000002;2.8923;2.855545454545455;2.819888059701493;2.785279411764706;2.7516739130434784;2.719028571428572;2.6873028169014086;2.656458333333333;2.6264589041095894;2.59727027027027;2.56886;2.5411973684210527;2.5142532467532472;2.4880000000000004;2.4624113924050635;2.4374625;2.41312962962963;2.3893902439024393;2.3662228915662653;2.343607142857143;2.321523529411765;2.2999534883720933;2.278879310344828;2.2582840909090907;2.2381516853932584;2.218466666666667;2.1992142857142856;2.1803804347826086;2.1619516129032257;2.1439148936170214;2.1262578947368427;2.1089687500000003;2.092036082474227;2.0754489795918367;2.05919696969697;2.04327;2.027658415841584;2.012352941176471;1.997344660194175;1.982625
66;11.762464285714286;11.0094;10.350468750000001;9.769058823529413;9.25225;8.789842105263158;8.373675;7.997142857142858;7.654840909090909;7.342304347826087;7.0558125;6.7922400000000005;6.548942307692308;6.323666666666667;6.114482142857144;5.919724137931034;5.7379500000000005;5.567903225806452;5.4084843750000005;5.258727272727273;5.117779411764706;4.984885714285714;4.859375;4.74064864864865;4.628171052631579;4.521461538461539;4.4200875;4.323658536585366;4.231821428571429;4.144255813953489;4.060670454545455;3.9808000000000003;3.904402173913044;3.8312553191489367;3.76115625;3.6939183673469387;3.62937;3.5673529411764706;3.507721153846154;3.4503396226415095;3.395083333333334;3.3418363636363635;3.2904910714285713;3.2409473684210526;3.193112068965517;3.146898305084746;3.1022250000000002;3.0590163934426235;3.017201612903226;2.976714285714286;2.9374921875;2.8994769230769233;2.8626136363636365;2.826850746268657;2.792139705882353;2.758434782608696;2.7256928571428576;2.69387323943662;2.6629375;2.6328493150684933;2.6035743243243243;2.57508;2.5473355263157895;2.5203116883116885;2.4939807692307694;2.4683164556962027;2.4432937500000005;2.418888888888889;2.395079268292683;2.3718433734939763;2.3491607142857145;2.3270117647058823;2.3053779069767444;2.2842413793103447;2.2635852272727273;2.2433932584269662;2.22365;2.204340659340659;2.1854510869565216;2.166967741935484;2.1488776595744685;2.1311684210526316;2.1138281250000004;2.0968453608247426;2.0802091836734693;2.063909090909091;2.0479350000000003;2.0322772277227727;2.0169264705882353;2.001873786407767
67;12.667269230769232;11.795785714285715;11.040500000000002;10.379625;9.7965;9.278166666666667;8.814394736842106;8.397;8.019357142857142;7.676045454545456;7.362586956521739;7.0752500000000005;6.8109;6.566884615384616;6.340944444444444;6.131142857142858;5.935810344827587;5.753500000000001;5.582951612903226;5.4230625;5.2728636363636365;5.131500000000001;4.998214285714286;4.872333333333334;4.753256756756757;4.640447368421053;4.533423076923077;4.43175;4.335036585365854;4.242928571428571;4.155104651162791;4.071272727272728;3.991166666666667;3.91454347826087;3.8411808510638297;3.770875;3.7034387755102043;3.6387;3.5765000000000002;3.5166923076923076;3.4591415094339624;3.403722222222222;3.3503181818181815;3.2988214285714283;3.2491315789473685;3.2011551724137934;3.154805084745763;3.1100000000000003;3.06666393442623;3.024725806451613;2.984119047619048;2.94478125;2.9066538461538465;2.8696818181818182;2.833813432835821;2.799;2.7651956521739134;2.732357142857143;2.700443661971831;2.6694166666666668;2.639239726027397;2.6098783783783785;2.5813;2.553473684210527;2.52637012987013;2.499961538461539;2.474221518987342;2.449125;2.4246481481481483;2.400768292682927;2.377463855421687;2.354714285714286;2.3325;2.3108023255813954;2.2896034482758623;2.268886363636364;2.248634831460674;2.228833333333333;2.2094670329670327;2.1905217391304346;2.1719838709677424;2.1538404255319152;2.1360789473684214;2.1186875;2.101654639175258;2.0849693877551023;2.0686212121212124;2.0526;2.0368960396039606;2.0215
68;13.722875;12.703153846153846;11.829107142857143;11.0716;10.40878125;9.823941176470589;9.304083333333335;8.838947368421053;8.420325;8.041571428571428;7.69725;7.3828695652173915;7.094687500000001;6.82956;6.584826923076924;6.358222222222222;6.147803571428572;5.951896551724138;5.76905;5.598;5.437640625;5.287;5.145220588235294;5.0115428571428575;4.885291666666667;4.765864864864865;4.652723684210526;4.545384615384616;4.4434125;4.346414634146342;4.254035714285714;4.165953488372094;4.081875;4.001533333333334;3.924684782608696;3.851106382978724;3.7805937500000004;3.71295918367347;3.6480300000000003;3.5856470588235294;3.5256634615384614;3.4679433962264152;3.4123611111111107;3.3587999999999996;3.307151785714286;3.2573157894736844;3.2091982758620694;3.16271186440678;3.117775;3.074311475409836;3.0322500000000003;2.9915238095238097;2.9520703125;2.9138307692307697;2.8767500000000004;2.8407761194029852;2.805860294117647;2.7719565217391304;2.7390214285714287;2.7070140845070423;2.675895833333333;2.645630136986301;2.6161824324324328;2.5875200000000005;2.5596118421052636;2.5324285714285715;2.505942307692308;2.4801265822784813;2.4549562500000004;2.4304074074074076;2.406457317073171;2.3830843373493975;2.3602678571428575;2.3379882352941177;2.3162267441860465;2.2949655172413794;2.2741875;2.253876404494382;2.2340166666666668;2.2145934065934068;2.195592391304348;2.1770000000000005;2.158803191489362;2.1409894736842108;2.123546875;2.1064639175257733;2.089729591836735;2.0733333333333337;2.057265;2.0415148514851484
69;14.970409090909092;13.761750000000001;12.739038461538462;11.862428571428572;11.1027;10.4379375;9.851382352941178;9.33;8.863500000000002;8.443650000000002;8.063785714285714;7.718454545454546;7.403152173913044;7.114125;6.84822;6.602769230769232;6.375500000000001;6.164464285714287;5.96798275862069;5.7846;5.613048387096774;5.45221875;5.301136363636363;5.158941176470589;5.024871428571429;4.89825;4.778472972972973;4.665;4.557346153846154;4.455075000000001;4.35779268292683;4.265142857142857;4.176802325581395;4.092477272727273;4.011900000000001;3.934826086956522;3.861031914893617;3.7903124999999998;3.722479591836735;3.65736;3.5947941176470586;3.5346346153846158;3.4767452830188676;3.421;3.3672818181818185;3.3154821428571433;3.2655000000000003;3.2172413793103454;3.1706186440677966;3.12555;3.081959016393443;3.039774193548387;2.998928571428572;2.959359375;2.9210076923076924;2.883818181818182;2.847738805970149;2.8127205882352944;2.778717391304348;2.7456857142857145;2.7135845070422535;2.682375;2.652020547945206;2.622486486486487;2.5937400000000004;2.5657500000000004;2.538487012987013;2.511923076923077;2.4860316455696205;2.4607875000000003;2.436166666666667;2.412146341463415;2.3887048192771085;2.3658214285714285;2.3434764705882354;2.3216511627906975;2.3003275862068966;2.279488636363636;2.25911797752809;2.2392000000000003;2.2197197802197803;2.200663043478261;2.1820161290322586;2.1637659574468087;2.1459;2.1284062500000003;2.111273195876289;2.0944897959183675;2.0780454545454545;2.0619300000000003
70;16.46745;15.012818181818183;13.800625;12.774923076923077;11.89575;11.1338;10.46709375;9.878823529411765;9.355916666666667;8.888052631578947;8.466975000000001;8.086;7.739659090909091;7.4234347826086955;7.1335625;6.86688;6.6207115384615385;6.392777777777778;6.181125;5.984068965517242;5.80015;5.628096774193549;5.466796875;5.315272727272728;5.172661764705883;5.038200000000001;4.911208333333334;4.7910810810810815;4.677276315789474;4.569307692307692;4.4667375;4.369170731707317;4.27625;4.187651162790698;4.103079545454546;4.022266666666667;3.9449673913043477;3.870957446808511;3.80003125;3.732;3.66669;3.603941176470588;3.543605769230769;3.485547169811321;3.4296388888888885;3.3757636363636365;3.3238125000000003;3.273684210526316;3.2252844827586213;3.178525423728814;3.133325;3.0896065573770493;3.0472983870967743;3.006333333333333;2.9666484375;2.928184615384615;2.8908863636363638;2.8547014925373135;2.819580882352941;2.7854782608695654;2.75235;2.7201549295774647;2.688854166666667;2.65841095890411;2.6287905405405407;2.5999600000000003;2.571888157894737;2.544545454545455;2.517903846153846;2.49193670886076;2.4666187500000003;2.441925925925926;2.4178353658536587;2.3943253012048196;2.371375;2.348964705882353;2.327075581395349;2.3056896551724138;2.284789772727273;2.2643595505617977;2.2443833333333334;2.224846153846154;2.2057336956521745;2.1870322580645163;2.1687287234042554;2.15081052631579;2.1332656250000004;2.116082474226804;2.09925;2.082757575757576
71;18.297166666666666;16.5141;15.055227272727274;13.8395;12.810807692307693;11.92907142857143;11.164900000000001;10.49625;9.906264705882354;9.381833333333333;8.912605263157895;8.4903;8.108214285714286;7.760863636363636;7.443717391304348;7.1530000000000005;6.885540000000001;6.638653846153847;6.410055555555555;6.197785714285715;6.000155172413793;5.8157;5.643145161290323;5.481375000000001;5.329409090909091;5.186382352941177;5.051528571428571;4.924166666666666;4.803689189189189;4.689552631578947;4.58126923076923;4.478400000000001;4.380548780487805;4.287357142857143;4.1985;4.113681818181818;4.032633333333333;3.955108695652174;3.8808829787234043;3.80975;3.7415204081632654;3.6760200000000003;3.613088235294118;3.5525769230769226;3.494349056603774;3.4382777777777784;3.3842454545454546;3.3321428571428577;3.281868421052632;3.2333275862068964;3.1864322033898307;3.1411;3.097254098360656;3.0548225806451614;3.013738095238095;2.9739375;2.935361538461539;2.897954545454546;2.861664179104478;2.8264411764705883;2.7922391304347824;2.7590142857142856;2.7267253521126764;2.6953333333333336;2.664801369863014;2.635094594594595;2.60618;2.578026315789474;2.5506038961038966;2.5238846153846155;2.497841772151899;2.4724500000000003;2.4476851851851853;2.4235243902439025;2.39994578313253;2.3769285714285715;2.3544529411764707;2.3325;2.311051724137931;2.290090909090909;2.269601123595506;2.249566666666667;2.229972527472528;2.210804347826087;2.1920483870967744;2.1736914893617025;2.155721052631579;2.138125;2.12089175257732;2.104010204081633
72;20.584312500000003;18.349;16.56075;15.097636363636363;13.878375;12.846692307692308;11.962392857142857;11.196000000000002;10.52540625;9.933705882352942;9.40775;8.937157894736842;8.513625000000001;8.13042857142857;7.7820681818181825;7.464;7.172437500000001;6.9042;6.656596153846154;6.427333333333333;6.214446428571429;6.016241379310345;5.83125;5.658193548387097;5.495953125000001;5.343545454545454;5.200102941176471;5.064857142857143;4.937125;4.8162972972972975;4.701828947368421;4.59323076923077;4.4900625000000005;4.391926829268293;4.298464285714286;4.209348837209302;4.124284090909091;4.043;3.96525;3.8908085106382977;3.81946875;3.7510408163265305;3.68535;3.622235294117647;3.561548076923077;3.5031509433962267;3.4469166666666666;3.3927272727272735;3.3404732142857148;3.2900526315789476;3.241370689655173;3.1943389830508475;3.1488750000000003;3.1049016393442623;3.0623467741935486;3.0211428571428574;2.9812265625;2.9425384615384615;2.905022727272727;2.868626865671642;2.8333014705882356;2.799;2.7656785714285714;2.7332957746478876;2.7018125000000004;2.671191780821918;2.6413986486486487;2.6124;2.584164473684211;2.556662337662338;2.529865384615385;2.503746835443038;2.47828125;2.4534444444444445;2.4292134146341464;2.4055662650602407;2.382482142857143;2.3599411764705884;2.337924418604651;2.316413793103448;2.2953920454545456;2.2748426966292135;2.2547500000000005;2.235098901098901;2.2158750000000005;2.1970645161290325;2.178654255319149;2.1606315789473687;2.142984375;2.1257010309278352
73;23.52492857142857;20.642625000000002;18.400833333333335;16.607400000000002;15.140045454545454;13.917250000000001;12.882576923076925;11.995714285714287;11.2271;10.554562500000001;9.96114705882353;9.433666666666667;8.96171052631579;8.536950000000001;8.152642857142858;7.803272727272728;7.484282608695652;7.191875;6.92286;6.674538461538462;6.4446111111111115;6.231107142857143;6.032327586206897;5.846800000000001;5.673241935483872;5.5105312500000005;5.357681818181819;5.213823529411766;5.0781857142857145;4.950083333333334;4.828905405405406;4.7141052631578955;4.605192307692308;4.501725;4.403304878048781;4.309571428571429;4.220197674418605;4.1348863636363635;4.053366666666667;3.975391304347826;3.900734042553192;3.8291875;3.7605612244897957;3.69468;3.6313823529411766;3.5705192307692313;3.5119528301886795;3.4555555555555557;3.4012090909090915;3.3488035714285718;3.2982368421052635;3.2494137931034484;3.202245762711865;3.1566500000000004;3.112549180327869;3.0698709677419354;3.028547619047619;2.9885156250000002;2.9497153846153843;2.912090909090909;2.875589552238806;2.8401617647058823;2.805760869565218;2.772342857142857;2.739866197183099;2.7082916666666668;2.6775821917808225;2.647702702702703;2.6186200000000004;2.5903026315789477;2.562720779220779;2.535846153846154;2.509651898734177;2.4841125;2.459203703703704;2.4349024390243903;2.4111867469879518;2.3880357142857145;2.3654294117647057;2.3433488372093025;2.3217758620689657;2.3006931818181817;2.2800842696629218;2.2599333333333336;2.240225274725275;2.220945652173913;2.2020806451612907;2.183617021276596;2.165542105263158;2.1478437500000003
74;27.44575;23.59157142857143;20.700937500000002;18.452666666666666;16.654049999999998;15.182454545454547;13.956125000000002;12.918461538461539;12.029035714285715;11.2582;10.583718750000001;9.988588235294118;9.459583333333335;8.986263157894737;8.560275;8.174857142857144;7.824477272727274;7.504565217391304;7.2113125;6.941520000000001;6.6924807692307695;6.461888888888889;6.247767857142858;6.048413793103449;5.86235;5.688290322580646;5.525109375;5.371818181818182;5.227544117647059;5.091514285714286;4.963041666666666;4.8415135135135134;4.726381578947369;4.617153846153847;4.5133875;4.414682926829268;4.320678571428571;4.231046511627907;4.145488636363637;4.063733333333333;3.985532608695652;3.910659574468085;3.83890625;3.770081632653061;3.70401;3.6405294117647067;3.579490384615385;3.5207547169811324;3.464194444444445;3.4096909090909095;3.357133928571429;3.306421052631579;3.2574568965517248;3.2101525423728816;3.1644250000000005;3.1201967213114754;3.0773951612903225;3.035952380952381;2.9958046875;2.9568923076923075;2.9191590909090905;2.88255223880597;2.84702205882353;2.812521739130435;2.779007142857143;2.74643661971831;2.7147708333333336;2.6839726027397264;2.6540067567567567;2.6248400000000003;2.596440789473684;2.568779220779221;2.5418269230769233;2.5155569620253164;2.48994375;2.464962962962963;2.440591463414634;2.416807228915663;2.3935892857142855;2.370917647058824;2.3487732558139536;2.327137931034483;2.3059943181818183;2.2853258426966296;2.2651166666666667;2.2453516483516482;2.2260163043478265;2.2070967741935483;2.1885797872340427;2.1704526315789474
1 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
2 25 2.9940818181818183 2.948946428571429 2.9053947368421054 2.863344827586207 2.822720338983051 2.78345 2.7454672131147544 2.708709677419355 2.673119047619048 2.6386406250000003 2.6052230769230773 2.572818181818182 2.5413805970149257 2.5108676470588236 2.481239130434783 2.452457142857143 2.424485915492958 2.397291666666667 2.370842465753425 2.3451081081081084 2.3200600000000002 2.295671052631579 2.2719155844155843 2.248769230769231 2.226208860759494 2.2042125 2.1827592592592593 2.161829268292683 2.1414036144578317 2.1214642857142856 2.101994117647059 2.082976744186047 2.064396551724138 2.0462386363636367 2.028488764044944 2.0111333333333334 1.9941593406593405 1.977554347826087 1.9613064516129033 1.9454042553191488 1.9298368421052632 1.91459375 1.8996649484536081 1.8850408163265304 1.8707121212121212 1.8566700000000003 1.8429059405940595 1.8294117647058825 1.8161796116504858 1.8032019230769234 1.7904714285714287 1.777981132075472 1.7657242990654207 1.7536944444444444 1.7418853211009178 1.7302909090909093 1.7189054054054056 1.7077232142857144 1.6967389380530973 1.6859473684210526 1.6753434782608694 1.6649224137931034 1.6546794871794874 1.6446101694915256 1.6347100840336135 1.624975 1.6154008264462811 1.6059836065573772 1.596719512195122 1.5876048387096775 1.5786360000000002 1.5698095238095238 1.5611220472440945 1.5525703125 1.5441511627906976 1.5358615384615384 1.5276984732824426 1.5196590909090908 1.5117406015037593 1.5039402985074628 1.4962555555555557 1.4886838235294118 1.4812226277372265 1.4738695652173914 1.4666223021582734 1.4594785714285716 1.4524361702127662 1.445492957746479 1.438646853146853 1.4318958333333334
3 26 3.049527777777778 3.0025636363636363 2.957276785714286 2.9135789473684213 2.8713879310344828 2.830627118644068 2.7912250000000003 2.7531147540983607 2.7162338709677423 2.6805238095238098 2.6459296875000002 2.6124 2.579886363636364 2.5483432835820894 2.517727941176471 2.4880000000000004 2.4591214285714287 2.4310563380281693 2.4037708333333336 2.3772328767123287 2.351412162162162 2.32628 2.301809210526316 2.277974025974026 2.25475 2.232113924050633 2.21004375 2.188518518518519 2.167518292682927 2.1470240963855423 2.127017857142857 2.107482352941177 2.0884011627906975 2.0697586206896554 2.051539772727273 2.033730337078652 2.0163166666666665 1.9992857142857146 1.982625 1.9663225806451612 1.950367021276596 1.9347473684210525 1.919453125 1.9044742268041237 1.8898010204081632 1.8754242424242427 1.8613350000000004 1.8475247524752476 1.8339852941176473 1.8207087378640778 1.8076875000000001 1.794914285714286 1.7823820754716981 1.770084112149533 1.758013888888889 1.746165137614679 1.7345318181818183 1.723108108108108 1.711888392857143 1.700867256637168 1.6900394736842106 1.6793999999999998 1.6689439655172416 1.658666666666667 1.6485635593220342 1.6386302521008407 1.6288625000000003 1.6192561983471074 1.6098073770491805 1.6005121951219514 1.591366935483871 1.5823680000000002 1.5735119047619048 1.5647952755905512 1.55621484375 1.547767441860465 1.53945 1.5312595419847328 1.5231931818181819 1.515248120300752 1.507421641791045 1.4997111111111114 1.4921139705882354 1.4846277372262775 1.4772500000000002 1.4699784172661872 1.4628107142857143 1.455744680851064 1.4487781690140846 1.441909090909091
4 27 3.107066037735849 3.0581666666666667 3.011045454545455 2.965607142857143 2.9217631578947367 2.8794310344827587 2.838533898305085 2.7990000000000004 2.7607622950819675 2.723758064516129 2.6879285714285714 2.65321875 2.6195769230769232 2.5869545454545455 2.555305970149254 2.5245882352941176 2.4947608695652175 2.4657857142857145 2.43762676056338 2.4102500000000004 2.383623287671233 2.3577162162162164 2.3325 2.3079473684210527 2.2840324675324677 2.2607307692307694 2.238018987341772 2.215875 2.1942777777777778 2.173207317073171 2.152644578313253 2.1325714285714286 2.112970588235294 2.093825581395349 2.0751206896551726 2.056840909090909 2.03897191011236 2.0215 2.004412087912088 1.987695652173913 1.9713387096774193 1.9553297872340425 1.939657894736842 1.9243124999999999 1.909283505154639 1.8945612244897962 1.880136363636364 1.866 1.852143564356436 1.8385588235294117 1.82523786407767 1.812173076923077 1.7993571428571429 1.7867830188679248 1.774443925233645 1.7623333333333333 1.7504449541284404 1.7387727272727274 1.727310810810811 1.7160535714285714 1.704995575221239 1.6941315789473683 1.6834565217391306 1.6729655172413795 1.6626538461538465 1.6525169491525424 1.6425504201680674 1.6327500000000001 1.623111570247934 1.6136311475409837 1.6043048780487805 1.5951290322580647 1.5861 1.5772142857142857 1.5684685039370079 1.559859375 1.5513837209302326 1.5430384615384616 1.5348206106870228 1.5267272727272727 1.5187556390977446 1.510902985074627 1.503166666666667 1.495544117647059 1.4880328467153285 1.480630434782609 1.4733345323741007 1.4661428571428572 1.4590531914893619 1.4520633802816902
5 28 3.166817307692308 3.1158679245283016 3.066805555555556 3.019527272727273 2.9739375 2.929947368421053 2.8874741379310347 2.846440677966102 2.806775 2.7684098360655742 2.731282258064516 2.6953333333333336 2.6605078125 2.6267538461538464 2.5940227272727276 2.562268656716418 2.5314485294117652 2.501521739130435 2.4724500000000003 2.444197183098592 2.416729166666667 2.390013698630137 2.36402027027027 2.3387200000000004 2.3140855263157896 2.2900909090909094 2.2667115384615384 2.2439240506329114 2.22170625 2.200037037037037 2.178896341463415 2.158265060240964 2.138125 2.118458823529412 2.09925 2.0804827586206898 2.0621420454545456 2.0442134831460677 2.0266833333333336 2.0095384615384617 1.992766304347826 1.9763548387096774 1.9602925531914894 1.9445684210526317 1.9291718750000002 1.9140927835051547 1.8993214285714286 1.8848484848484852 1.8706650000000002 1.856762376237624 1.8431323529411765 1.8297669902912623 1.816658653846154 1.8038 1.7911839622641512 1.778803738317757 1.7666527777777778 1.754724770642202 1.7430136363636364 1.7315135135135136 1.72021875 1.7091238938053097 1.6982236842105265 1.687513043478261 1.6769870689655175 1.6666410256410258 1.656470338983051 1.6464705882352944 1.6366375000000002 1.6269669421487603 1.617454918032787 1.6080975609756099 1.598891129032258 1.5898320000000001 1.5809166666666667 1.5721417322834648 1.56350390625 1.555 1.5466269230769232 1.538381679389313 1.530261363636364 1.522263157894737 1.5143843283582092 1.5066222222222223 1.4989742647058826 1.4914379562043798 1.4840108695652174 1.4766906474820145 1.469475 1.4623617021276596
6 29 3.2289117647058823 3.1757884615384615 3.124669811320755 3.075444444444445 3.028009090909091 2.9822678571428574 2.9381315789473685 2.8955172413793107 2.854347457627119 2.81455 2.77605737704918 2.738806451612903 2.7027380952380953 2.667796875 2.6339307692307696 2.6010909090909093 2.5692313432835823 2.538308823529412 2.5082826086956524 2.4791142857142856 2.4507676056338026 2.4232083333333336 2.3964041095890414 2.370324324324325 2.3449400000000002 2.3202236842105264 2.2961493506493507 2.272692307692308 2.2498291139240507 2.2275375000000004 2.2057962962962963 2.1845853658536587 2.163885542168675 2.1436785714285715 2.1239470588235294 2.104674418604651 2.085844827586207 2.0674431818181818 2.0494550561797755 2.0318666666666667 2.0146648351648353 1.997836956521739 1.9813709677419356 1.9652553191489361 1.949478947368421 1.9340312500000003 1.9189020618556702 1.9040816326530614 1.889560606060606 1.8753300000000002 1.861381188118812 1.8477058823529413 1.8342961165048546 1.8211442307692307 1.8082428571428573 1.7955849056603774 1.783163551401869 1.7709722222222224 1.7590045871559634 1.7472545454545454 1.735716216216216 1.7243839285714286 1.7132522123893807 1.7023157894736842 1.6915695652173914 1.6810086206896555 1.6706282051282053 1.6604237288135593 1.6503907563025213 1.6405250000000002 1.6308223140495868 1.6212786885245902 1.611890243902439 1.6026532258064516 1.5935640000000002 1.5846190476190478 1.5758149606299214 1.5671484375 1.5586162790697675 1.5502153846153846 1.541942748091603 1.5337954545454549 1.5257706766917296 1.517865671641791 1.5100777777777779 1.5024044117647062 1.4948430656934308 1.4873913043478262 1.4800467625899283 1.472807142857143
7 30 3.2934900000000003 3.2380588235294114 3.1847596153846154 3.133471698113208 3.084083333333333 3.0364909090909094 2.9905982142857144 2.9463157894736844 2.903560344827586 2.862254237288136 2.822325 2.783704918032787 2.7463306451612906 2.7101428571428574 2.6750859375000005 2.6411076923076924 2.608159090909091 2.5761940298507464 2.5451691176470588 2.5150434782608695 2.4857785714285714 2.4573380281690143 2.4296875 2.4027945205479453 2.3766283783783786 2.35116 2.326361842105263 2.3022077922077924 2.278673076923077 2.25573417721519 2.23336875 2.211555555555556 2.1902743902439026 2.1695060240963855 2.149232142857143 2.129435294117647 2.1100988372093026 2.091206896551724 2.0727443181818184 2.054696629213483 2.03705 2.019791208791209 2.002907608695652 1.9863870967741935 1.9702180851063829 1.9543894736842107 1.9388906250000004 1.9237113402061858 1.908841836734694 1.8942727272727273 1.879995 1.866 1.8522794117647061 1.8388252427184466 1.8256298076923079 1.8126857142857145 1.799985849056604 1.7875233644859816 1.7752916666666667 1.7632844036697248 1.7514954545454544 1.739918918918919 1.7285491071428574 1.7173805309734516 1.7064078947368424 1.695626086956522 1.6850301724137933 1.6746153846153846 1.664377118644068 1.654310924369748 1.6444125 1.6346776859504133 1.6251024590163936 1.6156829268292685 1.6064153225806452 1.597296 1.5883214285714284 1.5794881889763779 1.57079296875 1.5622325581395349 1.5538038461538464 1.5455038167938933 1.5373295454545457 1.529278195488722 1.5213470149253734 1.5135333333333334 1.5058345588235296 1.4982481751824819 1.4907717391304347 1.4834028776978418
8 31 3.360704081632653 3.30282 3.247205882352941 3.1937307692307693 3.14227358490566 3.0927222222222226 3.0449727272727274 2.998928571428572 2.9545 2.911603448275862 2.8701610169491527 2.8301 2.7913524590163936 2.7538548387096773 2.7175476190476195 2.6823750000000004 2.6482846153846156 2.6152272727272727 2.5831567164179106 2.552029411764706 2.521804347826087 2.492442857142857 2.4639084507042255 2.436166666666667 2.4091849315068496 2.3829324324324324 2.35738 2.3325 2.3082662337662336 2.284653846153846 2.2616392405063293 2.2392000000000003 2.2173148148148147 2.1959634146341465 2.1751265060240965 2.1547857142857145 2.1349235294117648 2.1155232558139536 2.0965689655172417 2.0780454545454545 2.059938202247191 2.0422333333333333 2.0249175824175825 2.007978260869565 1.9914032258064516 1.97518085106383 1.9593000000000003 1.94375 1.9285206185567012 1.9136020408163268 1.8989848484848486 1.8846600000000002 1.8706188118811884 1.8568529411764707 1.8433543689320389 1.8301153846153846 1.8171285714285714 1.8043867924528303 1.7918831775700936 1.779611111111111 1.7675642201834862 1.7557363636363637 1.7441216216216218 1.732714285714286 1.7215088495575224 1.7105000000000001 1.6996826086956522 1.689051724137931 1.6786025641025644 1.6683305084745765 1.658231092436975 1.6483 1.6385330578512396 1.6289262295081968 1.6194756097560976 1.6101774193548386 1.6010280000000001 1.5920238095238095 1.5831614173228346 1.5744375 1.5658488372093025 1.557392307692308 1.5490648854961835 1.5408636363636363 1.5327857142857144 1.5248283582089552 1.516988888888889 1.509264705882353 1.501653284671533 1.4941521739130437
9 32 3.43071875 3.3702244897959184 3.31215 3.2563529411764707 3.202701923076923 3.1510754716981135 3.1013611111111112 3.0534545454545454 3.007258928571429 2.962684210526316 2.919646551724138 2.8780677966101695 2.837875 2.799 2.761379032258065 2.7249523809523812 2.6896640625000003 2.6554615384615383 2.622295454545455 2.590119402985075 2.558889705882353 2.5285652173913045 2.499107142857143 2.470478873239437 2.4426458333333336 2.4155753424657536 2.3892364864864866 2.3636 2.338638157894737 2.3143246753246753 2.290634615384615 2.2675443037974685 2.2450312500000003 2.2230740740740744 2.2016524390243903 2.180746987951807 2.1603392857142856 2.1404117647058825 2.1209476744186047 2.1019310344827584 2.083346590909091 2.065179775280899 2.047416666666667 2.030043956043956 2.013048913043478 1.99641935483871 1.980143617021277 1.9642105263157896 1.9486093750000002 1.9333298969072166 1.9183622448979594 1.9036969696969699 1.8893250000000001 1.8752376237623762 1.8614264705882353 1.847883495145631 1.8346009615384615 1.8215714285714286 1.8087877358490565 1.7962429906542057 1.7839305555555556 1.7718440366972477 1.759977272727273 1.7483243243243245 1.7368794642857144 1.725637168141593 1.714592105263158 1.7037391304347826 1.6930732758620692 1.6825897435897437 1.6722838983050847 1.662151260504202 1.6521875000000001 1.6423884297520661 1.63275 1.6232682926829267 1.6139395161290322 1.6047599999999997 1.5957261904761904 1.5868346456692914 1.5780820312500001 1.56946511627907 1.5609807692307696 1.5526259541984735 1.5443977272727274 1.536293233082707 1.5283097014925375 1.5204444444444447 1.5126948529411766 1.5050583941605842
10 33 3.503712765957447 3.4404375000000003 3.379744897959184 3.32148 3.2655 3.211673076923077 3.159877358490566 3.1100000000000003 3.061936363636364 3.0155892857142863 2.9708684210526317 2.927689655172414 2.8859745762711864 2.84565 2.806647540983607 2.7689032258064517 2.7323571428571434 2.6969531250000003 2.662638461538462 2.6293636363636366 2.597082089552239 2.5657500000000004 2.5353260869565215 2.5057714285714288 2.477049295774648 2.449125 2.421965753424658 2.3955405405405408 2.36982 2.3447763157894737 2.320383116883117 2.296615384615385 2.273449367088608 2.2508625 2.2288333333333337 2.207341463414634 2.186367469879518 2.165892857142857 2.1459 2.1263720930232557 2.107293103448276 2.0886477272727273 2.070421348314607 2.0526 2.0351703296703296 2.0181195652173916 2.001435483870968 1.9851063829787237 1.969121052631579 1.9534687500000003 1.9381391752577322 1.923122448979592 1.908409090909091 1.89399 1.8798564356435645 1.866 1.8524126213592234 1.8390865384615385 1.8260142857142858 1.813188679245283 1.8006028037383177 1.7882500000000001 1.7761238532110095 1.764218181818182 1.7525270270270272 1.741044642857143 1.7297654867256638 1.7186842105263158 1.7077956521739133 1.697094827586207 1.6865769230769232 1.6762372881355934 1.6660714285714286 1.656075 1.6462438016528924 1.6365737704918033 1.6270609756097563 1.6177016129032258 1.608492 1.5994285714285714 1.5905078740157481 1.5817265625 1.5730813953488374 1.564569230769231 1.5561870229007635 1.5479318181818182 1.5398007518796994 1.5317910447761194 1.5239 1.5161250000000002
11 34 3.579880434782609 3.5136382978723404 3.45015625 3.389265306122449 3.3308099999999996 3.27464705882353 3.2206442307692313 3.1686792452830193 3.118638888888889 3.070418181818182 3.023919642857143 2.9790526315789476 2.93573275862069 2.8938813559322036 2.8534250000000005 2.8142950819672135 2.776427419354839 2.739761904761905 2.7042421875000002 2.6698153846153847 2.6364318181818183 2.604044776119403 2.572610294117647 2.5420869565217394 2.5124357142857145 2.483619718309859 2.455604166666667 2.428356164383562 2.4018445945945945 2.37604 2.3509144736842105 2.3264415584415588 2.302596153846154 2.279354430379747 2.25669375 2.234592592592593 2.213030487804878 2.191987951807229 2.1714464285714286 2.151388235294118 2.131796511627907 2.112655172413793 2.0939488636363635 2.0756629213483144 2.057783333333333 2.0402967032967037 2.0231902173913046 2.006451612903226 1.9900691489361706 1.9740315789473686 1.958328125 1.9429484536082477 1.9278826530612245 1.9131212121212122 1.8986550000000002 1.8844752475247526 1.870573529411765 1.8569417475728156 1.8435721153846154 1.830457142857143 1.8175896226415094 1.80496261682243 1.7925694444444447 1.780403669724771 1.7684590909090911 1.75672972972973 1.7452098214285716 1.7338938053097348 1.7227763157894738 1.7118521739130437 1.7011163793103448 1.6905641025641027 1.680190677966102 1.6699915966386556 1.6599625 1.650099173553719 1.6403975409836067 1.6308536585365854 1.6214637096774194 1.6122239999999999 1.6031309523809525 1.5941811023622048 1.58537109375 1.5766976744186048 1.5681576923076923 1.5597480916030535 1.551465909090909 1.5433082706766919 1.5352723880597015 1.5273555555555556
12 35 3.6594333333333333 3.5900217391304348 3.5235638297872343 3.459875 3.3987857142857143 3.3401400000000003 3.2837941176470595 3.2296153846153848 3.1774811320754717 3.127277777777778 3.0789 3.03225 2.987236842105263 2.9437758620689656 2.9017881355932205 2.8612 2.8219426229508198 2.783951612903226 2.7471666666666668 2.71153125 2.676992307692308 2.6435 2.611007462686567 2.5794705882352944 2.5488478260869565 2.5191000000000003 2.4901901408450704 2.462083333333333 2.4347465753424657 2.4081486486486487 2.38226 2.3570526315789477 2.3325000000000005 2.3085769230769233 2.2852594936708863 2.262525 2.2403518518518517 2.218719512195122 2.1976084337349397 2.177 2.1568764705882355 2.137220930232558 2.1180172413793104 2.09925 2.0809044943820223 2.062966666666667 2.0454230769230772 2.0282608695652176 2.0114677419354843 1.995031914893617 1.978942105263158 1.9631875 1.947757731958763 1.932642857142857 1.9178333333333333 1.9033200000000001 1.8890940594059407 1.8751470588235297 1.8614708737864079 1.8480576923076923 1.8349000000000002 1.8219905660377358 1.8093224299065422 1.7968888888888892 1.7846834862385323 1.7727000000000002 1.7609324324324325 1.7493750000000001 1.7380221238938054 1.7268684210526317 1.7159086956521739 1.705137931034483 1.6945512820512822 1.6841440677966102 1.6739117647058823 1.66385 1.6539545454545457 1.6442213114754098 1.6346463414634147 1.625225806451613 1.6159560000000002 1.6068333333333336 1.5978543307086617 1.589015625 1.5803139534883721 1.5717461538461541 1.5633091603053437 1.5550000000000002 1.5468157894736843 1.5387537313432835
13 36 3.742602272727273 3.6698000000000004 3.600163043478261 3.533489361702128 3.46959375 3.40830612244898 3.34947 3.2929411764705883 3.2385865384615387 3.1862830188679245 3.1359166666666667 3.0873818181818184 3.0405803571428573 2.995421052631579 2.9518189655172415 2.9096949152542377 2.8689750000000003 2.8295901639344265 2.791475806451613 2.754571428571429 2.7188203125 2.6841692307692306 2.6505681818181817 2.6179701492537317 2.5863308823529416 2.5556086956521744 2.5257642857142857 2.496760563380282 2.4685625 2.4411369863013697 2.414452702702703 2.3884800000000004 2.3631907894736845 2.3385584415584417 2.3145576923076923 2.2911645569620256 2.26835625 2.2461111111111114 2.224408536585366 2.2032289156626508 2.1825535714285715 2.1623647058823527 2.1426453488372093 2.1233793103448275 2.104551136363636 2.0861460674157306 2.06815 2.050549450549451 2.0333315217391306 2.016483870967742 1.999994680851064 1.9838526315789475 1.9680468750000002 1.9525670103092785 1.93740306122449 1.9225454545454546 1.907985 1.893712871287129 1.879720588235294 1.866 1.852543269230769 1.839342857142857 1.8263915094339624 1.8136822429906543 1.8012083333333335 1.7889633027522938 1.7769409090909094 1.7651351351351354 1.7535401785714289 1.7421504424778762 1.7309605263157897 1.7199652173913043 1.7091594827586207 1.6985384615384616 1.6880974576271188 1.6778319327731093 1.6677374999999999 1.6578099173553718 1.6480450819672132 1.6384390243902438 1.6289879032258066 1.619688 1.6105357142857144 1.6015275590551183 1.59266015625 1.58393023255814 1.5753346153846155 1.5668702290076335 1.558534090909091 1.5503233082706769
14 37 3.829639534883721 3.7532045454545457 3.680166666666667 3.6103043478260872 3.543414893617021 3.4793125000000003 3.417826530612245 3.3588000000000005 3.302088235294118 3.2475576923076925 3.1950849056603774 3.1445555555555558 3.0958636363636365 3.0489107142857144 3.003605263157895 2.959862068965517 2.9176016949152546 2.8767500000000004 2.837237704918033 2.799 2.7619761904761906 2.726109375 2.691346153846154 2.657636363636364 2.624932835820896 2.5931911764705884 2.5623695652173915 2.5324285714285715 2.5033309859154933 2.475041666666667 2.447527397260274 2.4207567567567567 2.3947000000000003 2.3693289473684214 2.3446168831168834 2.3205384615384617 2.297069620253165 2.2741875 2.25187037037037 2.2300975609756097 2.2088493975903614 2.1881071428571426 2.167852941176471 2.1480697674418603 2.1287413793103447 2.109852272727273 2.0913876404494385 2.0733333333333337 2.0556758241758244 2.0384021739130436 2.0215 2.0049574468085107 1.988763157894737 1.97290625 1.9573762886597939 1.9421632653061227 1.9272575757575758 1.9126500000000002 1.8983316831683168 1.8842941176470587 1.8705291262135924 1.8570288461538462 1.8437857142857146 1.830792452830189 1.8180420560747665 1.8055277777777778 1.7932431192660552 1.7811818181818184 1.769337837837838 1.7577053571428571 1.746278761061947 1.7350526315789474 1.7240217391304349 1.7131810344827587 1.702525641025641 1.692050847457627 1.6817521008403362 1.671625 1.6616652892561983 1.6518688524590164 1.6422317073170736 1.6327500000000001 1.62342 1.6142380952380955 1.6052007874015748 1.5963046875000002 1.5875465116279073 1.5789230769230769 1.5704312977099237 1.5620681818181819
15 38 3.920821428571429 3.8404883720930236 3.7638068181818185 3.690533333333333 3.6204456521739132 3.5533404255319154 3.4890312500000005 3.42734693877551 3.3681300000000003 3.311235294117647 3.2565288461538464 3.2038867924528303 3.153194444444445 3.1043454545454545 3.057241071428572 3.0117894736842103 2.9679051724137935 2.9255084745762714 2.884525 2.8448852459016396 2.806524193548387 2.7693809523809523 2.7333984375 2.698523076923077 2.6647045454545455 2.63189552238806 2.6000514705882356 2.569130434782609 2.5390928571428573 2.509901408450704 2.481520833333333 2.4539178082191784 2.427060810810811 2.40092 2.375467105263158 2.3506753246753247 2.3265192307692306 2.3029746835443037 2.28001875 2.25762962962963 2.2357865853658536 2.2144698795180724 2.1936607142857145 2.173341176470588 2.1534941860465118 2.1341034482758623 2.1151534090909094 2.0966292134831463 2.078516666666667 2.060802197802198 2.0434728260869566 2.026516129032258 2.0099202127659574 1.9936736842105263 1.977765625 1.9621855670103092 1.9469234693877553 1.9319696969696971 1.917315 1.9029504950495049 1.8888676470588233 1.8750582524271846 1.8615144230769234 1.8482285714285718 1.8351933962264153 1.8224018691588788 1.8098472222222224 1.7975229357798166 1.7854227272727274 1.7735405405405404 1.7618705357142859 1.7504070796460178 1.7391447368421054 1.7280782608695653 1.7172025862068965 1.7065128205128206 1.6960042372881357 1.685672268907563 1.6755125 1.6655206611570246 1.65569262295082 1.6460243902439027 1.6365120967741937 1.6271520000000002 1.6179404761904763 1.6088740157480317 1.5999492187500002 1.5911627906976746 1.5825115384615385 1.5739923664122137
16 39 4.016451219512195 3.9319285714285717 3.8513372093023257 3.774409090909091 3.7009 3.6305869565217392 3.563265957446809 3.4987500000000002 3.4368673469387754 3.37746 3.3203823529411767 3.2655 3.212688679245283 3.1618333333333335 3.112827272727273 3.065571428571429 3.0199736842105267 2.975948275862069 2.933415254237288 2.8923 2.852532786885246 2.8140483870967743 2.7767857142857144 2.7406875000000004 2.7057 2.671772727272727 2.638858208955224 2.606911764705883 2.5758913043478264 2.545757142857143 2.5164718309859158 2.4880000000000004 2.4603082191780823 2.433364864864865 2.40714 2.381605263157895 2.3567337662337664 2.3325 2.308879746835443 2.28585 2.2633888888888887 2.2414756097560975 2.220090361445783 2.1992142857142856 2.178829411764706 2.158918604651163 2.1394655172413795 2.120454545454546 2.101870786516854 2.0837000000000003 2.0659285714285716 2.0485434782608696 2.0315322580645163 2.0148829787234046 1.9985842105263159 1.982625 1.9669948453608248 1.9516836734693879 1.9366818181818182 1.92198 1.907569306930693 1.893441176470588 1.8795873786407769 1.8660000000000003 1.852671428571429 1.8395943396226415 1.8267616822429908 1.814166666666667 1.801802752293578 1.7896636363636365 1.7777432432432434 1.7660357142857144 1.7545353982300886 1.743236842105263 1.7321347826086957 1.7212241379310345 1.7105000000000001 1.699957627118644 1.68959243697479 1.6793999999999998 1.6693760330578513 1.6595163934426234 1.6498170731707318 1.6402741935483873 1.630884 1.6216428571428574 1.6125472440944884 1.6035937500000002 1.594779069767442 1.5861
17 40 4.1168625 4.027829268292683 3.943035714285714 3.862186046511628 3.7850113636363636 3.711266666666667 3.6407282608695652 3.5731914893617027 3.5084687500000005 3.446387755102041 3.38679 3.329529411764706 3.274471153846154 3.221490566037736 3.170472222222222 3.121309090909091 3.073901785714286 3.028157894736842 2.983991379310345 2.941322033898305 2.900075 2.8601803278688527 2.8215725806451615 2.7841904761904765 2.7479765625000003 2.712876923076923 2.6788409090909093 2.6458208955223883 2.6137720588235296 2.5826521739130435 2.552421428571429 2.523042253521127 2.494479166666667 2.4666986301369866 2.439668918918919 2.41336 2.387743421052632 2.362792207792208 2.3384807692307694 2.314784810126582 2.29168125 2.2691481481481484 2.2471646341463414 2.225710843373494 2.204767857142857 2.1843176470588235 2.1643430232558143 2.1448275862068966 2.125755681818182 2.1071123595505616 2.0888833333333334 2.071054945054945 2.0536141304347826 2.036548387096774 2.0198457446808513 2.0034947368421054 1.9874843750000002 1.9718041237113404 1.9564438775510204 1.9413939393939394 1.926645 1.9121881188118812 1.898014705882353 1.884116504854369 1.8704855769230773 1.857114285714286 1.8439952830188682 1.8311214953271029 1.8184861111111115 1.8060825688073396 1.7939045454545455 1.781945945945946 1.7702008928571429 1.7586637168141595 1.747328947368421 1.7361913043478263 1.7252456896551724 1.7144871794871794 1.7039110169491525 1.6935126050420168 1.6832875000000003 1.6732314049586778 1.6633401639344263 1.6536097560975611 1.6440362903225807 1.634616 1.6253452380952382 1.6162204724409448 1.6072382812500001 1.5983953488372094
18 41 4.222423076923077 4.128525 4.039207317073171 3.954142857142857 3.8730348837209303 3.795613636363637 3.7216333333333336 3.6508695652173917 3.5831170212765957 3.5181875000000002 3.455908163265306 3.3961200000000002 3.3386764705882355 3.283442307692308 3.230292452830189 3.179111111111111 3.129790909090909 3.0822321428571433 3.036342105263158 2.992034482758621 2.9492288135593223 2.90785 2.867827868852459 2.8290967741935487 2.7915952380952382 2.7552656250000003 2.7200538461538466 2.685909090909091 2.6527835820895524 2.6206323529411764 2.589413043478261 2.5590857142857146 2.529612676056338 2.5009583333333336 2.4730890410958906 2.445972972972973 2.41958 2.3938815789473686 2.3688506493506494 2.3444615384615384 2.3206898734177215 2.2975125 2.2749074074074076 2.2528536585365853 2.231331325301205 2.210321428571429 2.1898058823529416 2.1697674418604653 2.1501896551724142 2.1310568181818184 2.11235393258427 2.094066666666667 2.0761813186813187 2.0586847826086956 2.041564516129032 2.024808510638298 2.008405263157895 1.9923437499999999 1.9766134020618558 1.961204081632653 1.9461060606060605 1.9313099999999999 1.9168069306930695 1.9025882352941177 1.8886456310679614 1.874971153846154 1.861557142857143 1.8483962264150944 1.835481308411215 1.8228055555555556 1.8103623853211008 1.7981454545454547 1.7861486486486489 1.7743660714285716 1.76279203539823 1.751421052631579 1.7402478260869567 1.7292672413793104 1.7184743589743592 1.707864406779661 1.6974327731092438 1.6871750000000003 1.6770867768595044 1.6671639344262297 1.6574024390243904 1.6477983870967745 1.6383480000000001 1.6290476190476193 1.6198937007874017 1.6108828125
19 42 4.333539473684211 4.234384615384616 4.1401875 4.050585365853658 3.9652499999999997 3.883883720930233 3.8062159090909096 3.732 3.6610108695652173 3.5930425531914896 3.52790625 3.4654285714285713 3.40545 3.347823529411765 3.292413461538462 3.2390943396226417 3.1877500000000003 3.1382727272727275 3.0905625 3.044526315789474 3.0000775862068965 2.9571355932203387 2.915625 2.8754754098360658 2.836620967741936 2.7990000000000004 2.7625546875 2.7272307692307693 2.6929772727272727 2.6597462686567166 2.6274926470588236 2.5961739130434784 2.56575 2.5361830985915494 2.5074375 2.479479452054795 2.4522770270270273 2.4258 2.4000197368421055 2.3749090909090906 2.3504423076923078 2.3265949367088608 2.30334375 2.2806666666666664 2.258542682926829 2.236951807228916 2.2158750000000005 2.1952941176470593 2.1751918604651164 2.155551724137931 2.1363579545454545 2.117595505617978 2.09925 2.0813076923076927 2.063755434782609 2.0465806451612902 2.0297712765957447 2.013315789473684 1.997203125 1.9814226804123711 1.9659642857142856 1.9508181818181818 1.9359750000000002 1.9214257425742576 1.9071617647058825 1.8931747572815536 1.8794567307692311 1.866 1.8527971698113208 1.8398411214953272 1.827125 1.8146422018348625 1.8023863636363637 1.7903513513513514 1.77853125 1.7669203539823009 1.755513157894737 1.744304347826087 1.7332887931034482 1.7224615384615385 1.7118177966101698 1.7013529411764707 1.6910625000000001 1.6809421487603307 1.670987704918033 1.6611951219512198 1.651560483870968 1.64208 1.63275 1.6235669291338584
20 43 4.450662162162162 4.345815789473685 4.246346153846154 4.1518500000000005 4.061963414634146 3.976357142857143 3.8947325581395353 3.816818181818182 3.742366666666667 3.6711521739130437 3.602968085106383 3.5376250000000002 3.474948979591837 3.41478 3.3569705882352943 3.301384615384616 3.2478962264150946 3.196388888888889 3.1467545454545456 3.0988928571428573 3.0527105263157894 3.0081206896551724 2.965042372881356 2.9234000000000004 2.8831229508196725 2.844145161290323 2.806404761904762 2.76984375 2.7344076923076925 2.7000454545454544 2.6667089552238807 2.634352941176471 2.602934782608696 2.572414285714286 2.5427535211267607 2.513916666666667 2.485869863013699 2.458581081081081 2.43202 2.4061578947368423 2.3809675324675323 2.356423076923077 2.3325 2.3091749999999998 2.286425925925926 2.2642317073170735 2.2425722891566267 2.2214285714285715 2.2007823529411765 2.180616279069768 2.1609137931034486 2.141659090909091 2.1228370786516857 2.104433333333333 2.086434065934066 2.0688260869565216 2.0515967741935484 2.0347340425531915 2.018226315789474 2.0020625 1.9862319587628865 1.9707244897959182 1.9555303030303035 1.9406400000000001 1.9260445544554459 1.9117352941176473 1.8977038834951458 1.8839423076923079 1.8704428571428573 1.8571981132075472 1.8442009345794395 1.8314444444444447 1.818922018348624 1.8066272727272727 1.7945540540540539 1.7826964285714286 1.7710486725663719 1.7596052631578947 1.7483608695652173 1.7373103448275862 1.7264487179487182 1.7157711864406782 1.7052731092436977 1.6949500000000002 1.684797520661157 1.6748114754098364 1.6649878048780489 1.6553225806451612 1.645812 1.636452380952381
21 44 4.574291666666666 4.46327027027027 4.358092105263158 4.258307692307692 4.1635124999999995 4.073341463414634 3.987464285714286 3.905581395348838 3.8274204545454547 3.7527333333333335 3.6812934782608693 3.6128936170212764 3.5473437500000005 3.484469387755102 3.42411 3.3661176470588234 3.3103557692307692 3.2566981132075474 3.2050277777777776 3.1552363636363636 3.1072232142857144 3.0608947368421053 3.0161637931034484 2.9729491525423732 2.931175 2.890770491803279 2.8516693548387098 2.8138095238095238 2.7771328125 2.7415846153846153 2.7071136363636366 2.673671641791045 2.641213235294118 2.6096956521739134 2.5790785714285716 2.549323943661972 2.5203958333333336 2.4922602739726027 2.4648851351351353 2.43824 2.412296052631579 2.387025974025974 2.362403846153846 2.3384050632911393 2.3150062499999997 2.2921851851851853 2.2699207317073173 2.2481927710843377 2.2269821428571435 2.206270588235294 2.186040697674419 2.1662758620689657 2.1469602272727273 2.128078651685393 2.1096166666666667 2.09156043956044 2.0738967391304346 2.0566129032258065 2.039696808510638 2.023136842105263 2.0069218749999997 1.9910412371134023 1.9754846938775512 1.9602424242424243 1.9453050000000003 1.930663366336634 1.916308823529412 1.902233009708738 1.8884278846153848 1.8748857142857145 1.8615990566037737 1.8485607476635515 1.8357638888888892 1.8232018348623853 1.810868181818182 1.7987567567567568 1.7868616071428571 1.7751769911504425 1.7636973684210528 1.752417391304348 1.7413318965517244 1.7304358974358975 1.7197245762711866 1.7091932773109244 1.6988375000000002 1.6886528925619837 1.6786352459016394 1.6687804878048782 1.6590846774193548 1.6495440000000001
22 45 4.704985714285715 4.58725 4.475878378378379 4.370368421052632 4.27026923076923 4.175175 4.0847195121951225 3.998571428571429 3.9164302325581395 3.838022727272728 3.7630999999999997 3.6914347826086957 3.6228191489361707 3.5570625 3.4939897959183677 3.43344 3.375264705882353 3.3193269230769236 3.2655 3.2136666666666667 3.1637181818181817 3.1155535714285714 3.0690789473684212 3.0242068965517244 2.98085593220339 2.93895 2.8984180327868856 2.859193548387097 2.8212142857142855 2.784421875 2.7487615384615385 2.7141818181818187 2.680634328358209 2.648073529411765 2.6164565217391305 2.5857428571428573 2.555894366197183 2.526875 2.498650684931507 2.471189189189189 2.4444600000000003 2.418434210526316 2.3930844155844158 2.3683846153846155 2.344310126582278 2.3208375000000006 2.297944444444445 2.275609756097561 2.2538132530120483 2.2325357142857145 2.211758823529412 2.19146511627907 2.171637931034483 2.152261363636364 2.1333202247191014 2.1148000000000002 2.096686813186813 2.078967391304348 2.0616290322580646 2.044659574468085 2.0280473684210527 2.0117812500000003 1.995850515463918 1.9802448979591838 1.9649545454545456 1.9499700000000002 1.935282178217822 1.9208823529411765 1.9067621359223303 1.8929134615384617 1.8793285714285717 1.866 1.8529205607476635 1.8400833333333335 1.827481651376147 1.815109090909091 1.8029594594594593 1.7910267857142856 1.7793053097345133 1.7677894736842106 1.7564739130434783 1.7453534482758624 1.7344230769230773 1.7236779661016952 1.7131134453781514 1.7027250000000003 1.69250826446281 1.6824590163934428 1.6725731707317073 1.6628467741935484
23 46 4.843367647058823 4.7183142857142855 4.600208333333334 4.488486486486487 4.3826447368421055 4.282230769230769 4.1868375 4.09609756097561 4.009678571428571 3.927279069767442 3.848625 3.7734666666666667 3.701576086956522 3.632744680851064 3.56678125 3.503510204081633 3.4427700000000003 3.3844117647058827 3.328298076923077 3.274301886792453 3.2223055555555558 3.1722 3.123883928571429 3.077263157894737 3.0322500000000003 2.988762711864407 2.9467250000000003 2.906065573770492 2.866717741935484 2.8286190476190476 2.7917109375 2.7559384615384617 2.7212500000000004 2.687597014925373 2.654933823529412 2.623217391304348 2.5924071428571427 2.5624647887323944 2.533354166666667 2.505041095890411 2.4774932432432433 2.45068 2.4245723684210527 2.399142857142857 2.3743653846153845 2.350215189873418 2.32666875 2.303703703703704 2.281298780487805 2.2594337349397593 2.238089285714286 2.2172470588235296 2.196889534883721 2.177 2.1575625 2.138561797752809 2.1199833333333333 2.1018131868131866 2.0840380434782606 2.0666451612903227 2.049622340425532 2.032957894736842 2.016640625 2.000659793814433 1.9850051020408164 1.969666666666667 1.9546350000000001 1.93990099009901 1.9254558823529413 1.9112912621359226 1.8973990384615385 1.8837714285714287 1.8704009433962265 1.8572803738317756 1.8444027777777778 1.8317614678899083 1.81935 1.8071621621621623 1.7951919642857144 1.7834336283185839 1.7718815789473688 1.7605304347826087 1.7493750000000003 1.7384102564102566 1.7276313559322034 1.7170336134453783 1.7066125 1.6963636363636363 1.6862827868852461 1.6763658536585366
24 47 4.990136363636363 4.857088235294118 4.731642857142857 4.613166666666666 4.501094594594594 4.394921052631579 4.294192307692308 4.1985 4.107475609756098 4.020785714285714 3.9381279069767445 3.859227272727273 3.783833333333334 3.7117173913043477 3.6426702127659576 3.5765000000000002 3.513030612244898 3.4521 3.393558823529412 3.337269230769231 3.283103773584906 3.2309444444444444 3.180681818181818 3.1322142857142863 3.0854473684210526 3.040293103448276 2.9966694915254237 2.9545 2.9137131147540987 2.8742419354838713 2.8360238095238097 2.7990000000000004 2.763115384615385 2.728318181818182 2.6945597014925373 2.6617941176470588 2.6299782608695654 2.599071428571429 2.5690352112676056 2.539833333333333 2.5114315068493154 2.483797297297297 2.4569 2.4307105263157895 2.4052012987012987 2.3803461538461543 2.3561202531645575 2.3325000000000005 2.3094629629629635 2.286987804878049 2.26505421686747 2.2436428571428575 2.2227352941176473 2.202313953488372 2.182362068965517 2.162863636363636 2.1438033707865167 2.125166666666667 2.1069395604395607 2.089108695652174 2.071661290322581 2.0545851063829788 2.037868421052632 2.0215000000000005 2.005469072164949 1.9897653061224492 1.9743787878787882 1.9593 1.9445198019801981 1.930029411764706 1.9158203883495148 1.9018846153846156 1.8882142857142856 1.874801886792453 1.8616401869158876 1.8487222222222224 1.8360412844036698 1.823590909090909 1.8113648648648648 1.799357142857143 1.7875619469026551 1.7759736842105265 1.7645869565217394 1.7533965517241379 1.7423974358974361 1.731584745762712 1.720953781512605 1.7105000000000001 1.700219008264463 1.6901065573770495
25 48 5.146078125000001 5.004272727272728 4.870808823529412 4.744971428571429 4.626125 4.5137027027027035 4.407197368421053 4.306153846153847 4.2101625 4.118853658536586 4.031892857142857 3.948976744186046 3.8698295454545457 3.7942 3.721858695652174 3.652595744680851 3.5862187500000005 3.522551020408163 3.46143 3.4027058823529415 3.3462403846153848 3.2919056603773584 3.2395833333333335 3.1891636363636366 3.140544642857143 3.0936315789473685 3.048336206896552 3.004576271186441 2.962275 2.921360655737705 2.881766129032258 2.8434285714285714 2.8062890625000003 2.7702923076923076 2.735386363636364 2.7015223880597015 2.668654411764706 2.6367391304347825 2.6057357142857143 2.575605633802817 2.5463125 2.5178219178082193 2.4901013513513512 2.46312 2.4368486842105264 2.4112597402597404 2.3863269230769233 2.3620253164556964 2.3383312500000004 2.3152222222222223 2.292676829268293 2.270674698795181 2.2491964285714285 2.228223529411765 2.2077383720930235 2.187724137931035 2.168164772727273 2.149044943820225 2.13035 2.1120659340659342 2.0941793478260866 2.0766774193548385 2.059547872340426 2.0427789473684212 2.026359375 2.010278350515464 1.9945255102040818 1.9790909090909092 1.9639650000000002 1.9491386138613862 1.934602941176471 1.9203495145631069 1.9063701923076923 1.8926571428571428 1.8792028301886794 1.866 1.853041666666667 1.8403211009174312 1.8278318181818183 1.8155675675675678 1.8035223214285716 1.791690265486726 1.7800657894736844 1.7686434782608698 1.757418103448276 1.7463846153846154 1.7355381355932205 1.724873949579832 1.7143875 1.7040743801652893
26 49 5.3120806451612905 5.160656250000001 5.018409090909091 4.8845294117647065 4.7583 4.639083333333334 4.526310810810811 4.419473684210526 4.318115384615385 4.221825000000001 4.130231707317074 4.043 3.959825581395349 3.880431818181818 3.804566666666667 3.732 3.6625212765957453 3.5959375 3.5320714285714288 3.4707600000000003 3.4118529411764706 3.3552115384615386 3.300707547169811 3.248222222222223 3.1976454545454547 3.1488750000000003 3.1018157894736844 3.056379310344828 3.0124830508474574 2.9700499999999996 2.9290081967213113 2.8892903225806457 2.8508333333333336 2.8135781250000003 2.7774692307692312 2.742454545454546 2.7084850746268656 2.675514705882353 2.6435 2.6124 2.582176056338028 2.552791666666667 2.524212328767123 2.4964054054054055 2.46934 2.4429868421052636 2.417318181818182 2.3923076923076927 2.3679303797468356 2.3441625000000004 2.3209814814814815 2.2983658536585367 2.276295180722892 2.25475 2.233711764705882 2.2131627906976745 2.1930862068965515 2.1734659090909094 2.154286516853933 2.135533333333333 2.1171923076923074 2.09925 2.081693548387097 2.0645106382978726 2.0476894736842106 2.0312187500000003 2.0150876288659796 1.9992857142857146 1.9838030303030305 1.96863 1.9537574257425743 1.9391764705882355 1.924878640776699 1.910855769230769 1.8971 1.8836037735849058 1.8703598130841121 1.8573611111111112 1.8446009174311926 1.8320727272727273 1.8197702702702705 1.8076875000000001 1.7958185840707968 1.7841578947368424 1.7727 1.7614396551724139 1.750371794871795 1.7394915254237289 1.728794117647059 1.718275
27 50 5.48915 5.327129032258065 5.1752343750000005 5.032545454545454 4.89825 4.771628571428572 4.652041666666667 4.538918918918919 4.431750000000001 4.330076923076923 4.233487500000001 4.14160975609756 4.054107142857143 3.970674418604651 3.8910340909090912 3.8149333333333337 3.742141304347826 3.6724468085106388 3.60565625 3.5415918367346944 3.4800900000000006 3.4210000000000003 3.364182692307692 3.309509433962264 3.2568611111111117 3.2061272727272727 3.1572053571428573 3.1100000000000003 3.0644224137931038 3.0203898305084746 2.977825 2.9366557377049185 2.8968145161290324 2.8582380952380957 2.8208671875 2.784646153846154 2.749522727272727 2.71544776119403 2.682375 2.6502608695652174 2.619064285714286 2.5887464788732393 2.5592708333333336 2.530602739726027 2.5027094594594597 2.47556 2.4491250000000004 2.4233766233766234 2.3982884615384616 2.373835443037975 2.3499937500000003 2.3267407407407408 2.3040548780487806 2.2819156626506025 2.2603035714285715 2.2392000000000003 2.2185872093023256 2.198448275862069 2.1787670454545456 2.1595280898876403 2.1407166666666666 2.1223186813186814 2.1043206521739135 2.086709677419355 2.0694734042553193 2.0526000000000004 2.0360781250000004 2.019896907216495 2.004045918367347 1.9885151515151516 1.973295 1.9583762376237626 1.94375 1.9294077669902912 1.9153413461538462 1.9015428571428572 1.888004716981132 1.8747196261682242 1.8616805555555556 1.8488807339449542 1.8363136363636365 1.8239729729729732 1.8118526785714288 1.7999469026548673 1.7882500000000001 1.7767565217391308 1.765461206896552 1.7543589743589743 1.7434449152542375 1.7327142857142857
28 51 5.6784310344827595 5.5047 5.342177419354839 5.1898125 5.046681818181818 4.911970588235294 4.784957142857143 4.665 4.551527027027027 4.444026315789474 4.342038461538462 4.24515 4.152987804878049 4.065214285714285 3.9815232558139537 3.901636363636364 3.8253000000000004 3.752282608695652 3.682372340425532 3.6153750000000002 3.5511122448979595 3.48942 3.4301470588235294 3.373153846153847 3.3183113207547175 3.2655 3.214609090909091 3.1655357142857143 3.118184210526316 3.0724655172413797 3.028296610169492 2.9856000000000003 2.9443032786885244 2.9043387096774196 2.8656428571428574 2.82815625 2.791823076923077 2.7565909090909093 2.7224104477611943 2.689235294117647 2.657021739130435 2.6257285714285716 2.5953169014084505 2.56575 2.5369931506849315 2.509013513513514 2.48178 2.455263157894737 2.429435064935065 2.404269230769231 2.379740506329114 2.3558250000000003 2.3325 2.3097439024390245 2.2875361445783136 2.265857142857143 2.2446882352941175 2.224011627906977 2.2038103448275863 2.1840681818181817 2.164769662921348 2.1459 2.1274450549450554 2.1093913043478265 2.0917258064516133 2.074436170212766 2.05751052631579 2.0409375 2.0247061855670108 2.0088061224489797 1.9932272727272728 1.9779600000000002 1.9629950495049506 1.9483235294117647 1.9339368932038834 1.9198269230769232 1.9059857142857142 1.8924056603773587 1.8790794392523362 1.8659999999999999 1.8531605504587159 1.8405545454545458 1.8281756756756757 1.8160178571428571 1.8040752212389384 1.792342105263158 1.7808130434782612 1.7694827586206898 1.758346153846154 1.747398305084746
29 52 5.881232142857143 5.694517241379311 5.520250000000001 5.357225806451613 5.204390625 5.060818181818182 4.925691176470589 4.798285714285715 4.677958333333334 4.564135135135135 4.456302631578947 4.354 4.2568125000000006 4.164365853658537 4.076321428571429 3.9923720930232562 3.912238636363637 3.8356666666666666 3.7624239130434782 3.6922978723404256 3.62509375 3.5606326530612247 3.4987500000000002 3.439294117647059 3.3821250000000003 3.32711320754717 3.274138888888889 3.2230909090909092 3.173866071428572 3.1263684210526317 3.0805086206896553 3.0362033898305087 2.9933750000000003 2.951950819672131 2.9118629032258068 2.8730476190476195 2.8354453125 2.799 2.763659090909091 2.729373134328358 2.696095588235294 2.6637826086956524 2.632392857142857 2.6018873239436617 2.572229166666667 2.543383561643836 2.5153175675675676 2.4880000000000004 2.461401315789474 2.435493506493507 2.41025 2.3856455696202534 2.3616562500000002 2.3382592592592593 2.3154329268292684 2.293156626506024 2.2714107142857145 2.2501764705882352 2.229436046511628 2.2091724137931035 2.189369318181818 2.170011235955056 2.1510833333333337 2.1325714285714286 2.1144619565217395 2.0967419354838714 2.0793989361702128 2.062421052631579 2.045796875 2.029515463917526 2.0135663265306123 1.9979393939393941 1.982625 1.967613861386139 1.9528970588235293 1.9384660194174756 1.9243125 1.9104285714285714 1.896806603773585 1.8834392523364487 1.8703194444444446 1.8574403669724773 1.8447954545454548 1.8323783783783785 1.8201830357142859 1.8082035398230092 1.796434210526316 1.7848695652173914 1.7735043103448276 1.7623333333333333
30 53 6.099055555555556 5.897892857142858 5.710603448275862 5.5358 5.372274193548387 5.21896875 5.0749545454545455 4.939411764705882 4.811614285714286 4.690916666666666 4.576743243243244 4.468578947368421 4.365961538461539 4.2684750000000005 4.175743902439025 4.087428571428572 4.003220930232558 3.922840909090909 3.8460333333333336 3.7725652173913047 3.702223404255319 3.6348125000000002 3.57015306122449 3.5080800000000005 3.4484411764705882 3.3910961538461537 3.3359150943396227 3.2827777777777776 3.2315727272727273 3.1821964285714284 3.1345526315789476 3.0885517241379317 3.0441101694915256 3.00115 2.959598360655738 2.919387096774194 2.8804523809523808 2.842734375 2.806176923076923 2.7707272727272727 2.7363358208955226 2.702955882352941 2.6705434782608695 2.6390571428571428 2.608457746478873 2.5787083333333336 2.54977397260274 2.521621621621622 2.4942200000000003 2.467539473684211 2.4415519480519485 2.4162307692307694 2.3915506329113927 2.3674875 2.344018518518519 2.3211219512195123 2.298777108433735 2.276964285714286 2.255664705882353 2.234860465116279 2.2145344827586206 2.1946704545454545 2.1752528089887644 2.1562666666666668 2.1376978021978026 2.1195326086956525 2.1017580645161296 2.0843617021276595 2.0673315789473685 2.0506562500000003 2.0343247422680415 2.018326530612245 2.0026515151515154 1.98729 1.9722326732673268 1.957470588235294 1.942995145631068 1.9287980769230768 1.9148714285714286 1.901207547169811 1.887799065420561 1.8746388888888892 1.8617201834862387 1.8490363636363638 1.8365810810810812 1.8243482142857144 1.8123318584070798 1.8005263157894738 1.7889260869565218 1.7775258620689658
31 54 6.333634615384616 6.116333333333333 5.914553571428572 5.726689655172414 5.55135 5.3873225806451615 5.233546875 5.08909090909091 4.953132352941177 4.824942857142858 4.703875 4.589351351351351 4.480855263157895 4.377923076923077 4.2801375 4.187121951219512 4.098535714285715 4.01406976744186 3.933443181818182 3.8564000000000003 3.7827065217391302 3.7121489361702125 3.64453125 3.579673469387755 3.5174100000000004 3.457588235294118 3.400067307692308 3.344716981132076 3.2914166666666667 3.2400545454545453 3.190526785714286 3.142736842105263 3.096594827586207 3.052016949152543 3.008925 2.9672459016393447 2.9269112903225807 2.887857142857143 2.8500234375 2.813353846153846 2.7777954545454544 2.7432985074626863 2.7098161764705884 2.677304347826087 2.6457214285714286 2.615028169014085 2.5851875 2.556164383561644 2.527925675675676 2.50044 2.4736776315789477 2.44761038961039 2.422211538461539 2.397455696202532 2.37331875 2.3497777777777777 2.326810975609756 2.3043975903614458 2.2825178571428575 2.2611529411764706 2.24028488372093 2.219896551724138 2.199971590909091 2.1804943820224723 2.1614500000000003 2.142824175824176 2.1246032608695655 2.1067741935483872 2.0893244680851066 2.072242105263158 2.055515625 2.039134020618557 2.0230867346938775 2.0073636363636362 1.991955 1.9768514851485148 1.9620441176470589 1.9475242718446601 1.933283653846154 1.9193142857142858 1.905608490566038 1.892158878504673 1.8789583333333337 1.866 1.8532772727272728 1.840783783783784 1.828513392857143 1.8164601769911504 1.8046184210526317 1.7929826086956524
32 55 6.5869800000000005 6.351576923076923 6.133611111111112 5.931214285714286 5.7427758620689655 5.5669 5.402370967741936 5.248125 5.103227272727273 4.966852941176471 4.838271428571429 4.716833333333334 4.60195945945946 4.493131578947368 4.3898846153846165 4.2918 4.198500000000001 4.109642857142857 4.0249186046511625 3.9440454545454546 3.866766666666667 3.7928478260869567 3.7220744680851063 3.65425 3.5891938775510206 3.52674 3.4667352941176475 3.409038461538462 3.3535188679245285 3.3000555555555553 3.248536363636364 3.1988571428571433 3.1509210526315794 3.104637931034483 3.0599237288135597 3.0167 2.9748934426229505 2.934435483870968 2.895261904761905 2.8573125 2.8205307692307695 2.784863636363636 2.750261194029851 2.716676470588235 2.6840652173913044 2.652385714285715 2.621598591549296 2.591666666666667 2.5625547945205485 2.53422972972973 2.50666 2.479815789473684 2.4536688311688315 2.4281923076923078 2.403360759493671 2.37915 2.355537037037037 2.3325 2.310018072289157 2.2880714285714285 2.2666411764705883 2.245709302325581 2.2252586206896554 2.2052727272727273 2.18573595505618 2.1666333333333334 2.1479505494505498 2.1296739130434785 2.1117903225806454 2.0942872340425533 2.0771526315789473 2.060375 2.0439432989690722 2.0278469387755105 2.0120757575757575 1.99662 1.981470297029703 1.9666176470588237 1.9520533980582524 1.9377692307692307 1.9237571428571432 1.9100094339622644 1.8965186915887853 1.8832777777777778 1.8702798165137615 1.857518181818182 1.8449864864864867 1.8326785714285716 1.8205884955752214 1.8087105263157897
33 56 6.8614375 6.60564 6.369519230769231 6.15088888888889 5.947875 5.7588620689655174 5.582450000000001 5.41741935483871 5.262703125 5.117363636363637 4.980573529411765 4.8516 4.729791666666667 4.614567567567567 4.505407894736843 4.401846153846154 4.3034625 4.209878048780488 4.12075 4.035767441860465 3.954647727272728 3.877133333333333 3.8029891304347823 3.732 3.6639687500000004 3.5987142857142858 3.5360700000000005 3.4758823529411766 3.4180096153846153 3.362320754716981 3.3086944444444444 3.257018181818182 3.2071875000000003 3.159105263157895 3.112681034482759 3.0678305084745765 3.024475 2.9825409836065573 2.941959677419355 2.9026666666666667 2.8646015625 2.8277076923076923 2.7919318181818182 2.7572238805970146 2.7235367647058824 2.6908260869565224 2.6590500000000006 2.6281690140845075 2.5981458333333336 2.5689452054794524 2.540533783783784 2.5128800000000004 2.4859539473684213 2.4597272727272728 2.434173076923077 2.40926582278481 2.38498125 2.3612962962962962 2.338189024390244 2.3156385542168674 2.293625 2.272129411764706 2.2511337209302327 2.2306206896551726 2.210573863636364 2.1909775280898875 2.171816666666667 2.1530769230769233 2.1347445652173915 2.116806451612903 2.09925 2.082063157894737 2.065234375 2.0487525773195876 2.0326071428571426 2.016787878787879 2.001285 1.9860891089108912 1.9711911764705883 1.9565825242718446 1.942254807692308 1.9282000000000004 1.9144103773584908 1.9008785046728973 1.8875972222222224 1.8745596330275232 1.861759090909091 1.8491891891891892 1.8368437500000003 1.8247168141592922
34 57 7.159760869565218 6.8808750000000005 6.6243 6.3874615384615385 6.168166666666666 5.964535714285715 5.774948275862069 5.598000000000001 5.4324677419354845 5.277281250000001 5.131500000000001 4.994294117647059 4.864928571428572 4.74275 4.627175675675677 4.517684210526316 4.413807692307692 4.315125 4.221256097560976 4.131857142857143 4.0466162790697675 3.96525 3.8875 3.813130434782609 3.741925531914894 3.6736875000000007 3.6082346938775514 3.5454000000000003 3.4850294117647063 3.426980769230769 3.3711226415094337 3.317333333333334 3.2655000000000003 3.2155178571428578 3.1672894736842108 3.1207241379310346 3.0757372881355933 3.03225 2.990188524590164 2.9494838709677422 2.910071428571429 2.871890625 2.834884615384615 2.799 2.764186567164179 2.73039705882353 2.6975869565217394 2.665714285714286 2.6347394366197188 2.6046250000000004 2.5753356164383563 2.5468378378378382 2.5191 2.492092105263158 2.4657857142857145 2.440153846153846 2.4151708860759493 2.3908125 2.3670555555555555 2.3438780487804878 2.3212590361445784 2.2991785714285715 2.2776176470588236 2.256558139534884 2.2359827586206897 2.2158750000000005 2.196219101123596 2.177 2.158203296703297 2.1398152173913045 2.121822580645161 2.1042127659574468 2.0869736842105264 2.07009375 2.053561855670103 2.0373673469387756 2.0215 2.00595 1.9907079207920793 1.9757647058823529 1.961111650485437 1.9467403846153848 1.9326428571428573 1.9188113207547173 1.9052383177570096 1.891916666666667 1.8788394495412843 1.866 1.8533918918918921 1.8410089285714286
35 58 7.485204545454546 7.1800434782608695 6.9003125 6.64296 6.405403846153846 6.185444444444445 5.981196428571429 5.791034482758621 5.61355 5.447516129032258 5.2918593750000005 5.145636363636364 5.008014705882353 4.878257142857143 4.755708333333334 4.639783783783784 4.52996052631579 4.425769230769231 4.3267875 4.232634146341463 4.142964285714286 4.05746511627907 3.9758522727272725 3.8978666666666673 3.823271739130435 3.751851063829787 3.68340625 3.6177551020408165 3.55473 3.4941764705882354 3.4359519230769235 3.379924528301887 3.3259722222222226 3.2739818181818183 3.2238482142857148 3.1754736842105262 3.12876724137931 3.08364406779661 3.0400250000000004 2.997836065573771 2.957008064516129 2.9174761904761906 2.8791796874999998 2.842061538461538 2.8060681818181816 2.771149253731344 2.737257352941177 2.704347826086957 2.6723785714285717 2.64130985915493 2.611104166666667 2.5817260273972606 2.553141891891892 2.52532 2.498230263157895 2.471844155844156 2.4461346153846155 2.4210759493670886 2.39664375 2.3728148148148147 2.3495670731707317 2.326879518072289 2.304732142857143 2.2831058823529413 2.261982558139535 2.2413448275862073 2.2211761363636366 2.2014606741573037 2.1821833333333336 2.1633296703296705 2.1448858695652175 2.1268387096774193 2.109175531914894 2.091884210526316 2.074953125 2.0583711340206188 2.042127551020408 2.0262121212121214 2.010615 1.9953267326732673 1.980338235294118 1.9656407766990291 1.9512259615384617 1.9370857142857143 1.9232122641509437 1.9095981308411216 1.896236111111111 1.883119266055046 1.8702409090909091 1.8575945945945946
36 59 7.841642857142858 7.5064090909090915 7.200326086956522 6.91975 6.661619999999999 6.423346153846154 6.2027222222222225 5.997857142857144 5.807120689655172 5.6291 5.462564516129032 5.3064375 5.159772727272728 5.021735294117647 4.891585714285714 4.768666666666667 4.6523918918918925 4.542236842105264 4.43773076923077 4.33845 4.244012195121951 4.154071428571429 4.0683139534883725 3.9864545454545457 3.9082333333333334 3.833413043478261 3.7617765957446814 3.693125 3.6272755102040817 3.56406 3.5033235294117646 3.4449230769230774 3.3887264150943404 3.3346111111111116 3.2824636363636364 3.2321785714285713 3.183657894736842 3.1368103448275866 3.0915508474576274 3.0478 3.0054836065573767 2.964532258064516 2.9248809523809522 2.8864687499999997 2.8492384615384614 2.8131363636363638 2.778111940298508 2.7441176470588236 2.7111086956521744 2.6790428571428575 2.6478802816901412 2.6175833333333336 2.5881164383561646 2.559445945945946 2.53154 2.5043684210526314 2.4779025974025974 2.452115384615385 2.426981012658228 2.402475 2.378574074074074 2.3552560975609755 2.3325000000000005 2.3102857142857145 2.288594117647059 2.2674069767441862 2.246706896551724 2.226477272727273 2.2067022471910116 2.1873666666666667 2.168456043956044 2.1499565217391305 2.1318548387096774 2.1141382978723406 2.096794736842105 2.0798125 2.0631804123711337 2.046887755102041 2.0309242424242426 2.0152799999999997 1.9999455445544556 1.9849117647058825 1.9701699029126214 1.955711538461539 1.9415285714285715 1.92761320754717 1.9139579439252339 1.9005555555555556 1.8873990825688076 1.8744818181818184
37 60 8.233725 7.863857142857143 7.527613636363637 7.2206086956521744 6.9391875 6.680280000000001 6.441288461538463 6.220000000000001 6.014517857142858 5.823206896551724 5.64465 5.477612903225806 5.321015625 5.173909090909091 5.035455882352942 4.904914285714286 4.781625 4.665 4.554513157894737 4.449692307692308 4.3501125 4.25539024390244 4.165178571428571 4.079162790697675 3.997056818181819 3.9186 3.843554347826087 3.771702127659575 3.7028437500000004 3.636795918367347 3.57339 3.5124705882352947 3.4538942307692313 3.397528301886793 3.3432500000000003 3.2909454545454544 3.240508928571429 3.191842105263158 3.144853448275862 3.0994576271186443 3.055575 3.0131311475409834 2.9720564516129033 2.9322857142857144 2.8937578125 2.856415384615385 2.820204545454546 2.785074626865672 2.7509779411764708 2.7178695652173914 2.685707142857143 2.6544507042253525 2.6240625 2.5945068493150685 2.5657500000000004 2.53776 2.5105065789473686 2.483961038961039 2.458096153846154 2.432886075949367 2.40830625 2.384333333333333 2.36094512195122 2.338120481927711 2.315839285714286 2.2940823529411767 2.2728313953488373 2.2520689655172417 2.231778409090909 2.211943820224719 2.19255 2.1735824175824177 2.1550271739130435 2.1368709677419355 2.1191010638297874 2.1017052631578945 2.084671875 2.0679896907216495 2.0516479591836734 2.0356363636363635 2.019945 2.004564356435644 1.9894852941176473 1.9746990291262136 1.9601971153846156 1.9459714285714287 1.9320141509433961 1.918317757009346 1.904875 1.8916788990825688
38 61 8.667078947368422 8.25705 7.886071428571428 7.548818181818182 7.2408913043478265 6.9586250000000005 6.69894 6.4592307692307696 6.237277777777778 6.031178571428573 5.839293103448276 5.6602 5.492661290322581 5.33559375 5.188045454545455 5.049176470588235 4.918242857142857 4.794583333333334 4.6776081081081085 4.56678947368421 4.461653846153846 4.361775 4.266768292682927 4.176285714285715 4.090011627906977 4.007659090909091 3.9289666666666667 3.853695652173913 3.7816276595744682 3.7125624999999998 3.6463163265306124 3.58272 3.521617647058824 3.4628653846153847 3.4063301886792456 3.3518888888888894 3.299427272727273 3.248839285714286 3.200026315789474 3.152896551724138 3.107364406779661 3.0633500000000002 3.02077868852459 2.9795806451612905 2.939690476190476 2.9010468750000005 2.8635923076923078 2.8272727272727276 2.7920373134328362 2.757838235294118 2.724630434782609 2.6923714285714286 2.6610211267605637 2.630541666666667 2.600897260273973 2.572054054054054 2.54398 2.5166447368421054 2.4900194805194804 2.464076923076923 2.4387911392405064 2.4141375 2.390092592592593 2.3666341463414637 2.3437409638554216 2.3213928571428575 2.2995705882352944 2.2782558139534888 2.257431034482759 2.2370795454545456 2.2171853932584273 2.1977333333333333 2.1787087912087912 2.1600978260869566 2.1418870967741936 2.124063829787234 2.1066157894736843 2.08953125 2.072798969072165 2.056408163265306 2.040348484848485 2.02461 2.0091831683168317 1.994058823529412 1.979228155339806 1.9646826923076925 1.9504142857142859 1.9364150943396228 1.922677570093458 1.9091944444444446
39 62 9.148583333333333 8.69163157894737 8.280375 7.908285714285714 7.570022727272727 7.2611739130434785 6.978062500000001 6.717600000000001 6.477173076923077 6.254555555555556 6.047839285714286 5.855379310344828 5.67575 5.507709677419355 5.350171875000001 5.202181818181819 5.0628970588235305 4.931571428571429 4.807541666666667 4.690216216216217 4.579065789473685 4.4736153846153845 4.3734375 4.278146341463415 4.187392857142857 4.10086046511628 4.0182613636363635 3.939333333333334 3.863836956521739 3.7915531914893617 3.72228125 3.655836734693878 3.5920500000000004 3.5307647058823535 3.4718365384615386 3.415132075471698 3.360527777777778 3.3079090909090914 3.257169642857143 3.2082105263157894 3.1609396551724136 3.115271186440678 3.0711250000000003 3.028426229508197 2.9871048387096772 2.9470952380952387 2.9083359375000004 2.870769230769231 2.8343409090909093 2.7990000000000004 2.764698529411765 2.7313913043478264 2.6990357142857144 2.667591549295775 2.6370208333333336 2.6072876712328767 2.578358108108108 2.5502000000000002 2.5227828947368423 2.496077922077922 2.4700576923076922 2.444696202531645 2.4199687500000002 2.395851851851852 2.3723231707317076 2.349361445783133 2.3269464285714285 2.305058823529412 2.28368023255814 2.262793103448276 2.242380681818182 2.2224269662921348 2.202916666666667 2.183835164835165 2.1651684782608696 2.1469032258064518 2.129026595744681 2.1115263157894737 2.094390625 2.0776082474226802 2.061168367346939 2.0450606060606065 2.029275 2.01380198019802 1.9986323529411767 1.9837572815533981 1.9691682692307695 1.954857142857143 1.940816037735849 1.9270373831775702
40 63 9.686735294117646 9.1745 8.716184210526317 8.303700000000001 7.930499999999999 7.591227272727274 7.2814565217391305 6.9975000000000005 6.736260000000001 6.495115384615385 6.271833333333333 6.0645 5.87146551724138 5.6913 5.52275806451613 5.364750000000001 5.216318181818182 5.076617647058824 4.9449000000000005 4.820500000000001 4.702824324324324 4.591342105263158 4.485576923076923 4.3851 4.289524390243903 4.1985 4.111709302325582 4.028863636363637 3.9497 3.873978260869565 3.801478723404255 3.732 3.665357142857143 3.6013800000000007 3.5399117647058826 3.4808076923076925 3.4239339622641514 3.369166666666667 3.3163909090909094 3.2655 3.2163947368421053 3.1689827586206896 3.123177966101695 3.0789 3.036073770491803 2.994629032258065 2.9545000000000003 2.9156250000000004 2.877946153846154 2.8414090909090914 2.805962686567164 2.771558823529412 2.7381521739130434 2.7057 2.674161971830986 2.6435 2.6136780821917807 2.584662162162162 2.55642 2.5289210526315786 2.5021363636363634 2.4760384615384616 2.450601265822785 2.4258 2.4016111111111114 2.3780121951219515 2.3549819277108437 2.3325000000000005 2.3105470588235297 2.289104651162791 2.268155172413793 2.2476818181818183 2.2276685393258426 2.2081 2.1889615384615384 2.1702391304347826 2.15191935483871 2.1339893617021275 2.116436842105263 2.09925 2.082417525773196 2.0659285714285716 2.0497727272727273 2.0339400000000003 2.018420792079208 2.0032058823529413 1.9882864077669904 1.9736538461538462 1.9593 1.9452169811320754
41 64 10.292156250000001 9.714176470588235 9.200416666666667 8.740736842105264 8.327024999999999 7.952714285714286 7.612431818181819 7.301739130434783 7.016937500000001 6.75492 6.513057692307693 6.2891111111111115 6.081160714285715 5.887551724137931 5.706850000000001 5.537806451612903 5.379328125000001 5.2304545454545455 5.0903382352941176 4.958228571428571 4.833458333333334 4.715432432432433 4.603618421052632 4.497538461538462 4.3967625 4.300902439024391 4.209607142857143 4.122558139534884 4.039465909090909 3.9600666666666666 3.884119565217391 3.8114042553191494 3.7417187500000004 3.6748775510204084 3.61071 3.5490588235294123 3.489778846153846 3.432735849056604 3.3778055555555557 3.324872727272727 3.2738303571428573 3.224578947368421 3.1770258620689655 3.1310847457627116 3.086675 3.04372131147541 3.002153225806452 2.9619047619047625 2.9229140625000003 2.8851230769230773 2.8484772727272727 2.8129253731343287 2.7784191176470587 2.744913043478261 2.712364285714286 2.6807323943661974 2.6499791666666668 2.620068493150685 2.5909662162162164 2.56264 2.535059210526316 2.508194805194805 2.482019230769231 2.4565063291139246 2.4316312500000006 2.4073703703703706 2.3837012195121954 2.3606024096385543 2.3380535714285715 2.316035294117647 2.294529069767442 2.2735172413793103 2.2529829545454545 2.2329101123595505 2.2132833333333335 2.1940879120879124 2.1753097826086956 2.1569354838709676 2.138952127659574 2.1213473684210524 2.104109375 2.0872268041237114 2.070688775510204 2.054484848484849 2.038605 2.023039603960396 2.007779411764706 1.9928155339805826 1.9781394230769231 1.9637428571428572
42 65 10.9783 10.321312500000001 9.741617647058824 9.226333333333333 8.765289473684211 8.35035 7.974928571428572 7.633636363636364 7.3220217391304345 7.0363750000000005 6.77358 6.531 6.30638888888889 6.097821428571429 5.903637931034483 5.7224 5.552854838709678 5.393906250000001 5.24459090909091 5.104058823529412 4.971557142857143 4.846416666666667 4.72804054054054 4.6158947368421055 4.5095 4.408425 4.312280487804879 4.220714285714286 4.133406976744187 4.050068181818182 3.9704333333333333 3.8942608695652177 3.821329787234043 3.7514375000000006 3.6843979591836735 3.6200400000000004 3.558205882352941 3.4987500000000002 3.4415377358490566 3.386444444444445 3.3333545454545455 3.2821607142857143 3.2327631578947367 3.1850689655172415 3.138991525423729 3.09445 3.051368852459017 3.0096774193548392 2.9693095238095237 2.9302031250000002 2.8923 2.855545454545455 2.819888059701493 2.785279411764706 2.7516739130434784 2.719028571428572 2.6873028169014086 2.656458333333333 2.6264589041095894 2.59727027027027 2.56886 2.5411973684210527 2.5142532467532472 2.4880000000000004 2.4624113924050635 2.4374625 2.41312962962963 2.3893902439024393 2.3662228915662653 2.343607142857143 2.321523529411765 2.2999534883720933 2.278879310344828 2.2582840909090907 2.2381516853932584 2.218466666666667 2.1992142857142856 2.1803804347826086 2.1619516129032257 2.1439148936170214 2.1262578947368427 2.1089687500000003 2.092036082474227 2.0754489795918367 2.05919696969697 2.04327 2.027658415841584 2.012352941176471 1.997344660194175 1.982625
43 66 11.762464285714286 11.0094 10.350468750000001 9.769058823529413 9.25225 8.789842105263158 8.373675 7.997142857142858 7.654840909090909 7.342304347826087 7.0558125 6.7922400000000005 6.548942307692308 6.323666666666667 6.114482142857144 5.919724137931034 5.7379500000000005 5.567903225806452 5.4084843750000005 5.258727272727273 5.117779411764706 4.984885714285714 4.859375 4.74064864864865 4.628171052631579 4.521461538461539 4.4200875 4.323658536585366 4.231821428571429 4.144255813953489 4.060670454545455 3.9808000000000003 3.904402173913044 3.8312553191489367 3.76115625 3.6939183673469387 3.62937 3.5673529411764706 3.507721153846154 3.4503396226415095 3.395083333333334 3.3418363636363635 3.2904910714285713 3.2409473684210526 3.193112068965517 3.146898305084746 3.1022250000000002 3.0590163934426235 3.017201612903226 2.976714285714286 2.9374921875 2.8994769230769233 2.8626136363636365 2.826850746268657 2.792139705882353 2.758434782608696 2.7256928571428576 2.69387323943662 2.6629375 2.6328493150684933 2.6035743243243243 2.57508 2.5473355263157895 2.5203116883116885 2.4939807692307694 2.4683164556962027 2.4432937500000005 2.418888888888889 2.395079268292683 2.3718433734939763 2.3491607142857145 2.3270117647058823 2.3053779069767444 2.2842413793103447 2.2635852272727273 2.2433932584269662 2.22365 2.204340659340659 2.1854510869565216 2.166967741935484 2.1488776595744685 2.1311684210526316 2.1138281250000004 2.0968453608247426 2.0802091836734693 2.063909090909091 2.0479350000000003 2.0322772277227727 2.0169264705882353 2.001873786407767
44 67 12.667269230769232 11.795785714285715 11.040500000000002 10.379625 9.7965 9.278166666666667 8.814394736842106 8.397 8.019357142857142 7.676045454545456 7.362586956521739 7.0752500000000005 6.8109 6.566884615384616 6.340944444444444 6.131142857142858 5.935810344827587 5.753500000000001 5.582951612903226 5.4230625 5.2728636363636365 5.131500000000001 4.998214285714286 4.872333333333334 4.753256756756757 4.640447368421053 4.533423076923077 4.43175 4.335036585365854 4.242928571428571 4.155104651162791 4.071272727272728 3.991166666666667 3.91454347826087 3.8411808510638297 3.770875 3.7034387755102043 3.6387 3.5765000000000002 3.5166923076923076 3.4591415094339624 3.403722222222222 3.3503181818181815 3.2988214285714283 3.2491315789473685 3.2011551724137934 3.154805084745763 3.1100000000000003 3.06666393442623 3.024725806451613 2.984119047619048 2.94478125 2.9066538461538465 2.8696818181818182 2.833813432835821 2.799 2.7651956521739134 2.732357142857143 2.700443661971831 2.6694166666666668 2.639239726027397 2.6098783783783785 2.5813 2.553473684210527 2.52637012987013 2.499961538461539 2.474221518987342 2.449125 2.4246481481481483 2.400768292682927 2.377463855421687 2.354714285714286 2.3325 2.3108023255813954 2.2896034482758623 2.268886363636364 2.248634831460674 2.228833333333333 2.2094670329670327 2.1905217391304346 2.1719838709677424 2.1538404255319152 2.1360789473684214 2.1186875 2.101654639175258 2.0849693877551023 2.0686212121212124 2.0526 2.0368960396039606 2.0215
45 68 13.722875 12.703153846153846 11.829107142857143 11.0716 10.40878125 9.823941176470589 9.304083333333335 8.838947368421053 8.420325 8.041571428571428 7.69725 7.3828695652173915 7.094687500000001 6.82956 6.584826923076924 6.358222222222222 6.147803571428572 5.951896551724138 5.76905 5.598 5.437640625 5.287 5.145220588235294 5.0115428571428575 4.885291666666667 4.765864864864865 4.652723684210526 4.545384615384616 4.4434125 4.346414634146342 4.254035714285714 4.165953488372094 4.081875 4.001533333333334 3.924684782608696 3.851106382978724 3.7805937500000004 3.71295918367347 3.6480300000000003 3.5856470588235294 3.5256634615384614 3.4679433962264152 3.4123611111111107 3.3587999999999996 3.307151785714286 3.2573157894736844 3.2091982758620694 3.16271186440678 3.117775 3.074311475409836 3.0322500000000003 2.9915238095238097 2.9520703125 2.9138307692307697 2.8767500000000004 2.8407761194029852 2.805860294117647 2.7719565217391304 2.7390214285714287 2.7070140845070423 2.675895833333333 2.645630136986301 2.6161824324324328 2.5875200000000005 2.5596118421052636 2.5324285714285715 2.505942307692308 2.4801265822784813 2.4549562500000004 2.4304074074074076 2.406457317073171 2.3830843373493975 2.3602678571428575 2.3379882352941177 2.3162267441860465 2.2949655172413794 2.2741875 2.253876404494382 2.2340166666666668 2.2145934065934068 2.195592391304348 2.1770000000000005 2.158803191489362 2.1409894736842108 2.123546875 2.1064639175257733 2.089729591836735 2.0733333333333337 2.057265 2.0415148514851484
46 69 14.970409090909092 13.761750000000001 12.739038461538462 11.862428571428572 11.1027 10.4379375 9.851382352941178 9.33 8.863500000000002 8.443650000000002 8.063785714285714 7.718454545454546 7.403152173913044 7.114125 6.84822 6.602769230769232 6.375500000000001 6.164464285714287 5.96798275862069 5.7846 5.613048387096774 5.45221875 5.301136363636363 5.158941176470589 5.024871428571429 4.89825 4.778472972972973 4.665 4.557346153846154 4.455075000000001 4.35779268292683 4.265142857142857 4.176802325581395 4.092477272727273 4.011900000000001 3.934826086956522 3.861031914893617 3.7903124999999998 3.722479591836735 3.65736 3.5947941176470586 3.5346346153846158 3.4767452830188676 3.421 3.3672818181818185 3.3154821428571433 3.2655000000000003 3.2172413793103454 3.1706186440677966 3.12555 3.081959016393443 3.039774193548387 2.998928571428572 2.959359375 2.9210076923076924 2.883818181818182 2.847738805970149 2.8127205882352944 2.778717391304348 2.7456857142857145 2.7135845070422535 2.682375 2.652020547945206 2.622486486486487 2.5937400000000004 2.5657500000000004 2.538487012987013 2.511923076923077 2.4860316455696205 2.4607875000000003 2.436166666666667 2.412146341463415 2.3887048192771085 2.3658214285714285 2.3434764705882354 2.3216511627906975 2.3003275862068966 2.279488636363636 2.25911797752809 2.2392000000000003 2.2197197802197803 2.200663043478261 2.1820161290322586 2.1637659574468087 2.1459 2.1284062500000003 2.111273195876289 2.0944897959183675 2.0780454545454545 2.0619300000000003
47 70 16.46745 15.012818181818183 13.800625 12.774923076923077 11.89575 11.1338 10.46709375 9.878823529411765 9.355916666666667 8.888052631578947 8.466975000000001 8.086 7.739659090909091 7.4234347826086955 7.1335625 6.86688 6.6207115384615385 6.392777777777778 6.181125 5.984068965517242 5.80015 5.628096774193549 5.466796875 5.315272727272728 5.172661764705883 5.038200000000001 4.911208333333334 4.7910810810810815 4.677276315789474 4.569307692307692 4.4667375 4.369170731707317 4.27625 4.187651162790698 4.103079545454546 4.022266666666667 3.9449673913043477 3.870957446808511 3.80003125 3.732 3.66669 3.603941176470588 3.543605769230769 3.485547169811321 3.4296388888888885 3.3757636363636365 3.3238125000000003 3.273684210526316 3.2252844827586213 3.178525423728814 3.133325 3.0896065573770493 3.0472983870967743 3.006333333333333 2.9666484375 2.928184615384615 2.8908863636363638 2.8547014925373135 2.819580882352941 2.7854782608695654 2.75235 2.7201549295774647 2.688854166666667 2.65841095890411 2.6287905405405407 2.5999600000000003 2.571888157894737 2.544545454545455 2.517903846153846 2.49193670886076 2.4666187500000003 2.441925925925926 2.4178353658536587 2.3943253012048196 2.371375 2.348964705882353 2.327075581395349 2.3056896551724138 2.284789772727273 2.2643595505617977 2.2443833333333334 2.224846153846154 2.2057336956521745 2.1870322580645163 2.1687287234042554 2.15081052631579 2.1332656250000004 2.116082474226804 2.09925 2.082757575757576
48 71 18.297166666666666 16.5141 15.055227272727274 13.8395 12.810807692307693 11.92907142857143 11.164900000000001 10.49625 9.906264705882354 9.381833333333333 8.912605263157895 8.4903 8.108214285714286 7.760863636363636 7.443717391304348 7.1530000000000005 6.885540000000001 6.638653846153847 6.410055555555555 6.197785714285715 6.000155172413793 5.8157 5.643145161290323 5.481375000000001 5.329409090909091 5.186382352941177 5.051528571428571 4.924166666666666 4.803689189189189 4.689552631578947 4.58126923076923 4.478400000000001 4.380548780487805 4.287357142857143 4.1985 4.113681818181818 4.032633333333333 3.955108695652174 3.8808829787234043 3.80975 3.7415204081632654 3.6760200000000003 3.613088235294118 3.5525769230769226 3.494349056603774 3.4382777777777784 3.3842454545454546 3.3321428571428577 3.281868421052632 3.2333275862068964 3.1864322033898307 3.1411 3.097254098360656 3.0548225806451614 3.013738095238095 2.9739375 2.935361538461539 2.897954545454546 2.861664179104478 2.8264411764705883 2.7922391304347824 2.7590142857142856 2.7267253521126764 2.6953333333333336 2.664801369863014 2.635094594594595 2.60618 2.578026315789474 2.5506038961038966 2.5238846153846155 2.497841772151899 2.4724500000000003 2.4476851851851853 2.4235243902439025 2.39994578313253 2.3769285714285715 2.3544529411764707 2.3325 2.311051724137931 2.290090909090909 2.269601123595506 2.249566666666667 2.229972527472528 2.210804347826087 2.1920483870967744 2.1736914893617025 2.155721052631579 2.138125 2.12089175257732 2.104010204081633
49 72 20.584312500000003 18.349 16.56075 15.097636363636363 13.878375 12.846692307692308 11.962392857142857 11.196000000000002 10.52540625 9.933705882352942 9.40775 8.937157894736842 8.513625000000001 8.13042857142857 7.7820681818181825 7.464 7.172437500000001 6.9042 6.656596153846154 6.427333333333333 6.214446428571429 6.016241379310345 5.83125 5.658193548387097 5.495953125000001 5.343545454545454 5.200102941176471 5.064857142857143 4.937125 4.8162972972972975 4.701828947368421 4.59323076923077 4.4900625000000005 4.391926829268293 4.298464285714286 4.209348837209302 4.124284090909091 4.043 3.96525 3.8908085106382977 3.81946875 3.7510408163265305 3.68535 3.622235294117647 3.561548076923077 3.5031509433962267 3.4469166666666666 3.3927272727272735 3.3404732142857148 3.2900526315789476 3.241370689655173 3.1943389830508475 3.1488750000000003 3.1049016393442623 3.0623467741935486 3.0211428571428574 2.9812265625 2.9425384615384615 2.905022727272727 2.868626865671642 2.8333014705882356 2.799 2.7656785714285714 2.7332957746478876 2.7018125000000004 2.671191780821918 2.6413986486486487 2.6124 2.584164473684211 2.556662337662338 2.529865384615385 2.503746835443038 2.47828125 2.4534444444444445 2.4292134146341464 2.4055662650602407 2.382482142857143 2.3599411764705884 2.337924418604651 2.316413793103448 2.2953920454545456 2.2748426966292135 2.2547500000000005 2.235098901098901 2.2158750000000005 2.1970645161290325 2.178654255319149 2.1606315789473687 2.142984375 2.1257010309278352
50 73 23.52492857142857 20.642625000000002 18.400833333333335 16.607400000000002 15.140045454545454 13.917250000000001 12.882576923076925 11.995714285714287 11.2271 10.554562500000001 9.96114705882353 9.433666666666667 8.96171052631579 8.536950000000001 8.152642857142858 7.803272727272728 7.484282608695652 7.191875 6.92286 6.674538461538462 6.4446111111111115 6.231107142857143 6.032327586206897 5.846800000000001 5.673241935483872 5.5105312500000005 5.357681818181819 5.213823529411766 5.0781857142857145 4.950083333333334 4.828905405405406 4.7141052631578955 4.605192307692308 4.501725 4.403304878048781 4.309571428571429 4.220197674418605 4.1348863636363635 4.053366666666667 3.975391304347826 3.900734042553192 3.8291875 3.7605612244897957 3.69468 3.6313823529411766 3.5705192307692313 3.5119528301886795 3.4555555555555557 3.4012090909090915 3.3488035714285718 3.2982368421052635 3.2494137931034484 3.202245762711865 3.1566500000000004 3.112549180327869 3.0698709677419354 3.028547619047619 2.9885156250000002 2.9497153846153843 2.912090909090909 2.875589552238806 2.8401617647058823 2.805760869565218 2.772342857142857 2.739866197183099 2.7082916666666668 2.6775821917808225 2.647702702702703 2.6186200000000004 2.5903026315789477 2.562720779220779 2.535846153846154 2.509651898734177 2.4841125 2.459203703703704 2.4349024390243903 2.4111867469879518 2.3880357142857145 2.3654294117647057 2.3433488372093025 2.3217758620689657 2.3006931818181817 2.2800842696629218 2.2599333333333336 2.240225274725275 2.220945652173913 2.2020806451612907 2.183617021276596 2.165542105263158 2.1478437500000003
51 74 27.44575 23.59157142857143 20.700937500000002 18.452666666666666 16.654049999999998 15.182454545454547 13.956125000000002 12.918461538461539 12.029035714285715 11.2582 10.583718750000001 9.988588235294118 9.459583333333335 8.986263157894737 8.560275 8.174857142857144 7.824477272727274 7.504565217391304 7.2113125 6.941520000000001 6.6924807692307695 6.461888888888889 6.247767857142858 6.048413793103449 5.86235 5.688290322580646 5.525109375 5.371818181818182 5.227544117647059 5.091514285714286 4.963041666666666 4.8415135135135134 4.726381578947369 4.617153846153847 4.5133875 4.414682926829268 4.320678571428571 4.231046511627907 4.145488636363637 4.063733333333333 3.985532608695652 3.910659574468085 3.83890625 3.770081632653061 3.70401 3.6405294117647067 3.579490384615385 3.5207547169811324 3.464194444444445 3.4096909090909095 3.357133928571429 3.306421052631579 3.2574568965517248 3.2101525423728816 3.1644250000000005 3.1201967213114754 3.0773951612903225 3.035952380952381 2.9958046875 2.9568923076923075 2.9191590909090905 2.88255223880597 2.84702205882353 2.812521739130435 2.779007142857143 2.74643661971831 2.7147708333333336 2.6839726027397264 2.6540067567567567 2.6248400000000003 2.596440789473684 2.568779220779221 2.5418269230769233 2.5155569620253164 2.48994375 2.464962962962963 2.440591463414634 2.416807228915663 2.3935892857142855 2.370917647058824 2.3487732558139536 2.327137931034483 2.3059943181818183 2.2853258426966296 2.2651166666666667 2.2453516483516482 2.2260163043478265 2.2070967741935483 2.1885797872340427 2.1704526315789474

@ -1,51 +0,0 @@
;80;81;82;83;84;85;86;87;88;89;90;91;92;93;94;95;96;97;98;99;100;101;102;103;104;105;106;107;108;109;110;111;112;113;114;115;116;117;118;119;120;121;122;123;124;125;126;127;128;129;130;131;132;133;134;135;136;137;138;139;140;141;142;143;144;145;146;147;148;149;150;151;152;153;154;155;156;157;158;159;160;161;162;163;164;165;166;167;168;169
25;3.850909090909091;3.792857142857143;3.7368421052631584;3.682758620689655;3.6305084745762715;3.58;3.531147540983607;3.483870967741936;3.4380952380952383;3.3937500000000003;3.350769230769231;3.3090909090909095;3.268656716417911;3.2294117647058824;3.191304347826087;3.154285714285715;3.11830985915493;3.0833333333333335;3.0493150684931507;3.0162162162162165;2.984;2.9526315789473685;2.9220779220779223;2.8923076923076927;2.8632911392405065;2.835;2.807407407407408;2.7804878048780486;2.7542168674698795;2.7285714285714286;2.7035294117647064;2.679069767441861;2.655172413793103;2.631818181818182;2.608988764044944;2.586666666666667;2.5648351648351646;2.5434782608695654;2.52258064516129;2.502127659574468;2.482105263157895;2.4625000000000004;2.443298969072165;2.424489795918367;2.4060606060606062;2.3880000000000003;2.3702970297029706;2.3529411764705888;2.3359223300970875;2.3192307692307694;2.3028571428571434;2.2867924528301886;2.2710280373831777;2.2555555555555555;2.2403669724770645;2.2254545454545456;2.210810810810811;2.1964285714285716;2.1823008849557524;2.168421052631579;2.154782608695652;2.1413793103448278;2.1282051282051286;2.115254237288136;2.1025210084033614;2.09;2.0776859504132235;2.0655737704918034;2.053658536585366;2.041935483870968;2.0304;2.019047619047619;2.0078740157480315;1.9968750000000002;1.9860465116279071;1.9753846153846153;1.964885496183206;1.9545454545454546;1.9443609022556392;1.9343283582089552;1.9244444444444446;1.9147058823529413;1.9051094890510951;1.8956521739130436;1.8863309352517987;1.8771428571428572;1.8680851063829789;1.859154929577465;1.8503496503496502;1.8416666666666668
26;3.9222222222222225;3.861818181818182;3.803571428571429;3.7473684210526317;3.6931034482758625;3.6406779661016953;3.5900000000000007;3.5409836065573774;3.4935483870967743;3.447619047619048;3.403125;3.3600000000000003;3.3181818181818183;3.2776119402985078;3.238235294117647;3.2;3.162857142857143;3.126760563380282;3.091666666666667;3.057534246575343;3.0243243243243247;2.992;2.9605263157894735;2.92987012987013;2.9000000000000004;2.8708860759493673;2.8425000000000002;2.814814814814815;2.7878048780487807;2.76144578313253;2.7357142857142858;2.710588235294118;2.6860465116279073;2.662068965517242;2.6386363636363637;2.615730337078652;2.5933333333333333;2.5714285714285716;2.5500000000000003;2.5290322580645164;2.5085106382978726;2.488421052631579;2.46875;2.4494845360824744;2.4306122448979592;2.412121212121212;2.394;2.3762376237623766;2.358823529411765;2.3417475728155344;2.325;2.3085714285714287;2.2924528301886795;2.276635514018692;2.261111111111111;2.2458715596330276;2.230909090909091;2.2162162162162162;2.2017857142857142;2.1876106194690266;2.173684210526316;2.16;2.146551724137931;2.1333333333333337;2.1203389830508477;2.1075630252100845;2.095;2.0826446280991737;2.0704918032786885;2.0585365853658537;2.046774193548387;2.0352;2.0238095238095237;2.0125984251968503;2.0015625;1.9906976744186047;1.98;1.9694656488549618;1.959090909090909;1.948872180451128;1.938805970149254;1.928888888888889;1.9191176470588238;1.9094890510948905;1.9000000000000004;1.8906474820143888;1.8814285714285715;1.872340425531915;1.8633802816901408;1.8545454545454547
27;3.99622641509434;3.9333333333333336;3.872727272727273;3.814285714285714;3.7578947368421054;3.703448275862069;3.650847457627119;3.6000000000000005;3.550819672131148;3.503225806451613;3.4571428571428573;3.4125;3.3692307692307697;3.327272727272727;3.2865671641791048;3.2470588235294118;3.208695652173913;3.1714285714285717;3.1352112676056336;3.1000000000000005;3.0657534246575344;3.0324324324324325;3.0;2.9684210526315793;2.9376623376623376;2.907692307692308;2.878481012658228;2.85;2.822222222222222;2.795121951219512;2.7686746987951807;2.742857142857143;2.7176470588235295;2.6930232558139537;2.6689655172413795;2.6454545454545455;2.6224719101123597;2.6;2.578021978021978;2.5565217391304347;2.535483870967742;2.5148936170212766;2.4947368421052634;2.4749999999999996;2.4556701030927837;2.4367346938775514;2.4181818181818184;2.4000000000000004;2.3821782178217825;2.364705882352941;2.347572815533981;2.330769230769231;2.314285714285714;2.29811320754717;2.282242990654206;2.2666666666666666;2.251376146788991;2.2363636363636363;2.2216216216216216;2.2071428571428573;2.192920353982301;2.1789473684210527;2.165217391304348;2.151724137931035;2.138461538461539;2.1254237288135593;2.1126050420168068;2.1;2.087603305785124;2.0754098360655737;2.0634146341463415;2.0516129032258066;2.04;2.0285714285714285;2.017322834645669;2.00625;1.9953488372093022;1.9846153846153847;1.9740458015267175;1.9636363636363636;1.9533834586466168;1.9432835820895524;1.9333333333333336;1.923529411764706;1.9138686131386864;1.9043478260869566;1.8949640287769784;1.885714285714286;1.8765957446808512;1.867605633802817
28;4.073076923076924;4.007547169811321;3.9444444444444446;3.8836363636363638;3.825;3.768421052631579;3.7137931034482765;3.6610169491525424;3.6100000000000003;3.560655737704918;3.512903225806452;3.466666666666667;3.421875;3.3784615384615386;3.336363636363637;3.2955223880597018;3.255882352941177;3.217391304347826;3.18;3.143661971830986;3.1083333333333334;3.073972602739726;3.0405405405405403;3.0080000000000005;2.9763157894736842;2.9454545454545453;2.9153846153846157;2.886075949367089;2.8575;2.82962962962963;2.802439024390244;2.7759036144578317;2.75;2.7247058823529415;2.7;2.6758620689655173;2.6522727272727273;2.6292134831460676;2.606666666666667;2.5846153846153843;2.5630434782608695;2.541935483870968;2.5212765957446805;2.5010526315789474;2.48125;2.461855670103093;2.442857142857143;2.4242424242424248;2.406;2.3881188118811885;2.3705882352941177;2.353398058252427;2.3365384615384617;2.3200000000000003;2.3037735849056604;2.2878504672897195;2.272222222222222;2.2568807339449544;2.2418181818181817;2.227027027027027;2.2125;2.1982300884955754;2.18421052631579;2.170434782608696;2.156896551724138;2.143589743589744;2.1305084745762715;2.11764705882353;2.1050000000000004;2.0925619834710742;2.080327868852459;2.0682926829268293;2.056451612903226;2.0448000000000004;2.033333333333333;2.0220472440944883;2.0109375;2.0;1.9892307692307694;1.9786259541984732;1.9681818181818185;1.9578947368421056;1.9477611940298512;1.9377777777777778;1.9279411764705885;1.918248175182482;1.9086956521739131;1.8992805755395685;1.8900000000000001;1.8808510638297873
29;4.152941176470588;4.084615384615384;4.018867924528302;3.9555555555555557;3.8945454545454545;3.8357142857142863;3.778947368421053;3.724137931034483;3.6711864406779666;3.62;3.5704918032786885;3.52258064516129;3.4761904761904763;3.4312500000000004;3.387692307692308;3.3454545454545457;3.3044776119402988;3.264705882352941;3.226086956521739;3.1885714285714286;3.152112676056338;3.116666666666667;3.082191780821918;3.048648648648649;3.016;2.9842105263157896;2.9532467532467535;2.9230769230769234;2.8936708860759497;2.865;2.837037037037037;2.809756097560976;2.783132530120482;2.757142857142857;2.731764705882353;2.7069767441860466;2.682758620689655;2.659090909090909;2.6359550561797755;2.6133333333333333;2.5912087912087913;2.5695652173913044;2.5483870967741935;2.527659574468085;2.5073684210526315;2.4875000000000003;2.468041237113402;2.4489795918367347;2.4303030303030306;2.412;2.3940594059405944;2.3764705882352946;2.359223300970874;2.342307692307692;2.3257142857142856;2.3094339622641513;2.2934579439252336;2.2777777777777777;2.2623853211009175;2.247272727272727;2.2324324324324323;2.217857142857143;2.2035398230088497;2.1894736842105265;2.1756521739130434;2.162068965517242;2.148717948717949;2.135593220338983;2.1226890756302526;2.1100000000000003;2.097520661157025;2.0852459016393445;2.073170731707317;2.0612903225806454;2.0496;2.0380952380952384;2.026771653543307;2.015625;2.0046511627906978;1.9938461538461538;1.9832061068702291;1.972727272727273;1.9624060150375944;1.9522388059701494;1.9422222222222223;1.9323529411764708;1.9226277372262777;1.9130434782608696;1.9035971223021584;1.8942857142857144
30;4.236000000000001;4.164705882352941;4.096153846153847;4.030188679245283;3.966666666666667;3.9054545454545457;3.8464285714285715;3.7894736842105265;3.7344827586206897;3.68135593220339;3.63;3.580327868852459;3.532258064516129;3.4857142857142858;3.4406250000000003;3.396923076923077;3.3545454545454545;3.3134328358208958;3.273529411764706;3.234782608695652;3.1971428571428575;3.1605633802816904;3.125;3.09041095890411;3.056756756756757;3.024;2.992105263157895;2.961038961038961;2.930769230769231;2.9012658227848105;2.8725;2.844444444444445;2.8170731707317076;2.790361445783133;2.7642857142857142;2.738823529411765;2.713953488372093;2.6896551724137936;2.665909090909091;2.642696629213483;2.62;2.597802197802198;2.5760869565217392;2.554838709677419;2.5340425531914894;2.513684210526316;2.4937500000000004;2.4742268041237114;2.4551020408163264;2.4363636363636365;2.418;2.4000000000000004;2.382352941176471;2.3650485436893205;2.348076923076923;2.331428571428572;2.3150943396226418;2.2990654205607477;2.283333333333333;2.2678899082568806;2.252727272727273;2.237837837837838;2.223214285714286;2.2088495575221243;2.1947368421052635;2.1808695652173915;2.1672413793103447;2.153846153846154;2.1406779661016953;2.127731092436975;2.115;2.1024793388429757;2.0901639344262297;2.078048780487805;2.0661290322580648;2.0544000000000002;2.0428571428571427;2.031496062992126;2.0203125;2.0093023255813955;1.9984615384615387;1.9877862595419848;1.9772727272727275;1.966917293233083;1.956716417910448;1.9466666666666668;1.9367647058823532;1.9270072992700733;1.9173913043478261;1.9079136690647482
31;4.322448979591837;4.248;4.176470588235294;4.107692307692307;4.041509433962264;3.977777777777778;3.916363636363637;3.8571428571428577;3.8;3.7448275862068967;3.6915254237288138;3.64;3.59016393442623;3.541935483870968;3.4952380952380957;3.45;3.4061538461538463;3.3636363636363638;3.3223880597014928;3.282352941176471;3.2434782608695656;3.2057142857142855;3.169014084507042;3.1333333333333337;3.0986301369863014;3.064864864864865;3.032;3.0;2.968831168831169;2.9384615384615387;2.9088607594936713;2.8800000000000003;2.851851851851852;2.8243902439024393;2.797590361445783;2.7714285714285714;2.7458823529411767;2.72093023255814;2.6965517241379313;2.672727272727273;2.649438202247191;2.626666666666667;2.6043956043956045;2.5826086956521737;2.5612903225806454;2.540425531914894;2.5200000000000005;2.5;2.4804123711340207;2.4612244897959186;2.4424242424242424;2.4240000000000004;2.4059405940594063;2.3882352941176475;2.370873786407767;2.353846153846154;2.337142857142857;2.3207547169811322;2.304672897196262;2.2888888888888888;2.2733944954128438;2.2581818181818183;2.2432432432432434;2.2285714285714286;2.2141592920353985;2.2;2.1860869565217396;2.1724137931034484;2.1589743589743593;2.145762711864407;2.132773109243698;2.12;2.107438016528926;2.0950819672131145;2.0829268292682928;2.070967741935484;2.0592;2.0476190476190474;2.036220472440945;2.025;2.0139534883720933;2.0030769230769234;1.9923664122137408;1.981818181818182;1.9714285714285715;1.9611940298507464;1.951111111111111;1.9411764705882355;1.9313868613138685;1.9217391304347828
32;4.4125;4.33469387755102;4.26;4.188235294117647;4.11923076923077;4.052830188679246;3.988888888888889;3.9272727272727272;3.867857142857143;3.810526315789474;3.7551724137931037;3.7016949152542376;3.6500000000000004;3.6;3.5516129032258066;3.5047619047619047;3.4593750000000005;3.4153846153846157;3.372727272727273;3.3313432835820898;3.291176470588235;3.252173913043478;3.2142857142857144;3.1774647887323946;3.141666666666667;3.1068493150684935;3.0729729729729733;3.04;3.0078947368421054;2.976623376623377;2.9461538461538463;2.916455696202532;2.8875;2.8592592592592596;2.831707317073171;2.8048192771084337;2.7785714285714285;2.7529411764705882;2.727906976744186;2.703448275862069;2.6795454545454547;2.656179775280899;2.6333333333333333;2.610989010989011;2.589130434782609;2.567741935483871;2.5468085106382983;2.5263157894736845;2.50625;2.48659793814433;2.4673469387755103;2.4484848484848487;2.43;2.4118811881188122;2.394117647058824;2.376699029126214;2.3596153846153847;2.342857142857143;2.3264150943396227;2.310280373831776;2.2944444444444443;2.2788990825688074;2.2636363636363637;2.2486486486486488;2.2339285714285717;2.2194690265486727;2.205263157894737;2.191304347826087;2.177586206896552;2.1641025641025644;2.1508474576271186;2.1378151260504206;2.125;2.112396694214876;2.1;2.0878048780487806;2.075806451612903;2.064;2.052380952380952;2.040944881889764;2.0296875;2.018604651162791;2.007692307692308;1.9969465648854965;1.9863636363636363;1.9759398496240603;1.965671641791045;1.9555555555555557;1.9455882352941176;1.9357664233576646
33;4.506382978723405;4.425000000000001;4.346938775510204;4.272;4.2;4.130769230769231;4.064150943396227;4.0;3.9381818181818184;3.878571428571429;3.8210526315789473;3.7655172413793103;3.711864406779661;3.66;3.609836065573771;3.5612903225806454;3.5142857142857147;3.46875;3.424615384615385;3.3818181818181823;3.3402985074626868;3.3000000000000003;3.260869565217391;3.2228571428571433;3.1859154929577467;3.1500000000000004;3.115068493150685;3.0810810810810816;3.048;3.015789473684211;2.9844155844155846;2.953846153846154;2.9240506329113924;2.8950000000000005;2.866666666666667;2.8390243902439023;2.8120481927710843;2.7857142857142856;2.76;2.734883720930233;2.7103448275862068;2.6863636363636365;2.662921348314607;2.6399999999999997;2.6175824175824176;2.5956521739130434;2.574193548387097;2.5531914893617023;2.5326315789473686;2.5125;2.492783505154639;2.4734693877551024;2.4545454545454546;2.436;2.417821782178218;2.4000000000000004;2.3825242718446606;2.3653846153846154;2.3485714285714288;2.332075471698113;2.3158878504672895;2.3;2.284403669724771;2.2690909090909095;2.2540540540540546;2.2392857142857148;2.224778761061947;2.210526315789474;2.1965217391304352;2.1827586206896554;2.1692307692307695;2.1559322033898307;2.142857142857143;2.13;2.1173553719008265;2.1049180327868853;2.0926829268292684;2.0806451612903225;2.0688;2.057142857142857;2.0456692913385828;2.0343750000000003;2.0232558139534884;2.0123076923076924;2.001526717557252;1.9909090909090912;1.9804511278195491;1.9701492537313432;1.96;1.9500000000000002
34;4.604347826086957;4.519148936170213;4.4375;4.359183673469388;4.284;4.211764705882353;4.142307692307693;4.075471698113208;4.011111111111111;3.949090909090909;3.8892857142857142;3.8315789473684214;3.775862068965518;3.722033898305085;3.6700000000000004;3.6196721311475413;3.570967741935484;3.5238095238095237;3.4781250000000004;3.433846153846154;3.390909090909091;3.3492537313432837;3.3088235294117645;3.2695652173913046;3.2314285714285718;3.1943661971830988;3.1583333333333337;3.1232876712328768;3.0891891891891894;3.056;3.0236842105263158;2.9922077922077923;2.9615384615384617;2.9316455696202537;2.9025;2.8740740740740742;2.8463414634146345;2.8192771084337354;2.792857142857143;2.767058823529412;2.7418604651162792;2.717241379310345;2.6931818181818183;2.6696629213483147;2.6466666666666665;2.6241758241758246;2.6021739130434787;2.580645161290323;2.5595744680851067;2.538947368421053;2.51875;2.4989690721649485;2.479591836734694;2.460606060606061;2.442;2.423762376237624;2.405882352941177;2.388349514563107;2.371153846153846;2.354285714285714;2.337735849056604;2.321495327102804;2.305555555555556;2.289908256880734;2.274545454545455;2.2594594594594595;2.2446428571428574;2.2300884955752216;2.215789473684211;2.201739130434783;2.1879310344827587;2.1743589743589746;2.1610169491525424;2.147899159663866;2.135;2.1223140495867767;2.1098360655737705;2.097560975609756;2.0854838709677423;2.0736;2.061904761904762;2.0503937007874016;2.0390625;2.027906976744186;2.016923076923077;2.006106870229008;1.9954545454545456;1.9849624060150377;1.9746268656716417;1.9644444444444447
35;4.706666666666667;4.6173913043478265;4.531914893617022;4.45;4.371428571428572;4.296;4.223529411764707;4.153846153846154;4.086792452830188;4.022222222222222;3.96;3.9;3.8421052631578947;3.7862068965517244;3.7322033898305085;3.68;3.6295081967213116;3.580645161290323;3.533333333333333;3.4875000000000003;3.4430769230769234;3.4000000000000004;3.3582089552238807;3.3176470588235296;3.2782608695652176;3.24;3.202816901408451;3.166666666666667;3.131506849315069;3.097297297297297;3.064;3.0315789473684216;3.0;2.9692307692307693;2.9392405063291145;2.91;2.8814814814814813;2.8536585365853657;2.8265060240963855;2.8;2.774117647058824;2.7488372093023257;2.7241379310344827;2.7;2.676404494382022;2.6533333333333333;2.630769230769231;2.608695652173913;2.5870967741935487;2.5659574468085107;2.5452631578947367;2.5250000000000004;2.5051546391752577;2.4857142857142858;2.466666666666667;2.4480000000000004;2.4297029702970296;2.4117647058823533;2.3941747572815535;2.3769230769230774;2.3600000000000003;2.3433962264150945;2.327102803738318;2.3111111111111113;2.295412844036697;2.2800000000000002;2.2648648648648653;2.25;2.235398230088496;2.2210526315789476;2.2069565217391305;2.1931034482758625;2.1794871794871797;2.1661016949152545;2.152941176470588;2.14;2.1272727272727274;2.1147540983606556;2.102439024390244;2.0903225806451613;2.0784000000000002;2.066666666666667;2.055118110236221;2.04375;2.032558139534884;2.0215384615384617;2.010687022900764;2.0;1.9894736842105263;1.9791044776119404
36;4.813636363636364;4.720000000000001;4.630434782608695;4.544680851063831;4.4625;4.383673469387755;4.308;4.235294117647059;4.165384615384616;4.09811320754717;4.033333333333333;3.970909090909091;3.910714285714286;3.852631578947369;3.7965517241379314;3.7423728813559327;3.6900000000000004;3.639344262295082;3.5903225806451617;3.542857142857143;3.496875;3.4523076923076923;3.409090909090909;3.3671641791044777;3.3264705882352947;3.286956521739131;3.248571428571429;3.211267605633803;3.1750000000000003;3.13972602739726;3.1054054054054054;3.072;3.0394736842105265;3.007792207792208;2.976923076923077;2.946835443037975;2.9175000000000004;2.8888888888888893;2.860975609756098;2.833734939759036;2.807142857142857;2.7811764705882354;2.755813953488372;2.731034482758621;2.706818181818182;2.6831460674157306;2.66;2.6373626373626378;2.6152173913043484;2.5935483870967744;2.572340425531915;2.551578947368421;2.53125;2.511340206185567;2.4918367346938775;2.4727272727272727;2.454;2.435643564356436;2.4176470588235297;2.4000000000000004;2.3826923076923077;2.3657142857142857;2.349056603773585;2.332710280373832;2.316666666666667;2.300917431192661;2.2854545454545456;2.27027027027027;2.255357142857143;2.24070796460177;2.2263157894736842;2.212173913043478;2.1982758620689657;2.184615384615385;2.171186440677966;2.157983193277311;2.145;2.1322314049586777;2.1196721311475413;2.107317073170732;2.0951612903225807;2.0832;2.0714285714285716;2.0598425196850396;2.0484375000000004;2.0372093023255817;2.0261538461538464;2.015267175572519;2.004545454545455;1.993984962406015
37;4.925581395348837;4.827272727272728;4.733333333333334;4.643478260869566;4.5574468085106385;4.4750000000000005;4.395918367346939;4.32;4.247058823529412;4.176923076923077;4.109433962264151;4.044444444444444;3.9818181818181824;3.9214285714285717;3.8631578947368426;3.806896551724138;3.752542372881356;3.7;3.6491803278688524;3.6;3.552380952380952;3.50625;3.4615384615384617;3.418181818181819;3.3761194029850747;3.335294117647059;3.2956521739130435;3.257142857142857;3.219718309859155;3.1833333333333336;3.147945205479452;3.1135135135135137;3.08;3.0473684210526315;3.015584415584416;2.9846153846153847;2.9544303797468356;2.925;2.8962962962962964;2.868292682926829;2.8409638554216867;2.814285714285714;2.788235294117647;2.7627906976744185;2.7379310344827585;2.713636363636364;2.6898876404494385;2.666666666666667;2.6439560439560443;2.621739130434783;2.6;2.578723404255319;2.5578947368421057;2.5375;2.5175257731958762;2.4979591836734696;2.4787878787878785;2.46;2.441584158415842;2.4235294117647057;2.4058252427184468;2.388461538461539;2.371428571428572;2.354716981132076;2.338317757009346;2.3222222222222224;2.3064220183486244;2.290909090909091;2.275675675675676;2.260714285714286;2.2460176991150442;2.2315789473684213;2.217391304347826;2.203448275862069;2.18974358974359;2.176271186440678;2.163025210084034;2.15;2.1371900826446284;2.1245901639344265;2.1121951219512196;2.1;2.088;2.0761904761904764;2.0645669291338584;2.053125;2.0418604651162795;2.0307692307692307;2.019847328244275;2.0090909090909093
38;5.042857142857143;4.93953488372093;4.840909090909092;4.746666666666666;4.656521739130435;4.570212765957447;4.487500000000001;4.408163265306122;4.332000000000001;4.258823529411765;4.188461538461539;4.120754716981132;4.055555555555556;3.992727272727273;3.9321428571428574;3.873684210526316;3.817241379310345;3.7627118644067803;3.71;3.6590163934426236;3.6096774193548384;3.5619047619047617;3.515625;3.470769230769231;3.4272727272727277;3.3850746268656717;3.344117647058824;3.304347826086957;3.265714285714286;3.228169014084507;3.1916666666666664;3.156164383561644;3.121621621621622;3.088;3.0552631578947373;3.0233766233766235;2.9923076923076923;2.962025316455696;2.9325;2.903703703703704;2.8756097560975613;2.8481927710843378;2.8214285714285716;2.7952941176470585;2.7697674418604654;2.744827586206897;2.7204545454545457;2.6966292134831464;2.673333333333334;2.650549450549451;2.628260869565217;2.606451612903226;2.5851063829787235;2.5642105263157893;2.54375;2.5237113402061855;2.5040816326530613;2.4848484848484853;2.466;2.4475247524752475;2.429411764705882;2.411650485436893;2.3942307692307696;2.3771428571428572;2.3603773584905663;2.3439252336448604;2.327777777777778;2.3119266055045875;2.296363636363637;2.281081081081081;2.2660714285714287;2.251327433628319;2.236842105263158;2.2226086956521742;2.2086206896551723;2.194871794871795;2.18135593220339;2.168067226890756;2.1550000000000002;2.1421487603305787;2.1295081967213116;2.1170731707317074;2.10483870967742;2.0928;2.080952380952381;2.069291338582677;2.0578125000000003;2.046511627906977;2.0353846153846153;2.0244274809160308
39;5.1658536585365855;5.057142857142857;4.953488372093023;4.8545454545454545;4.76;4.6695652173913045;4.582978723404256;4.5;4.420408163265306;4.344;4.270588235294118;4.2;4.132075471698114;4.066666666666666;4.003636363636364;3.942857142857143;3.88421052631579;3.827586206896552;3.7728813559322036;3.72;3.6688524590163936;3.6193548387096772;3.571428571428571;3.5250000000000004;3.4800000000000004;3.4363636363636365;3.3940298507462687;3.3529411764705888;3.3130434782608695;3.274285714285714;3.2366197183098593;3.2;3.164383561643836;3.12972972972973;3.096;3.0631578947368423;3.031168831168831;3.0;2.969620253164557;2.94;2.9111111111111114;2.8829268292682926;2.855421686746988;2.8285714285714283;2.802352941176471;2.776744186046512;2.751724137931035;2.7272727272727275;2.703370786516854;2.68;2.6571428571428575;2.6347826086956525;2.612903225806452;2.591489361702128;2.5705263157894738;2.5500000000000003;2.5298969072164947;2.5102040816326534;2.490909090909091;2.4720000000000004;2.4534653465346534;2.435294117647059;2.41747572815534;2.4000000000000004;2.3828571428571435;2.3660377358490567;2.349532710280374;2.3333333333333335;2.3174311926605506;2.3018181818181818;2.2864864864864867;2.2714285714285714;2.256637168141593;2.2421052631578946;2.227826086956522;2.213793103448276;2.2;2.1864406779661016;2.1731092436974793;2.16;2.147107438016529;2.134426229508197;2.1219512195121952;2.109677419354839;2.0976;2.085714285714286;2.0740157480314965;2.0625;2.0511627906976746;2.04
40;5.295;5.180487804878049;5.071428571428571;4.967441860465117;4.868181818181818;4.773333333333333;4.682608695652174;4.595744680851064;4.5125;4.4326530612244905;4.356;4.2823529411764705;4.211538461538462;4.143396226415094;4.0777777777777775;4.014545454545455;3.953571428571429;3.8947368421052633;3.837931034482759;3.7830508474576274;3.73;3.678688524590164;3.629032258064516;3.5809523809523816;3.5343750000000003;3.4892307692307694;3.4454545454545458;3.4029850746268657;3.361764705882353;3.321739130434783;3.282857142857143;3.2450704225352114;3.2083333333333335;3.1726027397260275;3.137837837837838;3.104;3.0710526315789473;3.0389610389610393;3.0076923076923077;2.9772151898734176;2.9475000000000002;2.9185185185185185;2.8902439024390243;2.862650602409638;2.8357142857142854;2.8094117647058825;2.7837209302325583;2.7586206896551726;2.7340909090909093;2.710112359550562;2.6866666666666665;2.663736263736264;2.641304347826087;2.6193548387096772;2.597872340425532;2.5768421052631583;2.5562500000000004;2.536082474226804;2.516326530612245;2.496969696969697;2.4779999999999998;2.4594059405940594;2.4411764705882355;2.423300970873787;2.405769230769231;2.388571428571429;2.3716981132075476;2.3551401869158877;2.3388888888888895;2.322935779816514;2.3072727272727276;2.291891891891892;2.2767857142857144;2.2619469026548673;2.2473684210526317;2.23304347826087;2.2189655172413794;2.2051282051282053;2.1915254237288133;2.178151260504202;2.1650000000000005;2.1520661157024796;2.139344262295082;2.126829268292683;2.1145161290322583;2.1024000000000003;2.0904761904761906;2.078740157480315;2.0671875;2.0558139534883724
41;5.430769230769231;5.3100000000000005;5.195121951219512;5.085714285714285;4.981395348837209;4.881818181818183;4.786666666666667;4.695652173913044;4.608510638297872;4.525;4.444897959183674;4.368;4.294117647058824;4.223076923076923;4.154716981132076;4.088888888888889;4.025454545454545;3.9642857142857144;3.905263157894737;3.8482758620689657;3.793220338983051;3.74;3.6885245901639347;3.638709677419355;3.590476190476191;3.54375;3.4984615384615387;3.454545454545455;3.4119402985074627;3.3705882352941177;3.330434782608696;3.291428571428572;3.253521126760564;3.216666666666667;3.1808219178082195;3.145945945945946;3.112;3.0789473684210527;3.046753246753247;3.0153846153846153;2.9848101265822784;2.955;2.925925925925926;2.897560975609756;2.869879518072289;2.8428571428571434;2.816470588235294;2.790697674418605;2.7655172413793108;2.740909090909091;2.7168539325842698;2.6933333333333334;2.6703296703296706;2.6478260869565218;2.6258064516129034;2.6042553191489364;2.583157894736842;2.5625;2.5422680412371133;2.522448979591837;2.503030303030303;2.484;2.4653465346534658;2.447058823529412;2.4291262135922334;2.411538461538462;2.394285714285714;2.3773584905660377;2.360747663551402;2.3444444444444446;2.328440366972477;2.312727272727273;2.2972972972972974;2.2821428571428575;2.2672566371681415;2.2526315789473683;2.2382608695652175;2.224137931034483;2.2102564102564104;2.1966101694915254;2.1831932773109246;2.1700000000000004;2.15702479338843;2.144262295081967;2.131707317073171;2.1193548387096777;2.1072;2.0952380952380953;2.083464566929134;2.0718750000000004
42;5.5736842105263165;5.446153846153846;5.325;5.209756097560976;5.1;4.995348837209303;4.895454545454546;4.800000000000001;4.708695652173914;4.621276595744681;4.5375;4.457142857142857;4.38;4.305882352941177;4.234615384615385;4.1660377358490575;4.1000000000000005;4.036363636363637;3.975;3.9157894736842107;3.8586206896551722;3.8033898305084746;3.75;3.698360655737705;3.6483870967741936;3.6000000000000005;3.5531250000000005;3.5076923076923077;3.463636363636364;3.4208955223880597;3.379411764705883;3.339130434782609;3.3;3.2619718309859156;3.2250000000000005;3.189041095890411;3.154054054054054;3.12;3.086842105263158;3.0545454545454547;3.023076923076923;2.992405063291139;2.9625;2.933333333333333;2.9048780487804877;2.87710843373494;2.8500000000000005;2.8235294117647065;2.797674418604651;2.772413793103448;2.747727272727273;2.723595505617978;2.7;2.676923076923077;2.6543478260869566;2.632258064516129;2.6106382978723404;2.5894736842105264;2.56875;2.5484536082474225;2.5285714285714285;2.5090909090909093;2.49;2.4712871287128717;2.4529411764705884;2.4349514563106798;2.4173076923076926;2.4000000000000004;2.3830188679245285;2.366355140186916;2.35;2.3339449541284405;2.3181818181818183;2.3027027027027027;2.2874999999999996;2.2725663716814157;2.2578947368421054;2.243478260869565;2.229310344827586;2.2153846153846155;2.2016949152542376;2.1882352941176473;2.1750000000000003;2.1619834710743806;2.1491803278688524;2.1365853658536587;2.124193548387097;2.112;2.1;2.088188976377953
43;5.724324324324325;5.589473684210526;5.461538461538462;5.34;5.224390243902439;5.114285714285714;5.009302325581396;4.909090909090909;4.8133333333333335;4.721739130434782;4.63404255319149;4.550000000000001;4.469387755102041;4.392;4.31764705882353;4.246153846153847;4.177358490566038;4.111111111111112;4.047272727272728;3.9857142857142858;3.9263157894736844;3.8689655172413797;3.8135593220338984;3.7600000000000007;3.7081967213114755;3.6580645161290324;3.60952380952381;3.5625;3.516923076923077;3.4727272727272727;3.4298507462686567;3.3882352941176475;3.347826086956522;3.3085714285714287;3.270422535211268;3.2333333333333334;3.197260273972603;3.1621621621621623;3.128;3.094736842105263;3.0623376623376624;3.0307692307692307;3.0;2.9699999999999998;2.9407407407407407;2.91219512195122;2.884337349397591;2.8571428571428577;2.830588235294118;2.804651162790698;2.779310344827586;2.754545454545455;2.7303370786516856;2.7066666666666666;2.6835164835164838;2.660869565217391;2.638709677419355;2.617021276595745;2.595789473684211;2.575;2.5546391752577318;2.53469387755102;2.5151515151515156;2.4960000000000004;2.4772277227722777;2.458823529411765;2.4407766990291266;2.4230769230769234;2.4057142857142857;2.388679245283019;2.3719626168224304;2.355555555555556;2.339449541284404;2.3236363636363637;2.308108108108108;2.2928571428571427;2.2778761061946904;2.263157894736842;2.2486956521739128;2.2344827586206897;2.2205128205128206;2.2067796610169492;2.19327731092437;2.18;2.166942148760331;2.154098360655738;2.1414634146341465;2.129032258064516;2.1168;2.104761904761905
44;5.883333333333333;5.7405405405405405;5.605263157894737;5.476923076923077;5.355;5.239024390243903;5.128571428571429;5.023255813953488;4.922727272727273;4.826666666666667;4.734782608695652;4.646808510638298;4.5625;4.481632653061225;4.404;4.329411764705883;4.257692307692308;4.188679245283019;4.122222222222222;4.058181818181819;3.996428571428572;3.9368421052631577;3.8793103448275863;3.823728813559322;3.7700000000000005;3.7180327868852463;3.667741935483871;3.619047619047619;3.5718750000000004;3.5261538461538464;3.481818181818182;3.438805970149254;3.397058823529412;3.356521739130435;3.3171428571428576;3.27887323943662;3.2416666666666667;3.205479452054795;3.1702702702702705;3.136;3.102631578947369;3.07012987012987;3.0384615384615383;3.007594936708861;2.9775;2.9481481481481486;2.9195121951219516;2.8915662650602414;2.8642857142857148;2.8376470588235296;2.811627906976744;2.7862068965517244;2.7613636363636367;2.737078651685393;2.7133333333333334;2.6901098901098903;2.6673913043478263;2.645161290322581;2.623404255319149;2.6021052631578945;2.58125;2.5608247422680415;2.5408163265306127;2.5212121212121215;2.5020000000000002;2.4831683168316836;2.4647058823529413;2.446601941747573;2.428846153846154;2.411428571428572;2.3943396226415095;2.377570093457944;2.3611111111111116;2.344954128440367;2.329090909090909;2.313513513513514;2.2982142857142858;2.2831858407079646;2.268421052631579;2.253913043478261;2.2396551724137934;2.2256410256410257;2.2118644067796613;2.1983193277310926;2.185;2.171900826446281;2.159016393442623;2.1463414634146343;2.1338709677419354;2.1216
45;6.051428571428572;5.9;5.756756756756758;5.621052631578948;5.492307692307692;5.370000000000001;5.253658536585366;5.142857142857143;5.037209302325581;4.936363636363637;4.84;4.747826086956522;4.659574468085107;4.575;4.493877551020408;4.416;4.341176470588236;4.26923076923077;4.2;4.133333333333334;4.069090909090909;4.007142857142857;3.947368421052632;3.8896551724137938;3.8338983050847464;3.7800000000000002;3.7278688524590167;3.67741935483871;3.6285714285714286;3.58125;3.535384615384616;3.490909090909091;3.4477611940298507;3.405882352941177;3.3652173913043484;3.3257142857142856;3.287323943661972;3.25;3.2136986301369865;3.1783783783783783;3.144;3.110526315789474;3.0779220779220777;3.046153846153846;3.0151898734177216;2.9850000000000003;2.9555555555555557;2.926829268292683;2.8987951807228916;2.871428571428572;2.844705882352941;2.818604651162791;2.793103448275862;2.7681818181818185;2.7438202247191015;2.72;2.696703296703297;2.673913043478261;2.6516129032258062;2.629787234042553;2.608421052631579;2.5875000000000004;2.567010309278351;2.5469387755102044;2.5272727272727273;2.508;2.4891089108910895;2.4705882352941178;2.4524271844660195;2.434615384615385;2.4171428571428573;2.4000000000000004;2.383177570093458;2.366666666666667;2.3504587155963304;2.334545454545455;2.3189189189189188;2.303571428571429;2.288495575221239;2.2736842105263158;2.259130434782609;2.2448275862068967;2.230769230769231;2.216949152542373;2.2033613445378153;2.1900000000000004;2.1768595041322314;2.1639344262295084;2.151219512195122;2.138709677419355
46;6.229411764705882;6.0685714285714285;5.916666666666667;5.7729729729729735;5.636842105263158;5.507692307692308;5.385;5.26829268292683;5.1571428571428575;5.051162790697674;4.95;4.8533333333333335;4.760869565217392;4.672340425531916;4.5875;4.506122448979592;4.428000000000001;4.352941176470589;4.280769230769231;4.211320754716981;4.144444444444445;4.08;4.017857142857143;3.957894736842106;3.9000000000000004;3.8440677966101697;3.79;3.737704918032787;3.6870967741935488;3.638095238095238;3.590625;3.544615384615385;3.5;3.456716417910448;3.4147058823529415;3.373913043478261;3.3342857142857145;3.295774647887324;3.2583333333333337;3.221917808219178;3.1864864864864866;3.152;3.1184210526315788;3.0857142857142854;3.0538461538461537;3.0227848101265824;2.9925;2.9629629629629632;2.934146341463415;2.9060240963855426;2.878571428571429;2.851764705882353;2.8255813953488373;2.8;2.7750000000000004;2.750561797752809;2.7266666666666666;2.7032967032967035;2.6804347826086956;2.6580645161290324;2.6361702127659576;2.614736842105263;2.59375;2.57319587628866;2.553061224489796;2.5333333333333337;2.5140000000000002;2.4950495049504955;2.476470588235294;2.4582524271844663;2.440384615384615;2.422857142857143;2.4056603773584904;2.388785046728972;2.3722222222222222;2.3559633027522935;2.34;2.3243243243243246;2.3089285714285714;2.2938053097345135;2.278947368421053;2.2643478260869565;2.2500000000000004;2.235897435897436;2.2220338983050847;2.208403361344538;2.1950000000000003;2.1818181818181817;2.1688524590163936;2.15609756097561
47;6.418181818181818;6.247058823529413;6.085714285714286;5.933333333333334;5.789189189189189;5.652631578947369;5.523076923076924;5.4;5.282926829268293;5.171428571428572;5.065116279069768;4.963636363636364;4.866666666666667;4.773913043478261;4.685106382978724;4.6000000000000005;4.518367346938776;4.44;4.364705882352942;4.292307692307692;4.222641509433963;4.155555555555556;4.090909090909091;4.028571428571429;3.9684210526315793;3.910344827586207;3.8542372881355935;3.8;3.747540983606558;3.6967741935483875;3.647619047619048;3.6000000000000005;3.553846153846154;3.5090909090909097;3.4656716417910447;3.423529411764706;3.3826086956521744;3.3428571428571434;3.3042253521126765;3.2666666666666666;3.2301369863013702;3.1945945945945944;3.16;3.126315789473684;3.093506493506494;3.061538461538462;3.030379746835443;3.0000000000000004;2.9703703703703708;2.9414634146341463;2.9132530120481928;2.885714285714286;2.858823529411765;2.832558139534884;2.8068965517241384;2.781818181818182;2.757303370786517;2.7333333333333334;2.70989010989011;2.6869565217391305;2.664516129032258;2.6425531914893616;2.621052631578948;2.6000000000000005;2.5793814432989697;2.559183673469388;2.53939393939394;2.52;2.5009900990099014;2.4823529411764707;2.4640776699029128;2.4461538461538463;2.428571428571429;2.4113207547169813;2.394392523364486;2.377777777777778;2.3614678899082566;2.3454545454545457;2.3297297297297295;2.3142857142857145;2.299115044247788;2.28421052631579;2.2695652173913046;2.2551724137931037;2.241025641025641;2.227118644067797;2.2134453781512606;2.2;2.1867768595041324;2.173770491803279
48;6.61875;6.4363636363636365;6.264705882352942;6.102857142857143;5.95;5.805405405405406;5.6684210526315795;5.538461538461538;5.415;5.297560975609756;5.185714285714286;5.07906976744186;4.9772727272727275;4.880000000000001;4.786956521739131;4.697872340425532;4.612500000000001;4.530612244897959;4.452;4.376470588235295;4.303846153846154;4.233962264150943;4.166666666666667;4.1018181818181825;4.039285714285715;3.978947368421053;3.920689655172414;3.8644067796610173;3.81;3.757377049180328;3.706451612903226;3.6571428571428575;3.609375;3.563076923076923;3.5181818181818185;3.4746268656716417;3.432352941176471;3.391304347826087;3.3514285714285714;3.312676056338028;3.2750000000000004;3.2383561643835614;3.2027027027027026;3.168;3.1342105263157896;3.1012987012987017;3.0692307692307694;3.037974683544304;3.0075000000000003;2.977777777777778;2.9487804878048784;2.920481927710844;2.8928571428571432;2.8658823529411768;2.8395348837209307;2.813793103448276;2.7886363636363636;2.764044943820225;2.74;2.7164835164835166;2.693478260869565;2.670967741935484;2.6489361702127665;2.6273684210526316;2.60625;2.585567010309279;2.5653061224489795;2.545454545454546;2.5260000000000002;2.5069306930693074;2.488235294117647;2.469902912621359;2.451923076923077;2.434285714285714;2.4169811320754717;2.4000000000000004;2.3833333333333337;2.36697247706422;2.350909090909091;2.3351351351351353;2.319642857142857;2.304424778761062;2.2894736842105265;2.274782608695652;2.260344827586207;2.246153846153846;2.2322033898305085;2.2184873949579833;2.205;2.1917355371900826
49;6.832258064516129;6.6375;6.454545454545455;6.282352941176471;6.12;5.966666666666667;5.821621621621622;5.684210526315789;5.553846153846154;5.430000000000001;5.31219512195122;5.2;5.093023255813954;4.990909090909091;4.8933333333333335;4.800000000000001;4.710638297872341;4.625;4.542857142857143;4.464;4.3882352941176475;4.315384615384616;4.245283018867925;4.177777777777779;4.112727272727273;4.050000000000001;3.9894736842105267;3.931034482758621;3.8745762711864407;3.82;3.7672131147540986;3.716129032258065;3.666666666666667;3.6187500000000004;3.5723076923076924;3.5272727272727273;3.4835820895522387;3.4411764705882355;3.4000000000000004;3.3600000000000003;3.3211267605633803;3.283333333333333;3.2465753424657535;3.210810810810811;3.176;3.1421052631578954;3.1090909090909093;3.0769230769230775;3.045569620253165;3.015;2.9851851851851854;2.9560975609756097;2.927710843373494;2.9000000000000004;2.8729411764705883;2.8465116279069766;2.820689655172414;2.795454545454546;2.7707865168539327;2.7466666666666666;2.723076923076923;2.7;2.67741935483871;2.6553191489361705;2.633684210526316;2.6125000000000003;2.5917525773195877;2.5714285714285716;2.5515151515151517;2.532;2.512871287128713;2.4941176470588236;2.475728155339806;2.457692307692308;2.4400000000000004;2.422641509433962;2.405607476635514;2.3888888888888893;2.372477064220184;2.3563636363636364;2.340540540540541;2.325;2.3097345132743365;2.294736842105263;2.2800000000000002;2.2655172413793103;2.2512820512820513;2.2372881355932206;2.223529411764706;2.21
50;7.0600000000000005;6.851612903225806;6.65625;6.472727272727273;6.300000000000001;6.137142857142857;5.983333333333334;5.837837837837839;5.700000000000001;5.569230769230769;5.445;5.326829268292682;5.214285714285714;5.106976744186047;5.004545454545455;4.906666666666667;4.8130434782608695;4.723404255319149;4.6375;4.555102040816327;4.476000000000001;4.4;4.326923076923077;4.256603773584906;4.188888888888889;4.123636363636364;4.060714285714286;4.0;3.9413793103448276;3.8847457627118644;3.83;3.7770491803278694;3.725806451612903;3.6761904761904765;3.6281250000000003;3.581538461538462;3.536363636363636;3.492537313432836;3.45;3.408695652173913;3.3685714285714288;3.3295774647887324;3.291666666666667;3.254794520547945;3.218918918918919;3.184;3.1500000000000004;3.116883116883117;3.084615384615385;3.0531645569620256;3.0225;2.992592592592593;2.963414634146342;2.9349397590361446;2.9071428571428575;2.88;2.8534883720930235;2.8275862068965516;2.8022727272727277;2.7775280898876407;2.7533333333333334;2.7296703296703297;2.706521739130435;2.683870967741936;2.6617021276595745;2.6400000000000006;2.6187500000000004;2.597938144329897;2.5775510204081638;2.5575757575757576;2.5380000000000003;2.5188118811881193;2.5;2.4815533980582525;2.463461538461538;2.4457142857142857;2.428301886792453;2.411214953271028;2.3944444444444444;2.377981651376147;2.3618181818181823;2.345945945945946;2.3303571428571432;2.3150442477876108;2.3000000000000003;2.2852173913043483;2.270689655172414;2.2564102564102564;2.2423728813559323;2.2285714285714286
51;7.30344827586207;7.08;6.870967741935484;6.675000000000001;6.49090909090909;6.31764705882353;6.154285714285715;6.0;5.854054054054054;5.715789473684211;5.584615384615385;5.46;5.341463414634147;5.228571428571429;5.120930232558139;5.0181818181818185;4.92;4.826086956521739;4.736170212765957;4.65;4.56734693877551;4.4879999999999995;4.411764705882353;4.338461538461539;4.267924528301887;4.2;4.134545454545455;4.071428571428571;4.010526315789473;3.951724137931035;3.8949152542372882;3.8400000000000003;3.7868852459016393;3.7354838709677423;3.685714285714286;3.6375;3.590769230769231;3.545454545454546;3.501492537313433;3.458823529411765;3.4173913043478263;3.3771428571428572;3.3380281690140845;3.3;3.263013698630137;3.2270270270270274;3.192;3.1578947368421053;3.1246753246753247;3.092307692307693;3.0607594936708864;3.0300000000000002;3.0;2.970731707317073;2.942168674698795;2.9142857142857146;2.887058823529412;2.86046511627907;2.8344827586206898;2.8090909090909095;2.784269662921348;2.7600000000000002;2.7362637362637363;2.71304347826087;2.690322580645162;2.6680851063829794;2.646315789473684;2.625;2.6041237113402067;2.5836734693877554;2.563636363636364;2.5440000000000005;2.5247524752475248;2.5058823529411764;2.487378640776699;2.4692307692307693;2.451428571428571;2.4339622641509435;2.416822429906542;2.4;2.38348623853211;2.3672727272727276;2.3513513513513518;2.335714285714286;2.320353982300885;2.3052631578947373;2.290434782608696;2.2758620689655173;2.2615384615384615;2.247457627118644
52;7.564285714285715;7.324137931034484;7.1000000000000005;6.890322580645162;6.69375;6.50909090909091;6.335294117647059;6.171428571428572;6.0166666666666675;5.870270270270271;5.731578947368421;5.6;5.4750000000000005;5.35609756097561;5.242857142857143;5.134883720930233;5.031818181818182;4.933333333333334;4.839130434782609;4.748936170212766;4.6625;4.579591836734695;4.5;4.423529411764706;4.35;4.279245283018868;4.211111111111111;4.1454545454545455;4.082142857142857;4.021052631578947;3.9620689655172416;3.9050847457627125;3.85;3.79672131147541;3.745161290322581;3.6952380952380954;3.646875;3.6;3.5545454545454547;3.5104477611940297;3.4676470588235295;3.4260869565217393;3.3857142857142857;3.3464788732394366;3.3083333333333336;3.271232876712329;3.2351351351351356;3.2;3.1657894736842107;3.132467532467533;3.1;3.068354430379747;3.0375000000000005;3.0074074074074075;2.9780487804878053;2.949397590361446;2.9214285714285717;2.894117647058824;2.8674418604651164;2.8413793103448275;2.8159090909090905;2.7910112359550565;2.766666666666667;2.742857142857143;2.7195652173913047;2.6967741935483875;2.6744680851063833;2.6526315789473687;2.63125;2.610309278350516;2.589795918367347;2.56969696969697;2.5500000000000003;2.530693069306931;2.511764705882353;2.4932038834951458;2.475;2.4571428571428573;2.439622641509434;2.4224299065420563;2.405555555555556;2.3889908256880736;2.372727272727273;2.3567567567567567;2.3410714285714285;2.3256637168141596;2.310526315789474;2.2956521739130435;2.2810344827586206;2.2666666666666666
53;7.844444444444445;7.585714285714286;7.344827586206897;7.12;6.909677419354839;6.7125;6.527272727272727;6.352941176470589;6.188571428571429;6.033333333333333;5.886486486486487;5.747368421052632;5.615384615384616;5.49;5.3707317073170735;5.257142857142858;5.148837209302326;5.045454545454546;4.946666666666667;4.852173913043479;4.761702127659575;4.675000000000001;4.591836734693878;4.5120000000000005;4.435294117647059;4.361538461538462;4.290566037735849;4.222222222222222;4.156363636363636;4.0928571428571425;4.031578947368422;3.972413793103449;3.915254237288136;3.8600000000000003;3.806557377049181;3.7548387096774194;3.704761904761905;3.65625;3.609230769230769;3.5636363636363635;3.519402985074627;3.476470588235294;3.4347826086956523;3.394285714285714;3.3549295774647887;3.3166666666666673;3.279452054794521;3.243243243243244;3.208;3.173684210526316;3.1402597402597405;3.107692307692308;3.075949367088608;3.045;3.014814814814815;2.9853658536585366;2.9566265060240964;2.928571428571429;2.9011764705882355;2.874418604651163;2.8482758620689657;2.8227272727272728;2.7977528089887644;2.7733333333333334;2.7494505494505495;2.7260869565217396;2.7032258064516133;2.6808510638297873;2.658947368421053;2.6375;2.6164948453608248;2.595918367346939;2.575757575757576;2.556;2.5366336633663367;2.5176470588235293;2.499029126213592;2.480769230769231;2.4628571428571426;2.4452830188679244;2.4280373831775703;2.4111111111111114;2.394495412844037;2.3781818181818184;2.3621621621621625;2.3464285714285715;2.330973451327434;2.3157894736842106;2.3008695652173916;2.2862068965517244
54;8.146153846153847;7.866666666666667;7.607142857142858;7.36551724137931;7.140000000000001;6.929032258064517;6.731250000000001;6.545454545454546;6.370588235294118;6.205714285714286;6.050000000000001;5.902702702702703;5.7631578947368425;5.63076923076923;5.505000000000001;5.385365853658537;5.271428571428572;5.162790697674419;5.059090909090909;4.960000000000001;4.865217391304348;4.774468085106383;4.6875;4.604081632653061;4.524000000000001;4.447058823529412;4.3730769230769235;4.30188679245283;4.233333333333333;4.167272727272727;4.103571428571429;4.042105263157895;3.9827586206896552;3.92542372881356;3.87;3.8163934426229513;3.764516129032258;3.7142857142857144;3.6656250000000004;3.6184615384615384;3.5727272727272728;3.5283582089552237;3.485294117647059;3.443478260869565;3.402857142857143;3.3633802816901412;3.325;3.287671232876713;3.2513513513513517;3.216;3.181578947368421;3.1480519480519487;3.115384615384616;3.083544303797469;3.0525;3.022222222222222;2.9926829268292687;2.9638554216867474;2.935714285714286;2.908235294117647;2.8813953488372093;2.8551724137931034;2.829545454545455;2.8044943820224724;2.7800000000000002;2.7560439560439565;2.732608695652174;2.709677419354839;2.6872340425531918;2.665263157894737;2.64375;2.6226804123711345;2.6020408163265305;2.581818181818182;2.5620000000000003;2.5425742574257426;2.523529411764706;2.5048543689320386;2.4865384615384616;2.468571428571429;2.4509433962264153;2.433644859813084;2.416666666666667;2.4000000000000004;2.3836363636363638;2.367567567567568;2.3517857142857146;2.336283185840708;2.3210526315789473;2.3060869565217397
55;8.472000000000001;8.169230769230769;7.888888888888889;7.628571428571428;7.386206896551725;7.16;6.948387096774194;6.75;6.563636363636364;6.3882352941176475;6.222857142857142;6.066666666666666;5.918918918918919;5.778947368421052;5.646153846153847;5.52;5.4;5.2857142857142865;5.176744186046512;5.072727272727273;4.973333333333334;4.878260869565217;4.787234042553191;4.700000000000001;4.616326530612245;4.5360000000000005;4.458823529411765;4.384615384615385;4.313207547169812;4.2444444444444445;4.178181818181819;4.114285714285715;4.052631578947369;3.9931034482758623;3.9355932203389834;3.88;3.8262295081967213;3.774193548387097;3.723809523809524;3.675;3.6276923076923078;3.581818181818182;3.5373134328358207;3.4941176470588236;3.4521739130434783;3.411428571428572;3.3718309859154934;3.333333333333334;3.2958904109589042;3.2594594594594595;3.224;3.1894736842105265;3.1558441558441563;3.1230769230769235;3.091139240506329;3.0600000000000005;3.0296296296296297;3.0;2.9710843373493976;2.942857142857143;2.9152941176470586;2.888372093023256;2.862068965517242;2.836363636363637;2.81123595505618;2.786666666666667;2.7626373626373626;2.739130434782609;2.716129032258065;2.693617021276596;2.6715789473684213;2.6500000000000004;2.6288659793814437;2.6081632653061226;2.587878787878788;2.568;2.5485148514851486;2.5294117647058822;2.5106796116504855;2.4923076923076923;2.4742857142857146;2.456603773584906;2.4392523364485985;2.4222222222222225;2.4055045871559635;2.3890909090909096;2.372972972972973;2.357142857142857;2.3415929203539827;2.3263157894736843
56;8.825;8.496;8.192307692307693;7.911111111111111;7.65;7.406896551724138;7.1800000000000015;6.967741935483872;6.768750000000001;6.581818181818182;6.405882352941177;6.24;6.083333333333334;5.935135135135136;5.794736842105264;5.661538461538462;5.535;5.414634146341464;5.300000000000001;5.190697674418605;5.086363636363637;4.986666666666666;4.891304347826087;4.800000000000001;4.7125;4.628571428571428;4.548;4.470588235294118;4.3961538461538465;4.324528301886792;4.2555555555555555;4.189090909090909;4.125;4.063157894736842;4.00344827586207;3.9457627118644067;3.8899999999999997;3.836065573770492;3.7838709677419358;3.7333333333333334;3.684375;3.636923076923077;3.590909090909091;3.5462686567164177;3.5029411764705882;3.4608695652173918;3.4200000000000004;3.3802816901408455;3.341666666666667;3.3041095890410963;3.2675675675675677;3.232;3.197368421052632;3.163636363636364;3.130769230769231;3.09873417721519;3.0675;3.037037037037037;3.0073170731707317;2.978313253012048;2.95;2.9223529411764706;2.8953488372093026;2.8689655172413797;2.8431818181818187;2.8179775280898878;2.793333333333334;2.769230769230769;2.7456521739130437;2.7225806451612904;2.7;2.6778947368421058;2.65625;2.6350515463917525;2.614285714285714;2.5939393939393938;2.574;2.5544554455445545;2.5352941176470587;2.5165048543689323;2.4980769230769235;2.4800000000000004;2.4622641509433967;2.444859813084112;2.427777777777778;2.4110091743119266;2.3945454545454545;2.3783783783783785;2.3625000000000003;2.346902654867257
57;9.208695652173914;8.850000000000001;8.52;8.215384615384615;7.933333333333334;7.671428571428573;7.427586206896553;7.200000000000001;6.987096774193549;6.7875000000000005;6.6000000000000005;6.423529411764706;6.257142857142858;6.1;5.951351351351352;5.810526315789474;5.676923076923077;5.550000000000001;5.429268292682927;5.314285714285715;5.2046511627906975;5.1000000000000005;5.0;4.904347826086957;4.812765957446809;4.7250000000000005;4.640816326530612;4.5600000000000005;4.482352941176471;4.407692307692308;4.335849056603774;4.2666666666666675;4.2;4.135714285714286;4.0736842105263165;4.013793103448276;3.955932203389831;3.9000000000000004;3.8459016393442624;3.7935483870967746;3.742857142857143;3.69375;3.6461538461538456;3.6;3.5552238805970147;3.5117647058823533;3.4695652173913043;3.428571428571429;3.3887323943661976;3.3500000000000005;3.312328767123288;3.275675675675676;3.24;3.205263157894737;3.1714285714285717;3.138461538461539;3.1063291139240508;3.075;3.0444444444444443;3.0146341463414634;2.985542168674699;2.9571428571428573;2.9294117647058826;2.902325581395349;2.8758620689655174;2.8500000000000005;2.8247191011235957;2.8;2.7758241758241757;2.752173913043478;2.729032258064516;2.706382978723404;2.6842105263157894;2.6625;2.641237113402062;2.6204081632653065;2.6;2.58;2.5603960396039604;2.541176470588235;2.5223300970873788;2.503846153846154;2.4857142857142858;2.467924528301887;2.4504672897196267;2.4333333333333336;2.4165137614678898;2.4000000000000004;2.383783783783784;2.367857142857143
58;9.627272727272729;9.234782608695653;8.875;8.544;8.23846153846154;7.955555555555556;7.692857142857143;7.448275862068966;7.220000000000001;7.006451612903226;6.80625;6.618181818181819;6.4411764705882355;6.274285714285714;6.116666666666667;5.967567567567568;5.826315789473685;5.6923076923076925;5.5649999999999995;5.443902439024391;5.328571428571429;5.21860465116279;5.113636363636363;5.013333333333334;4.917391304347826;4.825531914893617;4.737500000000001;4.653061224489797;4.572000000000001;4.4941176470588236;4.4192307692307695;4.3471698113207555;4.277777777777779;4.210909090909091;4.146428571428572;4.08421052631579;4.024137931034483;3.9661016949152543;3.91;3.855737704918033;3.803225806451613;3.7523809523809524;3.703125;3.655384615384615;3.6090909090909093;3.5641791044776125;3.520588235294118;3.4782608695652177;3.4371428571428577;3.3971830985915497;3.3583333333333334;3.3205479452054796;3.283783783783784;3.248;3.2131578947368427;3.1792207792207794;3.1461538461538465;3.1139240506329116;3.0825;3.0518518518518523;3.0219512195121947;2.9927710843373494;2.9642857142857144;2.936470588235294;2.909302325581396;2.8827586206896556;2.8568181818181824;2.8314606741573036;2.8066666666666666;2.7824175824175827;2.7586956521739134;2.735483870967742;2.7127659574468086;2.690526315789474;2.66875;2.6474226804123715;2.626530612244898;2.606060606060606;2.5860000000000003;2.5663366336633664;2.547058823529412;2.528155339805825;2.509615384615385;2.4914285714285715;2.4735849056603776;2.4560747663551403;2.438888888888889;2.4220183486238533;2.4054545454545453;2.3891891891891897
59;10.085714285714285;9.654545454545456;9.26086956521739;8.9;8.568;8.261538461538462;7.977777777777778;7.714285714285715;7.468965517241379;7.24;7.025806451612904;6.825;6.636363636363637;6.458823529411765;6.291428571428572;6.133333333333334;5.983783783783784;5.842105263157896;5.707692307692309;5.58;5.458536585365854;5.342857142857143;5.232558139534884;5.127272727272728;5.026666666666667;4.930434782608696;4.838297872340426;4.75;4.66530612244898;4.584;4.5058823529411764;4.430769230769231;4.358490566037736;4.28888888888889;4.221818181818183;4.1571428571428575;4.094736842105263;4.03448275862069;3.976271186440678;3.92;3.865573770491803;3.8129032258064517;3.761904761904762;3.7125;3.6646153846153844;3.6181818181818186;3.5731343283582095;3.5294117647058827;3.4869565217391307;3.4457142857142857;3.4056338028169018;3.366666666666667;3.3287671232876717;3.291891891891892;3.2560000000000002;3.2210526315789476;3.187012987012987;3.153846153846154;3.1215189873417724;3.09;3.0592592592592593;3.029268292682927;3.0000000000000004;2.9714285714285715;2.9435294117647066;2.916279069767442;2.8896551724137933;2.863636363636364;2.8382022471910116;2.8133333333333335;2.789010989010989;2.765217391304348;2.741935483870968;2.719148936170213;2.696842105263158;2.6750000000000003;2.6536082474226803;2.63265306122449;2.6121212121212123;2.5919999999999996;2.572277227722773;2.5529411764705885;2.533980582524272;2.5153846153846158;2.4971428571428573;2.479245283018868;2.4616822429906544;2.4444444444444446;2.427522935779817;2.410909090909091
60;10.59;10.114285714285714;9.681818181818183;9.286956521739132;8.925;8.592;8.284615384615385;8.0;7.735714285714286;7.489655172413793;7.26;7.04516129032258;6.84375;6.654545454545454;6.476470588235294;6.30857142857143;6.15;6.0;5.8578947368421055;5.723076923076924;5.595000000000001;5.4731707317073175;5.357142857142858;5.246511627906977;5.1409090909090915;5.04;4.943478260869566;4.851063829787234;4.7625;4.677551020408163;4.596;4.517647058823529;4.4423076923076925;4.369811320754717;4.300000000000001;4.2327272727272724;4.167857142857143;4.105263157894737;4.044827586206897;3.986440677966102;3.9300000000000006;3.8754098360655735;3.8225806451612905;3.7714285714285714;3.721875;3.6738461538461546;3.627272727272728;3.5820895522388065;3.5382352941176474;3.4956521739130437;3.4542857142857146;3.414084507042254;3.375;3.336986301369863;3.3000000000000003;3.2640000000000002;3.2289473684210526;3.1948051948051948;3.161538461538462;3.1291139240506327;3.0975;3.0666666666666664;3.036585365853659;3.007228915662651;2.9785714285714286;2.950588235294118;2.9232558139534888;2.8965517241379315;2.8704545454545456;2.844943820224719;2.8200000000000003;2.795604395604396;2.7717391304347827;2.7483870967741932;2.725531914893617;2.703157894736842;2.6812500000000004;2.6597938144329896;2.6387755102040815;2.618181818181818;2.598;2.5782178217821783;2.558823529411765;2.539805825242719;2.5211538461538465;2.502857142857143;2.4849056603773585;2.4672897196261685;2.45;2.43302752293578
61;11.147368421052633;10.620000000000001;10.142857142857142;9.709090909090909;9.31304347826087;8.950000000000001;8.616;8.307692307692308;8.022222222222222;7.757142857142858;7.5103448275862075;7.28;7.064516129032258;6.862500000000001;6.672727272727274;6.4941176470588236;6.325714285714286;6.166666666666667;6.0162162162162165;5.873684210526315;5.7384615384615385;5.61;5.487804878048781;5.371428571428572;5.26046511627907;5.154545454545455;5.053333333333334;4.9565217391304355;4.863829787234042;4.775;4.689795918367347;4.6080000000000005;4.529411764705882;4.453846153846154;4.381132075471698;4.311111111111112;4.243636363636364;4.178571428571429;4.115789473684211;4.055172413793104;3.9966101694915253;3.9400000000000004;3.8852459016393444;3.832258064516129;3.780952380952381;3.73125;3.683076923076923;3.6363636363636367;3.5910447761194035;3.547058823529412;3.5043478260869567;3.462857142857143;3.422535211267606;3.3833333333333333;3.345205479452055;3.308108108108108;3.2720000000000002;3.2368421052631584;3.2025974025974024;3.169230769230769;3.1367088607594935;3.105;3.0740740740740744;3.0439024390243903;3.014457831325301;2.9857142857142858;2.9576470588235297;2.930232558139535;2.903448275862069;2.8772727272727274;2.8516853932584274;2.826666666666667;2.802197802197802;2.7782608695652176;2.7548387096774194;2.7319148936170214;2.7094736842105265;2.6875;2.6659793814432993;2.644897959183673;2.6242424242424245;2.604;2.5841584158415847;2.5647058823529414;2.545631067961165;2.5269230769230773;2.508571428571429;2.4905660377358494;2.472897196261682;2.4555555555555557
62;11.766666666666666;11.178947368421053;10.65;10.17142857142857;9.736363636363636;9.339130434782609;8.975000000000001;8.64;8.330769230769231;8.044444444444444;7.7785714285714285;7.531034482758621;7.300000000000001;7.083870967741936;6.8812500000000005;6.690909090909091;6.511764705882354;6.342857142857143;6.183333333333334;6.032432432432433;5.889473684210527;5.753846153846154;5.625;5.502439024390245;5.385714285714286;5.274418604651164;5.168181818181818;5.066666666666667;4.969565217391304;4.876595744680851;4.7875;4.702040816326531;4.62;4.541176470588236;4.4653846153846155;4.392452830188679;4.322222222222223;4.254545454545455;4.189285714285715;4.126315789473685;4.06551724137931;4.0067796610169495;3.95;3.8950819672131147;3.8419354838709676;3.790476190476191;3.7406250000000005;3.6923076923076925;3.645454545454546;3.6000000000000005;3.5558823529411767;3.5130434782608697;3.4714285714285715;3.430985915492958;3.391666666666667;3.353424657534247;3.3162162162162163;3.2800000000000002;3.2447368421052634;3.21038961038961;3.176923076923077;3.1443037974683543;3.1125000000000003;3.081481481481482;3.0512195121951224;3.0216867469879523;2.992857142857143;2.9647058823529413;2.9372093023255816;2.910344827586207;2.8840909090909093;2.858426966292135;2.8333333333333335;2.8087912087912086;2.784782608695652;2.761290322580645;2.738297872340426;2.7157894736842105;2.69375;2.6721649484536085;2.651020408163266;2.630303030303031;2.6100000000000003;2.5900990099009906;2.570588235294118;2.5514563106796118;2.532692307692308;2.5142857142857142;2.4962264150943394;2.4785046728971967
63;12.458823529411765;11.8;11.210526315789474;10.68;10.2;9.763636363636365;9.365217391304348;9.0;8.664000000000001;8.353846153846154;8.066666666666666;7.8;7.551724137931036;7.32;7.103225806451613;6.9;6.709090909090909;6.529411764705882;6.36;6.200000000000001;6.0486486486486495;5.905263157894737;5.76923076923077;5.640000000000001;5.517073170731708;5.4;5.288372093023256;5.181818181818182;5.08;4.982608695652173;4.88936170212766;4.800000000000001;4.714285714285714;4.632000000000001;4.552941176470589;4.476923076923077;4.403773584905661;4.333333333333334;4.265454545454546;4.2;4.136842105263158;4.075862068965517;4.016949152542373;3.96;3.904918032786885;3.851612903225807;3.8000000000000007;3.7500000000000004;3.701538461538462;3.654545454545455;3.608955223880597;3.5647058823529414;3.5217391304347827;3.48;3.43943661971831;3.4000000000000004;3.361643835616438;3.3243243243243246;3.2880000000000003;3.2526315789473683;3.218181818181818;3.184615384615385;3.1518987341772156;3.12;3.0888888888888895;3.058536585365854;3.0289156626506024;3.0;2.971764705882353;2.944186046511628;2.9172413793103447;2.890909090909091;2.865168539325843;2.84;2.8153846153846156;2.7913043478260873;2.767741935483871;2.74468085106383;2.7221052631578946;2.7;2.678350515463918;2.6571428571428575;2.6363636363636367;2.616;2.596039603960396;2.5764705882352943;2.5572815533980586;2.5384615384615383;2.52;2.5018867924528303
64;13.2375;12.494117647058825;11.833333333333334;11.242105263157896;10.71;10.228571428571428;9.790909090909093;9.391304347826088;9.025;8.688;8.376923076923077;8.088888888888889;7.821428571428572;7.572413793103449;7.340000000000001;7.122580645161291;6.918750000000001;6.7272727272727275;6.547058823529412;6.377142857142857;6.216666666666667;6.064864864864865;5.921052631578947;5.784615384615385;5.655000000000001;5.531707317073171;5.414285714285715;5.302325581395349;5.195454545454545;5.093333333333334;4.995652173913044;4.902127659574468;4.8125;4.726530612244899;4.644;4.564705882352941;4.4884615384615385;4.415094339622642;4.344444444444445;4.276363636363636;4.210714285714286;4.147368421052631;4.086206896551724;4.027118644067796;3.9699999999999998;3.914754098360656;3.8612903225806456;3.80952380952381;3.7593750000000004;3.7107692307692313;3.6636363636363636;3.6179104477611945;3.573529411764706;3.5304347826086957;3.488571428571429;3.447887323943662;3.408333333333333;3.3698630136986303;3.3324324324324324;3.2960000000000003;3.2605263157894737;3.225974025974026;3.1923076923076925;3.1594936708860764;3.1275000000000004;3.0962962962962965;3.065853658536586;3.0361445783132535;3.0071428571428576;2.978823529411765;2.9511627906976745;2.9241379310344833;2.897727272727273;2.8719101123595507;2.8466666666666667;2.821978021978022;2.7978260869565217;2.774193548387097;2.751063829787234;2.728421052631579;2.7062500000000003;2.684536082474227;2.663265306122449;2.6424242424242426;2.622;2.6019801980198025;2.5823529411764707;2.5631067961165046;2.5442307692307695;2.525714285714286
65;14.120000000000001;13.275;12.529411764705884;11.866666666666667;11.273684210526316;10.740000000000002;10.257142857142858;9.818181818181818;9.417391304347827;9.05;8.712;8.4;8.111111111111112;7.842857142857143;7.593103448275863;7.36;7.141935483870968;6.9375;6.745454545454546;6.564705882352942;6.394285714285715;6.233333333333334;6.081081081081081;5.936842105263159;5.800000000000001;5.67;5.546341463414635;5.428571428571429;5.316279069767442;5.209090909090909;5.106666666666667;5.008695652173913;4.914893617021277;4.825000000000001;4.738775510204082;4.656000000000001;4.576470588235294;4.5;4.426415094339623;4.355555555555556;4.287272727272727;4.2214285714285715;4.157894736842105;4.096551724137931;4.03728813559322;3.9800000000000004;3.9245901639344263;3.870967741935485;3.8190476190476192;3.7687500000000003;3.7199999999999998;3.672727272727273;3.6268656716417915;3.5823529411764707;3.539130434782609;3.4971428571428573;3.4563380281690144;3.416666666666667;3.3780821917808224;3.34054054054054;3.3040000000000003;3.268421052631579;3.233766233766234;3.2;3.167088607594937;3.1350000000000002;3.103703703703704;3.073170731707317;3.0433734939759036;3.0142857142857142;2.985882352941177;2.9581395348837214;2.931034482758621;2.9045454545454543;2.878651685393258;2.8533333333333335;2.8285714285714283;2.8043478260869565;2.7806451612903227;2.7574468085106383;2.7347368421052636;2.7125000000000004;2.6907216494845363;2.669387755102041;2.6484848484848484;2.628;2.607920792079208;2.588235294117647;2.5689320388349515;2.5500000000000003
66;15.12857142857143;14.16;13.3125;12.564705882352943;11.9;11.305263157894737;10.77;10.285714285714286;9.845454545454546;9.443478260869565;9.075;8.736;8.423076923076923;8.133333333333333;7.864285714285715;7.613793103448276;7.380000000000001;7.161290322580646;6.956250000000001;6.763636363636365;6.58235294117647;6.411428571428571;6.25;6.097297297297298;5.9526315789473685;5.815384615384616;5.6850000000000005;5.560975609756097;5.442857142857143;5.330232558139535;5.222727272727273;5.12;5.021739130434783;4.927659574468086;4.8375;4.751020408163265;4.668;4.588235294117647;4.511538461538462;4.437735849056605;4.366666666666667;4.298181818181819;4.232142857142857;4.168421052631579;4.106896551724137;4.047457627118645;3.99;3.9344262295081975;3.8806451612903228;3.8285714285714287;3.778125;3.729230769230769;3.6818181818181817;3.635820895522388;3.591176470588236;3.5478260869565217;3.5057142857142862;3.464788732394366;3.4250000000000003;3.3863013698630136;3.3486486486486484;3.3120000000000003;3.2763157894736845;3.2415584415584417;3.207692307692308;3.1746835443037975;3.1425;3.111111111111111;3.0804878048780493;3.0506024096385547;3.0214285714285714;2.9929411764705884;2.9651162790697674;2.9379310344827587;2.911363636363636;2.8853932584269666;2.8600000000000003;2.835164835164835;2.8108695652173914;2.7870967741935484;2.7638297872340427;2.7410526315789476;2.71875;2.6969072164948455;2.6755102040816325;2.654545454545455;2.6340000000000003;2.6138613861386144;2.5941176470588236;2.5747572815533983
67;16.292307692307695;15.171428571428573;14.200000000000001;13.350000000000001;12.600000000000001;11.933333333333334;11.336842105263159;10.8;10.314285714285715;9.872727272727275;9.469565217391304;9.100000000000001;8.76;8.446153846153846;8.155555555555555;7.885714285714286;7.63448275862069;7.4;7.1806451612903235;6.9750000000000005;6.781818181818182;6.6000000000000005;6.428571428571429;6.2666666666666675;6.113513513513514;5.968421052631579;5.830769230769231;5.7;5.5756097560975615;5.457142857142857;5.344186046511628;5.236363636363636;5.133333333333334;5.034782608695653;4.940425531914894;4.8500000000000005;4.763265306122449;4.68;4.6;4.523076923076923;4.4490566037735855;4.377777777777778;4.309090909090909;4.242857142857143;4.178947368421053;4.117241379310345;4.057627118644068;4.0;3.944262295081968;3.8903225806451616;3.8380952380952382;3.7875000000000005;3.7384615384615385;3.690909090909091;3.6447761194029855;3.6;3.556521739130435;3.5142857142857142;3.4732394366197186;3.4333333333333336;3.3945205479452056;3.3567567567567567;3.3200000000000003;3.28421052631579;3.2493506493506494;3.2153846153846155;3.1822784810126583;3.1500000000000004;3.1185185185185187;3.0878048780487806;3.057831325301205;3.028571428571429;3.0;2.9720930232558143;2.9448275862068964;2.918181818181818;2.892134831460674;2.8666666666666667;2.8417582417582414;2.817391304347826;2.7935483870967746;2.7702127659574467;2.7473684210526317;2.7250000000000005;2.703092783505155;2.6816326530612247;2.660606060606061;2.64;2.61980198019802;2.6
68;17.65;16.338461538461537;15.214285714285715;14.24;13.3875;12.63529411764706;11.966666666666669;11.368421052631579;10.83;10.342857142857143;9.9;9.495652173913044;9.125;8.784;8.46923076923077;8.177777777777777;7.907142857142858;7.655172413793104;7.42;7.2;6.99375;6.800000000000001;6.617647058823529;6.445714285714287;6.283333333333334;6.12972972972973;5.98421052631579;5.846153846153847;5.715;5.590243902439024;5.4714285714285715;5.358139534883722;5.25;5.146666666666667;5.047826086956523;4.953191489361703;4.862500000000001;4.775510204081633;4.692;4.6117647058823525;4.534615384615385;4.460377358490566;4.388888888888888;4.319999999999999;4.253571428571428;4.189473684210527;4.127586206896552;4.067796610169492;4.01;3.954098360655738;3.9000000000000004;3.847619047619048;3.796875;3.747692307692308;3.7;3.653731343283582;3.6088235294117648;3.5652173913043477;3.522857142857143;3.4816901408450702;3.4416666666666664;3.4027397260273973;3.3648648648648654;3.3280000000000003;3.2921052631578953;3.257142857142857;3.223076923076923;3.189873417721519;3.1575;3.1259259259259258;3.0951219512195123;3.065060240963856;3.035714285714286;3.007058823529412;2.9790697674418603;2.9517241379310346;2.925;2.898876404494382;2.8733333333333335;2.8483516483516484;2.823913043478261;2.8000000000000003;2.7765957446808516;2.753684210526316;2.73125;2.709278350515464;2.687755102040817;2.666666666666667;2.646;2.625742574257426
69;19.254545454545458;17.700000000000003;16.384615384615387;15.257142857142856;14.280000000000001;13.425;12.670588235294119;12.0;11.400000000000002;10.860000000000001;10.371428571428572;9.927272727272728;9.521739130434783;9.15;8.808;8.492307692307694;8.200000000000001;7.928571428571429;7.675862068965518;7.44;7.219354838709677;7.0125;6.818181818181818;6.635294117647059;6.4628571428571435;6.300000000000001;6.145945945945947;6.0;5.861538461538462;5.73;5.604878048780488;5.485714285714286;5.372093023255815;5.263636363636364;5.16;5.060869565217391;4.965957446808511;4.875;4.7877551020408164;4.704000000000001;4.623529411764705;4.546153846153846;4.471698113207547;4.3999999999999995;4.330909090909091;4.264285714285715;4.2;4.137931034482759;4.077966101694916;4.0200000000000005;3.9639344262295086;3.909677419354839;3.8571428571428577;3.8062500000000004;3.7569230769230773;3.7090909090909094;3.662686567164179;3.61764705882353;3.573913043478261;3.5314285714285716;3.4901408450704228;3.45;3.41095890410959;3.372972972972973;3.3360000000000003;3.3000000000000003;3.2649350649350652;3.230769230769231;3.19746835443038;3.165;3.1333333333333337;3.102439024390244;3.072289156626506;3.0428571428571427;3.0141176470588236;2.986046511627907;2.9586206896551723;2.9318181818181817;2.90561797752809;2.88;2.8549450549450555;2.830434782608696;2.806451612903226;2.7829787234042556;2.76;2.7375000000000003;2.7154639175257733;2.6938775510204085;2.672727272727273;2.652
70;21.18;19.309090909090912;17.75;16.43076923076923;15.3;14.32;13.462500000000002;12.705882352941178;12.033333333333335;11.431578947368422;10.89;10.4;9.954545454545455;9.547826086956523;9.175;8.832;8.515384615384615;8.222222222222223;7.95;7.696551724137931;7.46;7.2387096774193544;7.03125;6.836363636363638;6.6529411764705895;6.48;6.316666666666667;6.162162162162163;6.015789473684211;5.876923076923077;5.745;5.619512195121952;5.5;5.3860465116279075;5.277272727272727;5.173333333333334;5.07391304347826;4.9787234042553195;4.8875;4.800000000000001;4.716;4.635294117647058;4.557692307692308;4.483018867924528;4.411111111111111;4.341818181818182;4.275;4.210526315789474;4.148275862068966;4.088135593220339;4.03;3.973770491803279;3.9193548387096775;3.8666666666666667;3.8156250000000003;3.766153846153846;3.7181818181818187;3.671641791044776;3.626470588235294;3.5826086956521737;3.54;3.4985915492957744;3.458333333333334;3.419178082191781;3.3810810810810814;3.3440000000000003;3.3078947368421057;3.272727272727273;3.2384615384615385;3.2050632911392407;3.1725000000000003;3.140740740740741;3.109756097560976;3.079518072289157;3.05;3.0211764705882356;2.9930232558139536;2.9655172413793105;2.938636363636364;2.9123595505617974;2.8866666666666667;2.861538461538462;2.836956521739131;2.812903225806452;2.7893617021276595;2.7663157894736843;2.7437500000000004;2.7216494845360826;2.7;2.678787878787879
71;23.53333333333333;21.240000000000002;19.363636363636367;17.8;16.47692307692308;15.342857142857145;14.360000000000003;13.5;12.741176470588236;12.066666666666666;11.463157894736842;10.92;10.428571428571429;9.981818181818182;9.573913043478262;9.200000000000001;8.856000000000002;8.53846153846154;8.244444444444444;7.9714285714285715;7.7172413793103445;7.48;7.258064516129032;7.050000000000001;6.854545454545455;6.670588235294118;6.497142857142858;6.333333333333334;6.178378378378379;6.031578947368422;5.892307692307693;5.760000000000001;5.634146341463415;5.514285714285714;5.4;5.290909090909091;5.1866666666666665;5.086956521739131;4.991489361702127;4.9;4.812244897959184;4.728;4.647058823529411;4.569230769230769;4.49433962264151;4.4222222222222225;4.3527272727272734;4.2857142857142865;4.221052631578948;4.158620689655173;4.098305084745763;4.04;3.9836065573770494;3.9290322580645163;3.8761904761904766;3.825;3.7753846153846156;3.7272727272727275;3.6805970149253735;3.635294117647059;3.591304347826087;3.548571428571429;3.507042253521127;3.466666666666667;3.427397260273973;3.3891891891891897;3.3520000000000003;3.3157894736842106;3.280519480519481;3.246153846153846;3.2126582278481015;3.1800000000000006;3.1481481481481484;3.1170731707317074;3.0867469879518072;3.057142857142857;3.028235294117647;3.0;2.972413793103448;2.9454545454545453;2.9191011235955058;2.8933333333333335;2.8681318681318686;2.8434782608695652;2.8193548387096774;2.7957446808510644;2.772631578947369;2.75;2.727835051546392;2.706122448979592
72;26.475;23.6;21.3;19.418181818181818;17.85;16.523076923076925;15.385714285714286;14.400000000000002;13.537500000000001;12.776470588235295;12.100000000000001;11.494736842105263;10.950000000000001;10.457142857142857;10.00909090909091;9.600000000000001;9.225000000000001;8.88;8.561538461538461;8.266666666666667;7.992857142857144;7.737931034482759;7.5;7.27741935483871;7.0687500000000005;6.872727272727273;6.688235294117648;6.514285714285714;6.3500000000000005;6.194594594594594;6.0473684210526315;5.907692307692308;5.775;5.648780487804879;5.5285714285714285;5.413953488372093;5.304545454545455;5.2;5.1000000000000005;5.004255319148936;4.9125;4.8244897959183675;4.74;4.658823529411764;4.580769230769231;4.505660377358491;4.433333333333334;4.363636363636364;4.296428571428572;4.231578947368421;4.1689655172413795;4.1084745762711865;4.050000000000001;3.9934426229508198;3.9387096774193555;3.885714285714286;3.834375;3.784615384615385;3.7363636363636363;3.6895522388059705;3.644117647058824;3.6;3.5571428571428574;3.515492957746479;3.4750000000000005;3.4356164383561647;3.3972972972972975;3.3600000000000003;3.3236842105263165;3.2883116883116887;3.253846153846154;3.2202531645569623;3.1875;3.155555555555556;3.124390243902439;3.093975903614458;3.0642857142857145;3.0352941176470587;3.0069767441860464;2.979310344827586;2.9522727272727276;2.9258426966292137;2.9000000000000004;2.874725274725275;2.8500000000000005;2.8258064516129036;2.8021276595744684;2.778947368421053;2.75625;2.734020618556701
73;30.25714285714286;26.55;23.666666666666668;21.36;19.472727272727273;17.900000000000002;16.56923076923077;15.42857142857143;14.440000000000001;13.575000000000001;12.811764705882354;12.133333333333333;11.526315789473685;10.98;10.485714285714286;10.036363636363637;9.626086956521739;9.25;8.904;8.584615384615384;8.28888888888889;8.014285714285714;7.758620689655173;7.520000000000001;7.296774193548387;7.0875;6.8909090909090915;6.7058823529411775;6.531428571428572;6.366666666666667;6.210810810810811;6.063157894736843;5.923076923076923;5.790000000000001;5.663414634146342;5.542857142857143;5.427906976744186;5.318181818181818;5.213333333333334;5.113043478260869;5.017021276595745;4.925000000000001;4.836734693877551;4.752;4.670588235294118;4.592307692307693;4.516981132075472;4.444444444444445;4.374545454545455;4.307142857142858;4.242105263157895;4.179310344827586;4.118644067796611;4.0600000000000005;4.00327868852459;3.9483870967741934;3.8952380952380956;3.84375;3.793846153846154;3.745454545454545;3.6985074626865675;3.6529411764705886;3.6086956521739135;3.565714285714286;3.523943661971831;3.4833333333333334;3.4438356164383563;3.4054054054054053;3.3680000000000003;3.3315789473684214;3.2961038961038964;3.2615384615384615;3.227848101265823;3.1950000000000003;3.162962962962963;3.131707317073171;3.1012048192771084;3.071428571428571;3.0423529411764707;3.013953488372093;2.9862068965517246;2.959090909090909;2.9325842696629216;2.906666666666667;2.8813186813186817;2.856521739130435;2.8322580645161293;2.8085106382978724;2.785263157894737;2.7625
74;35.3;30.342857142857145;26.625;23.733333333333334;21.42;19.52727272727273;17.950000000000003;16.615384615384617;15.471428571428572;14.48;13.6125;12.847058823529412;12.166666666666668;11.557894736842105;11.010000000000002;10.514285714285716;10.063636363636364;9.652173913043478;9.275;8.928;8.607692307692307;8.311111111111112;8.035714285714286;7.7793103448275875;7.540000000000001;7.316129032258065;7.106250000000001;6.90909090909091;6.723529411764706;6.548571428571428;6.383333333333333;6.227027027027027;6.078947368421053;5.938461538461539;5.805;5.678048780487805;5.557142857142857;5.44186046511628;5.331818181818182;5.226666666666667;5.126086956521739;5.029787234042553;4.9375;4.848979591836734;4.763999999999999;4.682352941176472;4.603846153846154;4.528301886792454;4.455555555555556;4.385454545454546;4.317857142857143;4.252631578947368;4.189655172413794;4.128813559322034;4.07;4.0131147540983605;3.958064516129032;3.904761904761905;3.8531250000000004;3.8030769230769232;3.7545454545454544;3.7074626865671645;3.6617647058823533;3.6173913043478265;3.5742857142857147;3.5323943661971837;3.491666666666667;3.4520547945205484;3.4135135135135135;3.3760000000000003;3.3394736842105264;3.303896103896104;3.269230769230769;3.235443037974684;3.2025;3.1703703703703705;3.1390243902439026;3.108433734939759;3.0785714285714287;3.0494117647058827;3.0209302325581397;2.9931034482758623;2.9659090909090913;2.9393258426966296;2.9133333333333336;2.8879120879120883;2.86304347826087;2.838709677419355;2.8148936170212764;2.7915789473684214
1 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
2 25 3.850909090909091 3.792857142857143 3.7368421052631584 3.682758620689655 3.6305084745762715 3.58 3.531147540983607 3.483870967741936 3.4380952380952383 3.3937500000000003 3.350769230769231 3.3090909090909095 3.268656716417911 3.2294117647058824 3.191304347826087 3.154285714285715 3.11830985915493 3.0833333333333335 3.0493150684931507 3.0162162162162165 2.984 2.9526315789473685 2.9220779220779223 2.8923076923076927 2.8632911392405065 2.835 2.807407407407408 2.7804878048780486 2.7542168674698795 2.7285714285714286 2.7035294117647064 2.679069767441861 2.655172413793103 2.631818181818182 2.608988764044944 2.586666666666667 2.5648351648351646 2.5434782608695654 2.52258064516129 2.502127659574468 2.482105263157895 2.4625000000000004 2.443298969072165 2.424489795918367 2.4060606060606062 2.3880000000000003 2.3702970297029706 2.3529411764705888 2.3359223300970875 2.3192307692307694 2.3028571428571434 2.2867924528301886 2.2710280373831777 2.2555555555555555 2.2403669724770645 2.2254545454545456 2.210810810810811 2.1964285714285716 2.1823008849557524 2.168421052631579 2.154782608695652 2.1413793103448278 2.1282051282051286 2.115254237288136 2.1025210084033614 2.09 2.0776859504132235 2.0655737704918034 2.053658536585366 2.041935483870968 2.0304 2.019047619047619 2.0078740157480315 1.9968750000000002 1.9860465116279071 1.9753846153846153 1.964885496183206 1.9545454545454546 1.9443609022556392 1.9343283582089552 1.9244444444444446 1.9147058823529413 1.9051094890510951 1.8956521739130436 1.8863309352517987 1.8771428571428572 1.8680851063829789 1.859154929577465 1.8503496503496502 1.8416666666666668
3 26 3.9222222222222225 3.861818181818182 3.803571428571429 3.7473684210526317 3.6931034482758625 3.6406779661016953 3.5900000000000007 3.5409836065573774 3.4935483870967743 3.447619047619048 3.403125 3.3600000000000003 3.3181818181818183 3.2776119402985078 3.238235294117647 3.2 3.162857142857143 3.126760563380282 3.091666666666667 3.057534246575343 3.0243243243243247 2.992 2.9605263157894735 2.92987012987013 2.9000000000000004 2.8708860759493673 2.8425000000000002 2.814814814814815 2.7878048780487807 2.76144578313253 2.7357142857142858 2.710588235294118 2.6860465116279073 2.662068965517242 2.6386363636363637 2.615730337078652 2.5933333333333333 2.5714285714285716 2.5500000000000003 2.5290322580645164 2.5085106382978726 2.488421052631579 2.46875 2.4494845360824744 2.4306122448979592 2.412121212121212 2.394 2.3762376237623766 2.358823529411765 2.3417475728155344 2.325 2.3085714285714287 2.2924528301886795 2.276635514018692 2.261111111111111 2.2458715596330276 2.230909090909091 2.2162162162162162 2.2017857142857142 2.1876106194690266 2.173684210526316 2.16 2.146551724137931 2.1333333333333337 2.1203389830508477 2.1075630252100845 2.095 2.0826446280991737 2.0704918032786885 2.0585365853658537 2.046774193548387 2.0352 2.0238095238095237 2.0125984251968503 2.0015625 1.9906976744186047 1.98 1.9694656488549618 1.959090909090909 1.948872180451128 1.938805970149254 1.928888888888889 1.9191176470588238 1.9094890510948905 1.9000000000000004 1.8906474820143888 1.8814285714285715 1.872340425531915 1.8633802816901408 1.8545454545454547
4 27 3.99622641509434 3.9333333333333336 3.872727272727273 3.814285714285714 3.7578947368421054 3.703448275862069 3.650847457627119 3.6000000000000005 3.550819672131148 3.503225806451613 3.4571428571428573 3.4125 3.3692307692307697 3.327272727272727 3.2865671641791048 3.2470588235294118 3.208695652173913 3.1714285714285717 3.1352112676056336 3.1000000000000005 3.0657534246575344 3.0324324324324325 3.0 2.9684210526315793 2.9376623376623376 2.907692307692308 2.878481012658228 2.85 2.822222222222222 2.795121951219512 2.7686746987951807 2.742857142857143 2.7176470588235295 2.6930232558139537 2.6689655172413795 2.6454545454545455 2.6224719101123597 2.6 2.578021978021978 2.5565217391304347 2.535483870967742 2.5148936170212766 2.4947368421052634 2.4749999999999996 2.4556701030927837 2.4367346938775514 2.4181818181818184 2.4000000000000004 2.3821782178217825 2.364705882352941 2.347572815533981 2.330769230769231 2.314285714285714 2.29811320754717 2.282242990654206 2.2666666666666666 2.251376146788991 2.2363636363636363 2.2216216216216216 2.2071428571428573 2.192920353982301 2.1789473684210527 2.165217391304348 2.151724137931035 2.138461538461539 2.1254237288135593 2.1126050420168068 2.1 2.087603305785124 2.0754098360655737 2.0634146341463415 2.0516129032258066 2.04 2.0285714285714285 2.017322834645669 2.00625 1.9953488372093022 1.9846153846153847 1.9740458015267175 1.9636363636363636 1.9533834586466168 1.9432835820895524 1.9333333333333336 1.923529411764706 1.9138686131386864 1.9043478260869566 1.8949640287769784 1.885714285714286 1.8765957446808512 1.867605633802817
5 28 4.073076923076924 4.007547169811321 3.9444444444444446 3.8836363636363638 3.825 3.768421052631579 3.7137931034482765 3.6610169491525424 3.6100000000000003 3.560655737704918 3.512903225806452 3.466666666666667 3.421875 3.3784615384615386 3.336363636363637 3.2955223880597018 3.255882352941177 3.217391304347826 3.18 3.143661971830986 3.1083333333333334 3.073972602739726 3.0405405405405403 3.0080000000000005 2.9763157894736842 2.9454545454545453 2.9153846153846157 2.886075949367089 2.8575 2.82962962962963 2.802439024390244 2.7759036144578317 2.75 2.7247058823529415 2.7 2.6758620689655173 2.6522727272727273 2.6292134831460676 2.606666666666667 2.5846153846153843 2.5630434782608695 2.541935483870968 2.5212765957446805 2.5010526315789474 2.48125 2.461855670103093 2.442857142857143 2.4242424242424248 2.406 2.3881188118811885 2.3705882352941177 2.353398058252427 2.3365384615384617 2.3200000000000003 2.3037735849056604 2.2878504672897195 2.272222222222222 2.2568807339449544 2.2418181818181817 2.227027027027027 2.2125 2.1982300884955754 2.18421052631579 2.170434782608696 2.156896551724138 2.143589743589744 2.1305084745762715 2.11764705882353 2.1050000000000004 2.0925619834710742 2.080327868852459 2.0682926829268293 2.056451612903226 2.0448000000000004 2.033333333333333 2.0220472440944883 2.0109375 2.0 1.9892307692307694 1.9786259541984732 1.9681818181818185 1.9578947368421056 1.9477611940298512 1.9377777777777778 1.9279411764705885 1.918248175182482 1.9086956521739131 1.8992805755395685 1.8900000000000001 1.8808510638297873
6 29 4.152941176470588 4.084615384615384 4.018867924528302 3.9555555555555557 3.8945454545454545 3.8357142857142863 3.778947368421053 3.724137931034483 3.6711864406779666 3.62 3.5704918032786885 3.52258064516129 3.4761904761904763 3.4312500000000004 3.387692307692308 3.3454545454545457 3.3044776119402988 3.264705882352941 3.226086956521739 3.1885714285714286 3.152112676056338 3.116666666666667 3.082191780821918 3.048648648648649 3.016 2.9842105263157896 2.9532467532467535 2.9230769230769234 2.8936708860759497 2.865 2.837037037037037 2.809756097560976 2.783132530120482 2.757142857142857 2.731764705882353 2.7069767441860466 2.682758620689655 2.659090909090909 2.6359550561797755 2.6133333333333333 2.5912087912087913 2.5695652173913044 2.5483870967741935 2.527659574468085 2.5073684210526315 2.4875000000000003 2.468041237113402 2.4489795918367347 2.4303030303030306 2.412 2.3940594059405944 2.3764705882352946 2.359223300970874 2.342307692307692 2.3257142857142856 2.3094339622641513 2.2934579439252336 2.2777777777777777 2.2623853211009175 2.247272727272727 2.2324324324324323 2.217857142857143 2.2035398230088497 2.1894736842105265 2.1756521739130434 2.162068965517242 2.148717948717949 2.135593220338983 2.1226890756302526 2.1100000000000003 2.097520661157025 2.0852459016393445 2.073170731707317 2.0612903225806454 2.0496 2.0380952380952384 2.026771653543307 2.015625 2.0046511627906978 1.9938461538461538 1.9832061068702291 1.972727272727273 1.9624060150375944 1.9522388059701494 1.9422222222222223 1.9323529411764708 1.9226277372262777 1.9130434782608696 1.9035971223021584 1.8942857142857144
7 30 4.236000000000001 4.164705882352941 4.096153846153847 4.030188679245283 3.966666666666667 3.9054545454545457 3.8464285714285715 3.7894736842105265 3.7344827586206897 3.68135593220339 3.63 3.580327868852459 3.532258064516129 3.4857142857142858 3.4406250000000003 3.396923076923077 3.3545454545454545 3.3134328358208958 3.273529411764706 3.234782608695652 3.1971428571428575 3.1605633802816904 3.125 3.09041095890411 3.056756756756757 3.024 2.992105263157895 2.961038961038961 2.930769230769231 2.9012658227848105 2.8725 2.844444444444445 2.8170731707317076 2.790361445783133 2.7642857142857142 2.738823529411765 2.713953488372093 2.6896551724137936 2.665909090909091 2.642696629213483 2.62 2.597802197802198 2.5760869565217392 2.554838709677419 2.5340425531914894 2.513684210526316 2.4937500000000004 2.4742268041237114 2.4551020408163264 2.4363636363636365 2.418 2.4000000000000004 2.382352941176471 2.3650485436893205 2.348076923076923 2.331428571428572 2.3150943396226418 2.2990654205607477 2.283333333333333 2.2678899082568806 2.252727272727273 2.237837837837838 2.223214285714286 2.2088495575221243 2.1947368421052635 2.1808695652173915 2.1672413793103447 2.153846153846154 2.1406779661016953 2.127731092436975 2.115 2.1024793388429757 2.0901639344262297 2.078048780487805 2.0661290322580648 2.0544000000000002 2.0428571428571427 2.031496062992126 2.0203125 2.0093023255813955 1.9984615384615387 1.9877862595419848 1.9772727272727275 1.966917293233083 1.956716417910448 1.9466666666666668 1.9367647058823532 1.9270072992700733 1.9173913043478261 1.9079136690647482
8 31 4.322448979591837 4.248 4.176470588235294 4.107692307692307 4.041509433962264 3.977777777777778 3.916363636363637 3.8571428571428577 3.8 3.7448275862068967 3.6915254237288138 3.64 3.59016393442623 3.541935483870968 3.4952380952380957 3.45 3.4061538461538463 3.3636363636363638 3.3223880597014928 3.282352941176471 3.2434782608695656 3.2057142857142855 3.169014084507042 3.1333333333333337 3.0986301369863014 3.064864864864865 3.032 3.0 2.968831168831169 2.9384615384615387 2.9088607594936713 2.8800000000000003 2.851851851851852 2.8243902439024393 2.797590361445783 2.7714285714285714 2.7458823529411767 2.72093023255814 2.6965517241379313 2.672727272727273 2.649438202247191 2.626666666666667 2.6043956043956045 2.5826086956521737 2.5612903225806454 2.540425531914894 2.5200000000000005 2.5 2.4804123711340207 2.4612244897959186 2.4424242424242424 2.4240000000000004 2.4059405940594063 2.3882352941176475 2.370873786407767 2.353846153846154 2.337142857142857 2.3207547169811322 2.304672897196262 2.2888888888888888 2.2733944954128438 2.2581818181818183 2.2432432432432434 2.2285714285714286 2.2141592920353985 2.2 2.1860869565217396 2.1724137931034484 2.1589743589743593 2.145762711864407 2.132773109243698 2.12 2.107438016528926 2.0950819672131145 2.0829268292682928 2.070967741935484 2.0592 2.0476190476190474 2.036220472440945 2.025 2.0139534883720933 2.0030769230769234 1.9923664122137408 1.981818181818182 1.9714285714285715 1.9611940298507464 1.951111111111111 1.9411764705882355 1.9313868613138685 1.9217391304347828
9 32 4.4125 4.33469387755102 4.26 4.188235294117647 4.11923076923077 4.052830188679246 3.988888888888889 3.9272727272727272 3.867857142857143 3.810526315789474 3.7551724137931037 3.7016949152542376 3.6500000000000004 3.6 3.5516129032258066 3.5047619047619047 3.4593750000000005 3.4153846153846157 3.372727272727273 3.3313432835820898 3.291176470588235 3.252173913043478 3.2142857142857144 3.1774647887323946 3.141666666666667 3.1068493150684935 3.0729729729729733 3.04 3.0078947368421054 2.976623376623377 2.9461538461538463 2.916455696202532 2.8875 2.8592592592592596 2.831707317073171 2.8048192771084337 2.7785714285714285 2.7529411764705882 2.727906976744186 2.703448275862069 2.6795454545454547 2.656179775280899 2.6333333333333333 2.610989010989011 2.589130434782609 2.567741935483871 2.5468085106382983 2.5263157894736845 2.50625 2.48659793814433 2.4673469387755103 2.4484848484848487 2.43 2.4118811881188122 2.394117647058824 2.376699029126214 2.3596153846153847 2.342857142857143 2.3264150943396227 2.310280373831776 2.2944444444444443 2.2788990825688074 2.2636363636363637 2.2486486486486488 2.2339285714285717 2.2194690265486727 2.205263157894737 2.191304347826087 2.177586206896552 2.1641025641025644 2.1508474576271186 2.1378151260504206 2.125 2.112396694214876 2.1 2.0878048780487806 2.075806451612903 2.064 2.052380952380952 2.040944881889764 2.0296875 2.018604651162791 2.007692307692308 1.9969465648854965 1.9863636363636363 1.9759398496240603 1.965671641791045 1.9555555555555557 1.9455882352941176 1.9357664233576646
10 33 4.506382978723405 4.425000000000001 4.346938775510204 4.272 4.2 4.130769230769231 4.064150943396227 4.0 3.9381818181818184 3.878571428571429 3.8210526315789473 3.7655172413793103 3.711864406779661 3.66 3.609836065573771 3.5612903225806454 3.5142857142857147 3.46875 3.424615384615385 3.3818181818181823 3.3402985074626868 3.3000000000000003 3.260869565217391 3.2228571428571433 3.1859154929577467 3.1500000000000004 3.115068493150685 3.0810810810810816 3.048 3.015789473684211 2.9844155844155846 2.953846153846154 2.9240506329113924 2.8950000000000005 2.866666666666667 2.8390243902439023 2.8120481927710843 2.7857142857142856 2.76 2.734883720930233 2.7103448275862068 2.6863636363636365 2.662921348314607 2.6399999999999997 2.6175824175824176 2.5956521739130434 2.574193548387097 2.5531914893617023 2.5326315789473686 2.5125 2.492783505154639 2.4734693877551024 2.4545454545454546 2.436 2.417821782178218 2.4000000000000004 2.3825242718446606 2.3653846153846154 2.3485714285714288 2.332075471698113 2.3158878504672895 2.3 2.284403669724771 2.2690909090909095 2.2540540540540546 2.2392857142857148 2.224778761061947 2.210526315789474 2.1965217391304352 2.1827586206896554 2.1692307692307695 2.1559322033898307 2.142857142857143 2.13 2.1173553719008265 2.1049180327868853 2.0926829268292684 2.0806451612903225 2.0688 2.057142857142857 2.0456692913385828 2.0343750000000003 2.0232558139534884 2.0123076923076924 2.001526717557252 1.9909090909090912 1.9804511278195491 1.9701492537313432 1.96 1.9500000000000002
11 34 4.604347826086957 4.519148936170213 4.4375 4.359183673469388 4.284 4.211764705882353 4.142307692307693 4.075471698113208 4.011111111111111 3.949090909090909 3.8892857142857142 3.8315789473684214 3.775862068965518 3.722033898305085 3.6700000000000004 3.6196721311475413 3.570967741935484 3.5238095238095237 3.4781250000000004 3.433846153846154 3.390909090909091 3.3492537313432837 3.3088235294117645 3.2695652173913046 3.2314285714285718 3.1943661971830988 3.1583333333333337 3.1232876712328768 3.0891891891891894 3.056 3.0236842105263158 2.9922077922077923 2.9615384615384617 2.9316455696202537 2.9025 2.8740740740740742 2.8463414634146345 2.8192771084337354 2.792857142857143 2.767058823529412 2.7418604651162792 2.717241379310345 2.6931818181818183 2.6696629213483147 2.6466666666666665 2.6241758241758246 2.6021739130434787 2.580645161290323 2.5595744680851067 2.538947368421053 2.51875 2.4989690721649485 2.479591836734694 2.460606060606061 2.442 2.423762376237624 2.405882352941177 2.388349514563107 2.371153846153846 2.354285714285714 2.337735849056604 2.321495327102804 2.305555555555556 2.289908256880734 2.274545454545455 2.2594594594594595 2.2446428571428574 2.2300884955752216 2.215789473684211 2.201739130434783 2.1879310344827587 2.1743589743589746 2.1610169491525424 2.147899159663866 2.135 2.1223140495867767 2.1098360655737705 2.097560975609756 2.0854838709677423 2.0736 2.061904761904762 2.0503937007874016 2.0390625 2.027906976744186 2.016923076923077 2.006106870229008 1.9954545454545456 1.9849624060150377 1.9746268656716417 1.9644444444444447
12 35 4.706666666666667 4.6173913043478265 4.531914893617022 4.45 4.371428571428572 4.296 4.223529411764707 4.153846153846154 4.086792452830188 4.022222222222222 3.96 3.9 3.8421052631578947 3.7862068965517244 3.7322033898305085 3.68 3.6295081967213116 3.580645161290323 3.533333333333333 3.4875000000000003 3.4430769230769234 3.4000000000000004 3.3582089552238807 3.3176470588235296 3.2782608695652176 3.24 3.202816901408451 3.166666666666667 3.131506849315069 3.097297297297297 3.064 3.0315789473684216 3.0 2.9692307692307693 2.9392405063291145 2.91 2.8814814814814813 2.8536585365853657 2.8265060240963855 2.8 2.774117647058824 2.7488372093023257 2.7241379310344827 2.7 2.676404494382022 2.6533333333333333 2.630769230769231 2.608695652173913 2.5870967741935487 2.5659574468085107 2.5452631578947367 2.5250000000000004 2.5051546391752577 2.4857142857142858 2.466666666666667 2.4480000000000004 2.4297029702970296 2.4117647058823533 2.3941747572815535 2.3769230769230774 2.3600000000000003 2.3433962264150945 2.327102803738318 2.3111111111111113 2.295412844036697 2.2800000000000002 2.2648648648648653 2.25 2.235398230088496 2.2210526315789476 2.2069565217391305 2.1931034482758625 2.1794871794871797 2.1661016949152545 2.152941176470588 2.14 2.1272727272727274 2.1147540983606556 2.102439024390244 2.0903225806451613 2.0784000000000002 2.066666666666667 2.055118110236221 2.04375 2.032558139534884 2.0215384615384617 2.010687022900764 2.0 1.9894736842105263 1.9791044776119404
13 36 4.813636363636364 4.720000000000001 4.630434782608695 4.544680851063831 4.4625 4.383673469387755 4.308 4.235294117647059 4.165384615384616 4.09811320754717 4.033333333333333 3.970909090909091 3.910714285714286 3.852631578947369 3.7965517241379314 3.7423728813559327 3.6900000000000004 3.639344262295082 3.5903225806451617 3.542857142857143 3.496875 3.4523076923076923 3.409090909090909 3.3671641791044777 3.3264705882352947 3.286956521739131 3.248571428571429 3.211267605633803 3.1750000000000003 3.13972602739726 3.1054054054054054 3.072 3.0394736842105265 3.007792207792208 2.976923076923077 2.946835443037975 2.9175000000000004 2.8888888888888893 2.860975609756098 2.833734939759036 2.807142857142857 2.7811764705882354 2.755813953488372 2.731034482758621 2.706818181818182 2.6831460674157306 2.66 2.6373626373626378 2.6152173913043484 2.5935483870967744 2.572340425531915 2.551578947368421 2.53125 2.511340206185567 2.4918367346938775 2.4727272727272727 2.454 2.435643564356436 2.4176470588235297 2.4000000000000004 2.3826923076923077 2.3657142857142857 2.349056603773585 2.332710280373832 2.316666666666667 2.300917431192661 2.2854545454545456 2.27027027027027 2.255357142857143 2.24070796460177 2.2263157894736842 2.212173913043478 2.1982758620689657 2.184615384615385 2.171186440677966 2.157983193277311 2.145 2.1322314049586777 2.1196721311475413 2.107317073170732 2.0951612903225807 2.0832 2.0714285714285716 2.0598425196850396 2.0484375000000004 2.0372093023255817 2.0261538461538464 2.015267175572519 2.004545454545455 1.993984962406015
14 37 4.925581395348837 4.827272727272728 4.733333333333334 4.643478260869566 4.5574468085106385 4.4750000000000005 4.395918367346939 4.32 4.247058823529412 4.176923076923077 4.109433962264151 4.044444444444444 3.9818181818181824 3.9214285714285717 3.8631578947368426 3.806896551724138 3.752542372881356 3.7 3.6491803278688524 3.6 3.552380952380952 3.50625 3.4615384615384617 3.418181818181819 3.3761194029850747 3.335294117647059 3.2956521739130435 3.257142857142857 3.219718309859155 3.1833333333333336 3.147945205479452 3.1135135135135137 3.08 3.0473684210526315 3.015584415584416 2.9846153846153847 2.9544303797468356 2.925 2.8962962962962964 2.868292682926829 2.8409638554216867 2.814285714285714 2.788235294117647 2.7627906976744185 2.7379310344827585 2.713636363636364 2.6898876404494385 2.666666666666667 2.6439560439560443 2.621739130434783 2.6 2.578723404255319 2.5578947368421057 2.5375 2.5175257731958762 2.4979591836734696 2.4787878787878785 2.46 2.441584158415842 2.4235294117647057 2.4058252427184468 2.388461538461539 2.371428571428572 2.354716981132076 2.338317757009346 2.3222222222222224 2.3064220183486244 2.290909090909091 2.275675675675676 2.260714285714286 2.2460176991150442 2.2315789473684213 2.217391304347826 2.203448275862069 2.18974358974359 2.176271186440678 2.163025210084034 2.15 2.1371900826446284 2.1245901639344265 2.1121951219512196 2.1 2.088 2.0761904761904764 2.0645669291338584 2.053125 2.0418604651162795 2.0307692307692307 2.019847328244275 2.0090909090909093
15 38 5.042857142857143 4.93953488372093 4.840909090909092 4.746666666666666 4.656521739130435 4.570212765957447 4.487500000000001 4.408163265306122 4.332000000000001 4.258823529411765 4.188461538461539 4.120754716981132 4.055555555555556 3.992727272727273 3.9321428571428574 3.873684210526316 3.817241379310345 3.7627118644067803 3.71 3.6590163934426236 3.6096774193548384 3.5619047619047617 3.515625 3.470769230769231 3.4272727272727277 3.3850746268656717 3.344117647058824 3.304347826086957 3.265714285714286 3.228169014084507 3.1916666666666664 3.156164383561644 3.121621621621622 3.088 3.0552631578947373 3.0233766233766235 2.9923076923076923 2.962025316455696 2.9325 2.903703703703704 2.8756097560975613 2.8481927710843378 2.8214285714285716 2.7952941176470585 2.7697674418604654 2.744827586206897 2.7204545454545457 2.6966292134831464 2.673333333333334 2.650549450549451 2.628260869565217 2.606451612903226 2.5851063829787235 2.5642105263157893 2.54375 2.5237113402061855 2.5040816326530613 2.4848484848484853 2.466 2.4475247524752475 2.429411764705882 2.411650485436893 2.3942307692307696 2.3771428571428572 2.3603773584905663 2.3439252336448604 2.327777777777778 2.3119266055045875 2.296363636363637 2.281081081081081 2.2660714285714287 2.251327433628319 2.236842105263158 2.2226086956521742 2.2086206896551723 2.194871794871795 2.18135593220339 2.168067226890756 2.1550000000000002 2.1421487603305787 2.1295081967213116 2.1170731707317074 2.10483870967742 2.0928 2.080952380952381 2.069291338582677 2.0578125000000003 2.046511627906977 2.0353846153846153 2.0244274809160308
16 39 5.1658536585365855 5.057142857142857 4.953488372093023 4.8545454545454545 4.76 4.6695652173913045 4.582978723404256 4.5 4.420408163265306 4.344 4.270588235294118 4.2 4.132075471698114 4.066666666666666 4.003636363636364 3.942857142857143 3.88421052631579 3.827586206896552 3.7728813559322036 3.72 3.6688524590163936 3.6193548387096772 3.571428571428571 3.5250000000000004 3.4800000000000004 3.4363636363636365 3.3940298507462687 3.3529411764705888 3.3130434782608695 3.274285714285714 3.2366197183098593 3.2 3.164383561643836 3.12972972972973 3.096 3.0631578947368423 3.031168831168831 3.0 2.969620253164557 2.94 2.9111111111111114 2.8829268292682926 2.855421686746988 2.8285714285714283 2.802352941176471 2.776744186046512 2.751724137931035 2.7272727272727275 2.703370786516854 2.68 2.6571428571428575 2.6347826086956525 2.612903225806452 2.591489361702128 2.5705263157894738 2.5500000000000003 2.5298969072164947 2.5102040816326534 2.490909090909091 2.4720000000000004 2.4534653465346534 2.435294117647059 2.41747572815534 2.4000000000000004 2.3828571428571435 2.3660377358490567 2.349532710280374 2.3333333333333335 2.3174311926605506 2.3018181818181818 2.2864864864864867 2.2714285714285714 2.256637168141593 2.2421052631578946 2.227826086956522 2.213793103448276 2.2 2.1864406779661016 2.1731092436974793 2.16 2.147107438016529 2.134426229508197 2.1219512195121952 2.109677419354839 2.0976 2.085714285714286 2.0740157480314965 2.0625 2.0511627906976746 2.04
17 40 5.295 5.180487804878049 5.071428571428571 4.967441860465117 4.868181818181818 4.773333333333333 4.682608695652174 4.595744680851064 4.5125 4.4326530612244905 4.356 4.2823529411764705 4.211538461538462 4.143396226415094 4.0777777777777775 4.014545454545455 3.953571428571429 3.8947368421052633 3.837931034482759 3.7830508474576274 3.73 3.678688524590164 3.629032258064516 3.5809523809523816 3.5343750000000003 3.4892307692307694 3.4454545454545458 3.4029850746268657 3.361764705882353 3.321739130434783 3.282857142857143 3.2450704225352114 3.2083333333333335 3.1726027397260275 3.137837837837838 3.104 3.0710526315789473 3.0389610389610393 3.0076923076923077 2.9772151898734176 2.9475000000000002 2.9185185185185185 2.8902439024390243 2.862650602409638 2.8357142857142854 2.8094117647058825 2.7837209302325583 2.7586206896551726 2.7340909090909093 2.710112359550562 2.6866666666666665 2.663736263736264 2.641304347826087 2.6193548387096772 2.597872340425532 2.5768421052631583 2.5562500000000004 2.536082474226804 2.516326530612245 2.496969696969697 2.4779999999999998 2.4594059405940594 2.4411764705882355 2.423300970873787 2.405769230769231 2.388571428571429 2.3716981132075476 2.3551401869158877 2.3388888888888895 2.322935779816514 2.3072727272727276 2.291891891891892 2.2767857142857144 2.2619469026548673 2.2473684210526317 2.23304347826087 2.2189655172413794 2.2051282051282053 2.1915254237288133 2.178151260504202 2.1650000000000005 2.1520661157024796 2.139344262295082 2.126829268292683 2.1145161290322583 2.1024000000000003 2.0904761904761906 2.078740157480315 2.0671875 2.0558139534883724
18 41 5.430769230769231 5.3100000000000005 5.195121951219512 5.085714285714285 4.981395348837209 4.881818181818183 4.786666666666667 4.695652173913044 4.608510638297872 4.525 4.444897959183674 4.368 4.294117647058824 4.223076923076923 4.154716981132076 4.088888888888889 4.025454545454545 3.9642857142857144 3.905263157894737 3.8482758620689657 3.793220338983051 3.74 3.6885245901639347 3.638709677419355 3.590476190476191 3.54375 3.4984615384615387 3.454545454545455 3.4119402985074627 3.3705882352941177 3.330434782608696 3.291428571428572 3.253521126760564 3.216666666666667 3.1808219178082195 3.145945945945946 3.112 3.0789473684210527 3.046753246753247 3.0153846153846153 2.9848101265822784 2.955 2.925925925925926 2.897560975609756 2.869879518072289 2.8428571428571434 2.816470588235294 2.790697674418605 2.7655172413793108 2.740909090909091 2.7168539325842698 2.6933333333333334 2.6703296703296706 2.6478260869565218 2.6258064516129034 2.6042553191489364 2.583157894736842 2.5625 2.5422680412371133 2.522448979591837 2.503030303030303 2.484 2.4653465346534658 2.447058823529412 2.4291262135922334 2.411538461538462 2.394285714285714 2.3773584905660377 2.360747663551402 2.3444444444444446 2.328440366972477 2.312727272727273 2.2972972972972974 2.2821428571428575 2.2672566371681415 2.2526315789473683 2.2382608695652175 2.224137931034483 2.2102564102564104 2.1966101694915254 2.1831932773109246 2.1700000000000004 2.15702479338843 2.144262295081967 2.131707317073171 2.1193548387096777 2.1072 2.0952380952380953 2.083464566929134 2.0718750000000004
19 42 5.5736842105263165 5.446153846153846 5.325 5.209756097560976 5.1 4.995348837209303 4.895454545454546 4.800000000000001 4.708695652173914 4.621276595744681 4.5375 4.457142857142857 4.38 4.305882352941177 4.234615384615385 4.1660377358490575 4.1000000000000005 4.036363636363637 3.975 3.9157894736842107 3.8586206896551722 3.8033898305084746 3.75 3.698360655737705 3.6483870967741936 3.6000000000000005 3.5531250000000005 3.5076923076923077 3.463636363636364 3.4208955223880597 3.379411764705883 3.339130434782609 3.3 3.2619718309859156 3.2250000000000005 3.189041095890411 3.154054054054054 3.12 3.086842105263158 3.0545454545454547 3.023076923076923 2.992405063291139 2.9625 2.933333333333333 2.9048780487804877 2.87710843373494 2.8500000000000005 2.8235294117647065 2.797674418604651 2.772413793103448 2.747727272727273 2.723595505617978 2.7 2.676923076923077 2.6543478260869566 2.632258064516129 2.6106382978723404 2.5894736842105264 2.56875 2.5484536082474225 2.5285714285714285 2.5090909090909093 2.49 2.4712871287128717 2.4529411764705884 2.4349514563106798 2.4173076923076926 2.4000000000000004 2.3830188679245285 2.366355140186916 2.35 2.3339449541284405 2.3181818181818183 2.3027027027027027 2.2874999999999996 2.2725663716814157 2.2578947368421054 2.243478260869565 2.229310344827586 2.2153846153846155 2.2016949152542376 2.1882352941176473 2.1750000000000003 2.1619834710743806 2.1491803278688524 2.1365853658536587 2.124193548387097 2.112 2.1 2.088188976377953
20 43 5.724324324324325 5.589473684210526 5.461538461538462 5.34 5.224390243902439 5.114285714285714 5.009302325581396 4.909090909090909 4.8133333333333335 4.721739130434782 4.63404255319149 4.550000000000001 4.469387755102041 4.392 4.31764705882353 4.246153846153847 4.177358490566038 4.111111111111112 4.047272727272728 3.9857142857142858 3.9263157894736844 3.8689655172413797 3.8135593220338984 3.7600000000000007 3.7081967213114755 3.6580645161290324 3.60952380952381 3.5625 3.516923076923077 3.4727272727272727 3.4298507462686567 3.3882352941176475 3.347826086956522 3.3085714285714287 3.270422535211268 3.2333333333333334 3.197260273972603 3.1621621621621623 3.128 3.094736842105263 3.0623376623376624 3.0307692307692307 3.0 2.9699999999999998 2.9407407407407407 2.91219512195122 2.884337349397591 2.8571428571428577 2.830588235294118 2.804651162790698 2.779310344827586 2.754545454545455 2.7303370786516856 2.7066666666666666 2.6835164835164838 2.660869565217391 2.638709677419355 2.617021276595745 2.595789473684211 2.575 2.5546391752577318 2.53469387755102 2.5151515151515156 2.4960000000000004 2.4772277227722777 2.458823529411765 2.4407766990291266 2.4230769230769234 2.4057142857142857 2.388679245283019 2.3719626168224304 2.355555555555556 2.339449541284404 2.3236363636363637 2.308108108108108 2.2928571428571427 2.2778761061946904 2.263157894736842 2.2486956521739128 2.2344827586206897 2.2205128205128206 2.2067796610169492 2.19327731092437 2.18 2.166942148760331 2.154098360655738 2.1414634146341465 2.129032258064516 2.1168 2.104761904761905
21 44 5.883333333333333 5.7405405405405405 5.605263157894737 5.476923076923077 5.355 5.239024390243903 5.128571428571429 5.023255813953488 4.922727272727273 4.826666666666667 4.734782608695652 4.646808510638298 4.5625 4.481632653061225 4.404 4.329411764705883 4.257692307692308 4.188679245283019 4.122222222222222 4.058181818181819 3.996428571428572 3.9368421052631577 3.8793103448275863 3.823728813559322 3.7700000000000005 3.7180327868852463 3.667741935483871 3.619047619047619 3.5718750000000004 3.5261538461538464 3.481818181818182 3.438805970149254 3.397058823529412 3.356521739130435 3.3171428571428576 3.27887323943662 3.2416666666666667 3.205479452054795 3.1702702702702705 3.136 3.102631578947369 3.07012987012987 3.0384615384615383 3.007594936708861 2.9775 2.9481481481481486 2.9195121951219516 2.8915662650602414 2.8642857142857148 2.8376470588235296 2.811627906976744 2.7862068965517244 2.7613636363636367 2.737078651685393 2.7133333333333334 2.6901098901098903 2.6673913043478263 2.645161290322581 2.623404255319149 2.6021052631578945 2.58125 2.5608247422680415 2.5408163265306127 2.5212121212121215 2.5020000000000002 2.4831683168316836 2.4647058823529413 2.446601941747573 2.428846153846154 2.411428571428572 2.3943396226415095 2.377570093457944 2.3611111111111116 2.344954128440367 2.329090909090909 2.313513513513514 2.2982142857142858 2.2831858407079646 2.268421052631579 2.253913043478261 2.2396551724137934 2.2256410256410257 2.2118644067796613 2.1983193277310926 2.185 2.171900826446281 2.159016393442623 2.1463414634146343 2.1338709677419354 2.1216
22 45 6.051428571428572 5.9 5.756756756756758 5.621052631578948 5.492307692307692 5.370000000000001 5.253658536585366 5.142857142857143 5.037209302325581 4.936363636363637 4.84 4.747826086956522 4.659574468085107 4.575 4.493877551020408 4.416 4.341176470588236 4.26923076923077 4.2 4.133333333333334 4.069090909090909 4.007142857142857 3.947368421052632 3.8896551724137938 3.8338983050847464 3.7800000000000002 3.7278688524590167 3.67741935483871 3.6285714285714286 3.58125 3.535384615384616 3.490909090909091 3.4477611940298507 3.405882352941177 3.3652173913043484 3.3257142857142856 3.287323943661972 3.25 3.2136986301369865 3.1783783783783783 3.144 3.110526315789474 3.0779220779220777 3.046153846153846 3.0151898734177216 2.9850000000000003 2.9555555555555557 2.926829268292683 2.8987951807228916 2.871428571428572 2.844705882352941 2.818604651162791 2.793103448275862 2.7681818181818185 2.7438202247191015 2.72 2.696703296703297 2.673913043478261 2.6516129032258062 2.629787234042553 2.608421052631579 2.5875000000000004 2.567010309278351 2.5469387755102044 2.5272727272727273 2.508 2.4891089108910895 2.4705882352941178 2.4524271844660195 2.434615384615385 2.4171428571428573 2.4000000000000004 2.383177570093458 2.366666666666667 2.3504587155963304 2.334545454545455 2.3189189189189188 2.303571428571429 2.288495575221239 2.2736842105263158 2.259130434782609 2.2448275862068967 2.230769230769231 2.216949152542373 2.2033613445378153 2.1900000000000004 2.1768595041322314 2.1639344262295084 2.151219512195122 2.138709677419355
23 46 6.229411764705882 6.0685714285714285 5.916666666666667 5.7729729729729735 5.636842105263158 5.507692307692308 5.385 5.26829268292683 5.1571428571428575 5.051162790697674 4.95 4.8533333333333335 4.760869565217392 4.672340425531916 4.5875 4.506122448979592 4.428000000000001 4.352941176470589 4.280769230769231 4.211320754716981 4.144444444444445 4.08 4.017857142857143 3.957894736842106 3.9000000000000004 3.8440677966101697 3.79 3.737704918032787 3.6870967741935488 3.638095238095238 3.590625 3.544615384615385 3.5 3.456716417910448 3.4147058823529415 3.373913043478261 3.3342857142857145 3.295774647887324 3.2583333333333337 3.221917808219178 3.1864864864864866 3.152 3.1184210526315788 3.0857142857142854 3.0538461538461537 3.0227848101265824 2.9925 2.9629629629629632 2.934146341463415 2.9060240963855426 2.878571428571429 2.851764705882353 2.8255813953488373 2.8 2.7750000000000004 2.750561797752809 2.7266666666666666 2.7032967032967035 2.6804347826086956 2.6580645161290324 2.6361702127659576 2.614736842105263 2.59375 2.57319587628866 2.553061224489796 2.5333333333333337 2.5140000000000002 2.4950495049504955 2.476470588235294 2.4582524271844663 2.440384615384615 2.422857142857143 2.4056603773584904 2.388785046728972 2.3722222222222222 2.3559633027522935 2.34 2.3243243243243246 2.3089285714285714 2.2938053097345135 2.278947368421053 2.2643478260869565 2.2500000000000004 2.235897435897436 2.2220338983050847 2.208403361344538 2.1950000000000003 2.1818181818181817 2.1688524590163936 2.15609756097561
24 47 6.418181818181818 6.247058823529413 6.085714285714286 5.933333333333334 5.789189189189189 5.652631578947369 5.523076923076924 5.4 5.282926829268293 5.171428571428572 5.065116279069768 4.963636363636364 4.866666666666667 4.773913043478261 4.685106382978724 4.6000000000000005 4.518367346938776 4.44 4.364705882352942 4.292307692307692 4.222641509433963 4.155555555555556 4.090909090909091 4.028571428571429 3.9684210526315793 3.910344827586207 3.8542372881355935 3.8 3.747540983606558 3.6967741935483875 3.647619047619048 3.6000000000000005 3.553846153846154 3.5090909090909097 3.4656716417910447 3.423529411764706 3.3826086956521744 3.3428571428571434 3.3042253521126765 3.2666666666666666 3.2301369863013702 3.1945945945945944 3.16 3.126315789473684 3.093506493506494 3.061538461538462 3.030379746835443 3.0000000000000004 2.9703703703703708 2.9414634146341463 2.9132530120481928 2.885714285714286 2.858823529411765 2.832558139534884 2.8068965517241384 2.781818181818182 2.757303370786517 2.7333333333333334 2.70989010989011 2.6869565217391305 2.664516129032258 2.6425531914893616 2.621052631578948 2.6000000000000005 2.5793814432989697 2.559183673469388 2.53939393939394 2.52 2.5009900990099014 2.4823529411764707 2.4640776699029128 2.4461538461538463 2.428571428571429 2.4113207547169813 2.394392523364486 2.377777777777778 2.3614678899082566 2.3454545454545457 2.3297297297297295 2.3142857142857145 2.299115044247788 2.28421052631579 2.2695652173913046 2.2551724137931037 2.241025641025641 2.227118644067797 2.2134453781512606 2.2 2.1867768595041324 2.173770491803279
25 48 6.61875 6.4363636363636365 6.264705882352942 6.102857142857143 5.95 5.805405405405406 5.6684210526315795 5.538461538461538 5.415 5.297560975609756 5.185714285714286 5.07906976744186 4.9772727272727275 4.880000000000001 4.786956521739131 4.697872340425532 4.612500000000001 4.530612244897959 4.452 4.376470588235295 4.303846153846154 4.233962264150943 4.166666666666667 4.1018181818181825 4.039285714285715 3.978947368421053 3.920689655172414 3.8644067796610173 3.81 3.757377049180328 3.706451612903226 3.6571428571428575 3.609375 3.563076923076923 3.5181818181818185 3.4746268656716417 3.432352941176471 3.391304347826087 3.3514285714285714 3.312676056338028 3.2750000000000004 3.2383561643835614 3.2027027027027026 3.168 3.1342105263157896 3.1012987012987017 3.0692307692307694 3.037974683544304 3.0075000000000003 2.977777777777778 2.9487804878048784 2.920481927710844 2.8928571428571432 2.8658823529411768 2.8395348837209307 2.813793103448276 2.7886363636363636 2.764044943820225 2.74 2.7164835164835166 2.693478260869565 2.670967741935484 2.6489361702127665 2.6273684210526316 2.60625 2.585567010309279 2.5653061224489795 2.545454545454546 2.5260000000000002 2.5069306930693074 2.488235294117647 2.469902912621359 2.451923076923077 2.434285714285714 2.4169811320754717 2.4000000000000004 2.3833333333333337 2.36697247706422 2.350909090909091 2.3351351351351353 2.319642857142857 2.304424778761062 2.2894736842105265 2.274782608695652 2.260344827586207 2.246153846153846 2.2322033898305085 2.2184873949579833 2.205 2.1917355371900826
26 49 6.832258064516129 6.6375 6.454545454545455 6.282352941176471 6.12 5.966666666666667 5.821621621621622 5.684210526315789 5.553846153846154 5.430000000000001 5.31219512195122 5.2 5.093023255813954 4.990909090909091 4.8933333333333335 4.800000000000001 4.710638297872341 4.625 4.542857142857143 4.464 4.3882352941176475 4.315384615384616 4.245283018867925 4.177777777777779 4.112727272727273 4.050000000000001 3.9894736842105267 3.931034482758621 3.8745762711864407 3.82 3.7672131147540986 3.716129032258065 3.666666666666667 3.6187500000000004 3.5723076923076924 3.5272727272727273 3.4835820895522387 3.4411764705882355 3.4000000000000004 3.3600000000000003 3.3211267605633803 3.283333333333333 3.2465753424657535 3.210810810810811 3.176 3.1421052631578954 3.1090909090909093 3.0769230769230775 3.045569620253165 3.015 2.9851851851851854 2.9560975609756097 2.927710843373494 2.9000000000000004 2.8729411764705883 2.8465116279069766 2.820689655172414 2.795454545454546 2.7707865168539327 2.7466666666666666 2.723076923076923 2.7 2.67741935483871 2.6553191489361705 2.633684210526316 2.6125000000000003 2.5917525773195877 2.5714285714285716 2.5515151515151517 2.532 2.512871287128713 2.4941176470588236 2.475728155339806 2.457692307692308 2.4400000000000004 2.422641509433962 2.405607476635514 2.3888888888888893 2.372477064220184 2.3563636363636364 2.340540540540541 2.325 2.3097345132743365 2.294736842105263 2.2800000000000002 2.2655172413793103 2.2512820512820513 2.2372881355932206 2.223529411764706 2.21
27 50 7.0600000000000005 6.851612903225806 6.65625 6.472727272727273 6.300000000000001 6.137142857142857 5.983333333333334 5.837837837837839 5.700000000000001 5.569230769230769 5.445 5.326829268292682 5.214285714285714 5.106976744186047 5.004545454545455 4.906666666666667 4.8130434782608695 4.723404255319149 4.6375 4.555102040816327 4.476000000000001 4.4 4.326923076923077 4.256603773584906 4.188888888888889 4.123636363636364 4.060714285714286 4.0 3.9413793103448276 3.8847457627118644 3.83 3.7770491803278694 3.725806451612903 3.6761904761904765 3.6281250000000003 3.581538461538462 3.536363636363636 3.492537313432836 3.45 3.408695652173913 3.3685714285714288 3.3295774647887324 3.291666666666667 3.254794520547945 3.218918918918919 3.184 3.1500000000000004 3.116883116883117 3.084615384615385 3.0531645569620256 3.0225 2.992592592592593 2.963414634146342 2.9349397590361446 2.9071428571428575 2.88 2.8534883720930235 2.8275862068965516 2.8022727272727277 2.7775280898876407 2.7533333333333334 2.7296703296703297 2.706521739130435 2.683870967741936 2.6617021276595745 2.6400000000000006 2.6187500000000004 2.597938144329897 2.5775510204081638 2.5575757575757576 2.5380000000000003 2.5188118811881193 2.5 2.4815533980582525 2.463461538461538 2.4457142857142857 2.428301886792453 2.411214953271028 2.3944444444444444 2.377981651376147 2.3618181818181823 2.345945945945946 2.3303571428571432 2.3150442477876108 2.3000000000000003 2.2852173913043483 2.270689655172414 2.2564102564102564 2.2423728813559323 2.2285714285714286
28 51 7.30344827586207 7.08 6.870967741935484 6.675000000000001 6.49090909090909 6.31764705882353 6.154285714285715 6.0 5.854054054054054 5.715789473684211 5.584615384615385 5.46 5.341463414634147 5.228571428571429 5.120930232558139 5.0181818181818185 4.92 4.826086956521739 4.736170212765957 4.65 4.56734693877551 4.4879999999999995 4.411764705882353 4.338461538461539 4.267924528301887 4.2 4.134545454545455 4.071428571428571 4.010526315789473 3.951724137931035 3.8949152542372882 3.8400000000000003 3.7868852459016393 3.7354838709677423 3.685714285714286 3.6375 3.590769230769231 3.545454545454546 3.501492537313433 3.458823529411765 3.4173913043478263 3.3771428571428572 3.3380281690140845 3.3 3.263013698630137 3.2270270270270274 3.192 3.1578947368421053 3.1246753246753247 3.092307692307693 3.0607594936708864 3.0300000000000002 3.0 2.970731707317073 2.942168674698795 2.9142857142857146 2.887058823529412 2.86046511627907 2.8344827586206898 2.8090909090909095 2.784269662921348 2.7600000000000002 2.7362637362637363 2.71304347826087 2.690322580645162 2.6680851063829794 2.646315789473684 2.625 2.6041237113402067 2.5836734693877554 2.563636363636364 2.5440000000000005 2.5247524752475248 2.5058823529411764 2.487378640776699 2.4692307692307693 2.451428571428571 2.4339622641509435 2.416822429906542 2.4 2.38348623853211 2.3672727272727276 2.3513513513513518 2.335714285714286 2.320353982300885 2.3052631578947373 2.290434782608696 2.2758620689655173 2.2615384615384615 2.247457627118644
29 52 7.564285714285715 7.324137931034484 7.1000000000000005 6.890322580645162 6.69375 6.50909090909091 6.335294117647059 6.171428571428572 6.0166666666666675 5.870270270270271 5.731578947368421 5.6 5.4750000000000005 5.35609756097561 5.242857142857143 5.134883720930233 5.031818181818182 4.933333333333334 4.839130434782609 4.748936170212766 4.6625 4.579591836734695 4.5 4.423529411764706 4.35 4.279245283018868 4.211111111111111 4.1454545454545455 4.082142857142857 4.021052631578947 3.9620689655172416 3.9050847457627125 3.85 3.79672131147541 3.745161290322581 3.6952380952380954 3.646875 3.6 3.5545454545454547 3.5104477611940297 3.4676470588235295 3.4260869565217393 3.3857142857142857 3.3464788732394366 3.3083333333333336 3.271232876712329 3.2351351351351356 3.2 3.1657894736842107 3.132467532467533 3.1 3.068354430379747 3.0375000000000005 3.0074074074074075 2.9780487804878053 2.949397590361446 2.9214285714285717 2.894117647058824 2.8674418604651164 2.8413793103448275 2.8159090909090905 2.7910112359550565 2.766666666666667 2.742857142857143 2.7195652173913047 2.6967741935483875 2.6744680851063833 2.6526315789473687 2.63125 2.610309278350516 2.589795918367347 2.56969696969697 2.5500000000000003 2.530693069306931 2.511764705882353 2.4932038834951458 2.475 2.4571428571428573 2.439622641509434 2.4224299065420563 2.405555555555556 2.3889908256880736 2.372727272727273 2.3567567567567567 2.3410714285714285 2.3256637168141596 2.310526315789474 2.2956521739130435 2.2810344827586206 2.2666666666666666
30 53 7.844444444444445 7.585714285714286 7.344827586206897 7.12 6.909677419354839 6.7125 6.527272727272727 6.352941176470589 6.188571428571429 6.033333333333333 5.886486486486487 5.747368421052632 5.615384615384616 5.49 5.3707317073170735 5.257142857142858 5.148837209302326 5.045454545454546 4.946666666666667 4.852173913043479 4.761702127659575 4.675000000000001 4.591836734693878 4.5120000000000005 4.435294117647059 4.361538461538462 4.290566037735849 4.222222222222222 4.156363636363636 4.0928571428571425 4.031578947368422 3.972413793103449 3.915254237288136 3.8600000000000003 3.806557377049181 3.7548387096774194 3.704761904761905 3.65625 3.609230769230769 3.5636363636363635 3.519402985074627 3.476470588235294 3.4347826086956523 3.394285714285714 3.3549295774647887 3.3166666666666673 3.279452054794521 3.243243243243244 3.208 3.173684210526316 3.1402597402597405 3.107692307692308 3.075949367088608 3.045 3.014814814814815 2.9853658536585366 2.9566265060240964 2.928571428571429 2.9011764705882355 2.874418604651163 2.8482758620689657 2.8227272727272728 2.7977528089887644 2.7733333333333334 2.7494505494505495 2.7260869565217396 2.7032258064516133 2.6808510638297873 2.658947368421053 2.6375 2.6164948453608248 2.595918367346939 2.575757575757576 2.556 2.5366336633663367 2.5176470588235293 2.499029126213592 2.480769230769231 2.4628571428571426 2.4452830188679244 2.4280373831775703 2.4111111111111114 2.394495412844037 2.3781818181818184 2.3621621621621625 2.3464285714285715 2.330973451327434 2.3157894736842106 2.3008695652173916 2.2862068965517244
31 54 8.146153846153847 7.866666666666667 7.607142857142858 7.36551724137931 7.140000000000001 6.929032258064517 6.731250000000001 6.545454545454546 6.370588235294118 6.205714285714286 6.050000000000001 5.902702702702703 5.7631578947368425 5.63076923076923 5.505000000000001 5.385365853658537 5.271428571428572 5.162790697674419 5.059090909090909 4.960000000000001 4.865217391304348 4.774468085106383 4.6875 4.604081632653061 4.524000000000001 4.447058823529412 4.3730769230769235 4.30188679245283 4.233333333333333 4.167272727272727 4.103571428571429 4.042105263157895 3.9827586206896552 3.92542372881356 3.87 3.8163934426229513 3.764516129032258 3.7142857142857144 3.6656250000000004 3.6184615384615384 3.5727272727272728 3.5283582089552237 3.485294117647059 3.443478260869565 3.402857142857143 3.3633802816901412 3.325 3.287671232876713 3.2513513513513517 3.216 3.181578947368421 3.1480519480519487 3.115384615384616 3.083544303797469 3.0525 3.022222222222222 2.9926829268292687 2.9638554216867474 2.935714285714286 2.908235294117647 2.8813953488372093 2.8551724137931034 2.829545454545455 2.8044943820224724 2.7800000000000002 2.7560439560439565 2.732608695652174 2.709677419354839 2.6872340425531918 2.665263157894737 2.64375 2.6226804123711345 2.6020408163265305 2.581818181818182 2.5620000000000003 2.5425742574257426 2.523529411764706 2.5048543689320386 2.4865384615384616 2.468571428571429 2.4509433962264153 2.433644859813084 2.416666666666667 2.4000000000000004 2.3836363636363638 2.367567567567568 2.3517857142857146 2.336283185840708 2.3210526315789473 2.3060869565217397
32 55 8.472000000000001 8.169230769230769 7.888888888888889 7.628571428571428 7.386206896551725 7.16 6.948387096774194 6.75 6.563636363636364 6.3882352941176475 6.222857142857142 6.066666666666666 5.918918918918919 5.778947368421052 5.646153846153847 5.52 5.4 5.2857142857142865 5.176744186046512 5.072727272727273 4.973333333333334 4.878260869565217 4.787234042553191 4.700000000000001 4.616326530612245 4.5360000000000005 4.458823529411765 4.384615384615385 4.313207547169812 4.2444444444444445 4.178181818181819 4.114285714285715 4.052631578947369 3.9931034482758623 3.9355932203389834 3.88 3.8262295081967213 3.774193548387097 3.723809523809524 3.675 3.6276923076923078 3.581818181818182 3.5373134328358207 3.4941176470588236 3.4521739130434783 3.411428571428572 3.3718309859154934 3.333333333333334 3.2958904109589042 3.2594594594594595 3.224 3.1894736842105265 3.1558441558441563 3.1230769230769235 3.091139240506329 3.0600000000000005 3.0296296296296297 3.0 2.9710843373493976 2.942857142857143 2.9152941176470586 2.888372093023256 2.862068965517242 2.836363636363637 2.81123595505618 2.786666666666667 2.7626373626373626 2.739130434782609 2.716129032258065 2.693617021276596 2.6715789473684213 2.6500000000000004 2.6288659793814437 2.6081632653061226 2.587878787878788 2.568 2.5485148514851486 2.5294117647058822 2.5106796116504855 2.4923076923076923 2.4742857142857146 2.456603773584906 2.4392523364485985 2.4222222222222225 2.4055045871559635 2.3890909090909096 2.372972972972973 2.357142857142857 2.3415929203539827 2.3263157894736843
33 56 8.825 8.496 8.192307692307693 7.911111111111111 7.65 7.406896551724138 7.1800000000000015 6.967741935483872 6.768750000000001 6.581818181818182 6.405882352941177 6.24 6.083333333333334 5.935135135135136 5.794736842105264 5.661538461538462 5.535 5.414634146341464 5.300000000000001 5.190697674418605 5.086363636363637 4.986666666666666 4.891304347826087 4.800000000000001 4.7125 4.628571428571428 4.548 4.470588235294118 4.3961538461538465 4.324528301886792 4.2555555555555555 4.189090909090909 4.125 4.063157894736842 4.00344827586207 3.9457627118644067 3.8899999999999997 3.836065573770492 3.7838709677419358 3.7333333333333334 3.684375 3.636923076923077 3.590909090909091 3.5462686567164177 3.5029411764705882 3.4608695652173918 3.4200000000000004 3.3802816901408455 3.341666666666667 3.3041095890410963 3.2675675675675677 3.232 3.197368421052632 3.163636363636364 3.130769230769231 3.09873417721519 3.0675 3.037037037037037 3.0073170731707317 2.978313253012048 2.95 2.9223529411764706 2.8953488372093026 2.8689655172413797 2.8431818181818187 2.8179775280898878 2.793333333333334 2.769230769230769 2.7456521739130437 2.7225806451612904 2.7 2.6778947368421058 2.65625 2.6350515463917525 2.614285714285714 2.5939393939393938 2.574 2.5544554455445545 2.5352941176470587 2.5165048543689323 2.4980769230769235 2.4800000000000004 2.4622641509433967 2.444859813084112 2.427777777777778 2.4110091743119266 2.3945454545454545 2.3783783783783785 2.3625000000000003 2.346902654867257
34 57 9.208695652173914 8.850000000000001 8.52 8.215384615384615 7.933333333333334 7.671428571428573 7.427586206896553 7.200000000000001 6.987096774193549 6.7875000000000005 6.6000000000000005 6.423529411764706 6.257142857142858 6.1 5.951351351351352 5.810526315789474 5.676923076923077 5.550000000000001 5.429268292682927 5.314285714285715 5.2046511627906975 5.1000000000000005 5.0 4.904347826086957 4.812765957446809 4.7250000000000005 4.640816326530612 4.5600000000000005 4.482352941176471 4.407692307692308 4.335849056603774 4.2666666666666675 4.2 4.135714285714286 4.0736842105263165 4.013793103448276 3.955932203389831 3.9000000000000004 3.8459016393442624 3.7935483870967746 3.742857142857143 3.69375 3.6461538461538456 3.6 3.5552238805970147 3.5117647058823533 3.4695652173913043 3.428571428571429 3.3887323943661976 3.3500000000000005 3.312328767123288 3.275675675675676 3.24 3.205263157894737 3.1714285714285717 3.138461538461539 3.1063291139240508 3.075 3.0444444444444443 3.0146341463414634 2.985542168674699 2.9571428571428573 2.9294117647058826 2.902325581395349 2.8758620689655174 2.8500000000000005 2.8247191011235957 2.8 2.7758241758241757 2.752173913043478 2.729032258064516 2.706382978723404 2.6842105263157894 2.6625 2.641237113402062 2.6204081632653065 2.6 2.58 2.5603960396039604 2.541176470588235 2.5223300970873788 2.503846153846154 2.4857142857142858 2.467924528301887 2.4504672897196267 2.4333333333333336 2.4165137614678898 2.4000000000000004 2.383783783783784 2.367857142857143
35 58 9.627272727272729 9.234782608695653 8.875 8.544 8.23846153846154 7.955555555555556 7.692857142857143 7.448275862068966 7.220000000000001 7.006451612903226 6.80625 6.618181818181819 6.4411764705882355 6.274285714285714 6.116666666666667 5.967567567567568 5.826315789473685 5.6923076923076925 5.5649999999999995 5.443902439024391 5.328571428571429 5.21860465116279 5.113636363636363 5.013333333333334 4.917391304347826 4.825531914893617 4.737500000000001 4.653061224489797 4.572000000000001 4.4941176470588236 4.4192307692307695 4.3471698113207555 4.277777777777779 4.210909090909091 4.146428571428572 4.08421052631579 4.024137931034483 3.9661016949152543 3.91 3.855737704918033 3.803225806451613 3.7523809523809524 3.703125 3.655384615384615 3.6090909090909093 3.5641791044776125 3.520588235294118 3.4782608695652177 3.4371428571428577 3.3971830985915497 3.3583333333333334 3.3205479452054796 3.283783783783784 3.248 3.2131578947368427 3.1792207792207794 3.1461538461538465 3.1139240506329116 3.0825 3.0518518518518523 3.0219512195121947 2.9927710843373494 2.9642857142857144 2.936470588235294 2.909302325581396 2.8827586206896556 2.8568181818181824 2.8314606741573036 2.8066666666666666 2.7824175824175827 2.7586956521739134 2.735483870967742 2.7127659574468086 2.690526315789474 2.66875 2.6474226804123715 2.626530612244898 2.606060606060606 2.5860000000000003 2.5663366336633664 2.547058823529412 2.528155339805825 2.509615384615385 2.4914285714285715 2.4735849056603776 2.4560747663551403 2.438888888888889 2.4220183486238533 2.4054545454545453 2.3891891891891897
36 59 10.085714285714285 9.654545454545456 9.26086956521739 8.9 8.568 8.261538461538462 7.977777777777778 7.714285714285715 7.468965517241379 7.24 7.025806451612904 6.825 6.636363636363637 6.458823529411765 6.291428571428572 6.133333333333334 5.983783783783784 5.842105263157896 5.707692307692309 5.58 5.458536585365854 5.342857142857143 5.232558139534884 5.127272727272728 5.026666666666667 4.930434782608696 4.838297872340426 4.75 4.66530612244898 4.584 4.5058823529411764 4.430769230769231 4.358490566037736 4.28888888888889 4.221818181818183 4.1571428571428575 4.094736842105263 4.03448275862069 3.976271186440678 3.92 3.865573770491803 3.8129032258064517 3.761904761904762 3.7125 3.6646153846153844 3.6181818181818186 3.5731343283582095 3.5294117647058827 3.4869565217391307 3.4457142857142857 3.4056338028169018 3.366666666666667 3.3287671232876717 3.291891891891892 3.2560000000000002 3.2210526315789476 3.187012987012987 3.153846153846154 3.1215189873417724 3.09 3.0592592592592593 3.029268292682927 3.0000000000000004 2.9714285714285715 2.9435294117647066 2.916279069767442 2.8896551724137933 2.863636363636364 2.8382022471910116 2.8133333333333335 2.789010989010989 2.765217391304348 2.741935483870968 2.719148936170213 2.696842105263158 2.6750000000000003 2.6536082474226803 2.63265306122449 2.6121212121212123 2.5919999999999996 2.572277227722773 2.5529411764705885 2.533980582524272 2.5153846153846158 2.4971428571428573 2.479245283018868 2.4616822429906544 2.4444444444444446 2.427522935779817 2.410909090909091
37 60 10.59 10.114285714285714 9.681818181818183 9.286956521739132 8.925 8.592 8.284615384615385 8.0 7.735714285714286 7.489655172413793 7.26 7.04516129032258 6.84375 6.654545454545454 6.476470588235294 6.30857142857143 6.15 6.0 5.8578947368421055 5.723076923076924 5.595000000000001 5.4731707317073175 5.357142857142858 5.246511627906977 5.1409090909090915 5.04 4.943478260869566 4.851063829787234 4.7625 4.677551020408163 4.596 4.517647058823529 4.4423076923076925 4.369811320754717 4.300000000000001 4.2327272727272724 4.167857142857143 4.105263157894737 4.044827586206897 3.986440677966102 3.9300000000000006 3.8754098360655735 3.8225806451612905 3.7714285714285714 3.721875 3.6738461538461546 3.627272727272728 3.5820895522388065 3.5382352941176474 3.4956521739130437 3.4542857142857146 3.414084507042254 3.375 3.336986301369863 3.3000000000000003 3.2640000000000002 3.2289473684210526 3.1948051948051948 3.161538461538462 3.1291139240506327 3.0975 3.0666666666666664 3.036585365853659 3.007228915662651 2.9785714285714286 2.950588235294118 2.9232558139534888 2.8965517241379315 2.8704545454545456 2.844943820224719 2.8200000000000003 2.795604395604396 2.7717391304347827 2.7483870967741932 2.725531914893617 2.703157894736842 2.6812500000000004 2.6597938144329896 2.6387755102040815 2.618181818181818 2.598 2.5782178217821783 2.558823529411765 2.539805825242719 2.5211538461538465 2.502857142857143 2.4849056603773585 2.4672897196261685 2.45 2.43302752293578
38 61 11.147368421052633 10.620000000000001 10.142857142857142 9.709090909090909 9.31304347826087 8.950000000000001 8.616 8.307692307692308 8.022222222222222 7.757142857142858 7.5103448275862075 7.28 7.064516129032258 6.862500000000001 6.672727272727274 6.4941176470588236 6.325714285714286 6.166666666666667 6.0162162162162165 5.873684210526315 5.7384615384615385 5.61 5.487804878048781 5.371428571428572 5.26046511627907 5.154545454545455 5.053333333333334 4.9565217391304355 4.863829787234042 4.775 4.689795918367347 4.6080000000000005 4.529411764705882 4.453846153846154 4.381132075471698 4.311111111111112 4.243636363636364 4.178571428571429 4.115789473684211 4.055172413793104 3.9966101694915253 3.9400000000000004 3.8852459016393444 3.832258064516129 3.780952380952381 3.73125 3.683076923076923 3.6363636363636367 3.5910447761194035 3.547058823529412 3.5043478260869567 3.462857142857143 3.422535211267606 3.3833333333333333 3.345205479452055 3.308108108108108 3.2720000000000002 3.2368421052631584 3.2025974025974024 3.169230769230769 3.1367088607594935 3.105 3.0740740740740744 3.0439024390243903 3.014457831325301 2.9857142857142858 2.9576470588235297 2.930232558139535 2.903448275862069 2.8772727272727274 2.8516853932584274 2.826666666666667 2.802197802197802 2.7782608695652176 2.7548387096774194 2.7319148936170214 2.7094736842105265 2.6875 2.6659793814432993 2.644897959183673 2.6242424242424245 2.604 2.5841584158415847 2.5647058823529414 2.545631067961165 2.5269230769230773 2.508571428571429 2.4905660377358494 2.472897196261682 2.4555555555555557
39 62 11.766666666666666 11.178947368421053 10.65 10.17142857142857 9.736363636363636 9.339130434782609 8.975000000000001 8.64 8.330769230769231 8.044444444444444 7.7785714285714285 7.531034482758621 7.300000000000001 7.083870967741936 6.8812500000000005 6.690909090909091 6.511764705882354 6.342857142857143 6.183333333333334 6.032432432432433 5.889473684210527 5.753846153846154 5.625 5.502439024390245 5.385714285714286 5.274418604651164 5.168181818181818 5.066666666666667 4.969565217391304 4.876595744680851 4.7875 4.702040816326531 4.62 4.541176470588236 4.4653846153846155 4.392452830188679 4.322222222222223 4.254545454545455 4.189285714285715 4.126315789473685 4.06551724137931 4.0067796610169495 3.95 3.8950819672131147 3.8419354838709676 3.790476190476191 3.7406250000000005 3.6923076923076925 3.645454545454546 3.6000000000000005 3.5558823529411767 3.5130434782608697 3.4714285714285715 3.430985915492958 3.391666666666667 3.353424657534247 3.3162162162162163 3.2800000000000002 3.2447368421052634 3.21038961038961 3.176923076923077 3.1443037974683543 3.1125000000000003 3.081481481481482 3.0512195121951224 3.0216867469879523 2.992857142857143 2.9647058823529413 2.9372093023255816 2.910344827586207 2.8840909090909093 2.858426966292135 2.8333333333333335 2.8087912087912086 2.784782608695652 2.761290322580645 2.738297872340426 2.7157894736842105 2.69375 2.6721649484536085 2.651020408163266 2.630303030303031 2.6100000000000003 2.5900990099009906 2.570588235294118 2.5514563106796118 2.532692307692308 2.5142857142857142 2.4962264150943394 2.4785046728971967
40 63 12.458823529411765 11.8 11.210526315789474 10.68 10.2 9.763636363636365 9.365217391304348 9.0 8.664000000000001 8.353846153846154 8.066666666666666 7.8 7.551724137931036 7.32 7.103225806451613 6.9 6.709090909090909 6.529411764705882 6.36 6.200000000000001 6.0486486486486495 5.905263157894737 5.76923076923077 5.640000000000001 5.517073170731708 5.4 5.288372093023256 5.181818181818182 5.08 4.982608695652173 4.88936170212766 4.800000000000001 4.714285714285714 4.632000000000001 4.552941176470589 4.476923076923077 4.403773584905661 4.333333333333334 4.265454545454546 4.2 4.136842105263158 4.075862068965517 4.016949152542373 3.96 3.904918032786885 3.851612903225807 3.8000000000000007 3.7500000000000004 3.701538461538462 3.654545454545455 3.608955223880597 3.5647058823529414 3.5217391304347827 3.48 3.43943661971831 3.4000000000000004 3.361643835616438 3.3243243243243246 3.2880000000000003 3.2526315789473683 3.218181818181818 3.184615384615385 3.1518987341772156 3.12 3.0888888888888895 3.058536585365854 3.0289156626506024 3.0 2.971764705882353 2.944186046511628 2.9172413793103447 2.890909090909091 2.865168539325843 2.84 2.8153846153846156 2.7913043478260873 2.767741935483871 2.74468085106383 2.7221052631578946 2.7 2.678350515463918 2.6571428571428575 2.6363636363636367 2.616 2.596039603960396 2.5764705882352943 2.5572815533980586 2.5384615384615383 2.52 2.5018867924528303
41 64 13.2375 12.494117647058825 11.833333333333334 11.242105263157896 10.71 10.228571428571428 9.790909090909093 9.391304347826088 9.025 8.688 8.376923076923077 8.088888888888889 7.821428571428572 7.572413793103449 7.340000000000001 7.122580645161291 6.918750000000001 6.7272727272727275 6.547058823529412 6.377142857142857 6.216666666666667 6.064864864864865 5.921052631578947 5.784615384615385 5.655000000000001 5.531707317073171 5.414285714285715 5.302325581395349 5.195454545454545 5.093333333333334 4.995652173913044 4.902127659574468 4.8125 4.726530612244899 4.644 4.564705882352941 4.4884615384615385 4.415094339622642 4.344444444444445 4.276363636363636 4.210714285714286 4.147368421052631 4.086206896551724 4.027118644067796 3.9699999999999998 3.914754098360656 3.8612903225806456 3.80952380952381 3.7593750000000004 3.7107692307692313 3.6636363636363636 3.6179104477611945 3.573529411764706 3.5304347826086957 3.488571428571429 3.447887323943662 3.408333333333333 3.3698630136986303 3.3324324324324324 3.2960000000000003 3.2605263157894737 3.225974025974026 3.1923076923076925 3.1594936708860764 3.1275000000000004 3.0962962962962965 3.065853658536586 3.0361445783132535 3.0071428571428576 2.978823529411765 2.9511627906976745 2.9241379310344833 2.897727272727273 2.8719101123595507 2.8466666666666667 2.821978021978022 2.7978260869565217 2.774193548387097 2.751063829787234 2.728421052631579 2.7062500000000003 2.684536082474227 2.663265306122449 2.6424242424242426 2.622 2.6019801980198025 2.5823529411764707 2.5631067961165046 2.5442307692307695 2.525714285714286
42 65 14.120000000000001 13.275 12.529411764705884 11.866666666666667 11.273684210526316 10.740000000000002 10.257142857142858 9.818181818181818 9.417391304347827 9.05 8.712 8.4 8.111111111111112 7.842857142857143 7.593103448275863 7.36 7.141935483870968 6.9375 6.745454545454546 6.564705882352942 6.394285714285715 6.233333333333334 6.081081081081081 5.936842105263159 5.800000000000001 5.67 5.546341463414635 5.428571428571429 5.316279069767442 5.209090909090909 5.106666666666667 5.008695652173913 4.914893617021277 4.825000000000001 4.738775510204082 4.656000000000001 4.576470588235294 4.5 4.426415094339623 4.355555555555556 4.287272727272727 4.2214285714285715 4.157894736842105 4.096551724137931 4.03728813559322 3.9800000000000004 3.9245901639344263 3.870967741935485 3.8190476190476192 3.7687500000000003 3.7199999999999998 3.672727272727273 3.6268656716417915 3.5823529411764707 3.539130434782609 3.4971428571428573 3.4563380281690144 3.416666666666667 3.3780821917808224 3.34054054054054 3.3040000000000003 3.268421052631579 3.233766233766234 3.2 3.167088607594937 3.1350000000000002 3.103703703703704 3.073170731707317 3.0433734939759036 3.0142857142857142 2.985882352941177 2.9581395348837214 2.931034482758621 2.9045454545454543 2.878651685393258 2.8533333333333335 2.8285714285714283 2.8043478260869565 2.7806451612903227 2.7574468085106383 2.7347368421052636 2.7125000000000004 2.6907216494845363 2.669387755102041 2.6484848484848484 2.628 2.607920792079208 2.588235294117647 2.5689320388349515 2.5500000000000003
43 66 15.12857142857143 14.16 13.3125 12.564705882352943 11.9 11.305263157894737 10.77 10.285714285714286 9.845454545454546 9.443478260869565 9.075 8.736 8.423076923076923 8.133333333333333 7.864285714285715 7.613793103448276 7.380000000000001 7.161290322580646 6.956250000000001 6.763636363636365 6.58235294117647 6.411428571428571 6.25 6.097297297297298 5.9526315789473685 5.815384615384616 5.6850000000000005 5.560975609756097 5.442857142857143 5.330232558139535 5.222727272727273 5.12 5.021739130434783 4.927659574468086 4.8375 4.751020408163265 4.668 4.588235294117647 4.511538461538462 4.437735849056605 4.366666666666667 4.298181818181819 4.232142857142857 4.168421052631579 4.106896551724137 4.047457627118645 3.99 3.9344262295081975 3.8806451612903228 3.8285714285714287 3.778125 3.729230769230769 3.6818181818181817 3.635820895522388 3.591176470588236 3.5478260869565217 3.5057142857142862 3.464788732394366 3.4250000000000003 3.3863013698630136 3.3486486486486484 3.3120000000000003 3.2763157894736845 3.2415584415584417 3.207692307692308 3.1746835443037975 3.1425 3.111111111111111 3.0804878048780493 3.0506024096385547 3.0214285714285714 2.9929411764705884 2.9651162790697674 2.9379310344827587 2.911363636363636 2.8853932584269666 2.8600000000000003 2.835164835164835 2.8108695652173914 2.7870967741935484 2.7638297872340427 2.7410526315789476 2.71875 2.6969072164948455 2.6755102040816325 2.654545454545455 2.6340000000000003 2.6138613861386144 2.5941176470588236 2.5747572815533983
44 67 16.292307692307695 15.171428571428573 14.200000000000001 13.350000000000001 12.600000000000001 11.933333333333334 11.336842105263159 10.8 10.314285714285715 9.872727272727275 9.469565217391304 9.100000000000001 8.76 8.446153846153846 8.155555555555555 7.885714285714286 7.63448275862069 7.4 7.1806451612903235 6.9750000000000005 6.781818181818182 6.6000000000000005 6.428571428571429 6.2666666666666675 6.113513513513514 5.968421052631579 5.830769230769231 5.7 5.5756097560975615 5.457142857142857 5.344186046511628 5.236363636363636 5.133333333333334 5.034782608695653 4.940425531914894 4.8500000000000005 4.763265306122449 4.68 4.6 4.523076923076923 4.4490566037735855 4.377777777777778 4.309090909090909 4.242857142857143 4.178947368421053 4.117241379310345 4.057627118644068 4.0 3.944262295081968 3.8903225806451616 3.8380952380952382 3.7875000000000005 3.7384615384615385 3.690909090909091 3.6447761194029855 3.6 3.556521739130435 3.5142857142857142 3.4732394366197186 3.4333333333333336 3.3945205479452056 3.3567567567567567 3.3200000000000003 3.28421052631579 3.2493506493506494 3.2153846153846155 3.1822784810126583 3.1500000000000004 3.1185185185185187 3.0878048780487806 3.057831325301205 3.028571428571429 3.0 2.9720930232558143 2.9448275862068964 2.918181818181818 2.892134831460674 2.8666666666666667 2.8417582417582414 2.817391304347826 2.7935483870967746 2.7702127659574467 2.7473684210526317 2.7250000000000005 2.703092783505155 2.6816326530612247 2.660606060606061 2.64 2.61980198019802 2.6
45 68 17.65 16.338461538461537 15.214285714285715 14.24 13.3875 12.63529411764706 11.966666666666669 11.368421052631579 10.83 10.342857142857143 9.9 9.495652173913044 9.125 8.784 8.46923076923077 8.177777777777777 7.907142857142858 7.655172413793104 7.42 7.2 6.99375 6.800000000000001 6.617647058823529 6.445714285714287 6.283333333333334 6.12972972972973 5.98421052631579 5.846153846153847 5.715 5.590243902439024 5.4714285714285715 5.358139534883722 5.25 5.146666666666667 5.047826086956523 4.953191489361703 4.862500000000001 4.775510204081633 4.692 4.6117647058823525 4.534615384615385 4.460377358490566 4.388888888888888 4.319999999999999 4.253571428571428 4.189473684210527 4.127586206896552 4.067796610169492 4.01 3.954098360655738 3.9000000000000004 3.847619047619048 3.796875 3.747692307692308 3.7 3.653731343283582 3.6088235294117648 3.5652173913043477 3.522857142857143 3.4816901408450702 3.4416666666666664 3.4027397260273973 3.3648648648648654 3.3280000000000003 3.2921052631578953 3.257142857142857 3.223076923076923 3.189873417721519 3.1575 3.1259259259259258 3.0951219512195123 3.065060240963856 3.035714285714286 3.007058823529412 2.9790697674418603 2.9517241379310346 2.925 2.898876404494382 2.8733333333333335 2.8483516483516484 2.823913043478261 2.8000000000000003 2.7765957446808516 2.753684210526316 2.73125 2.709278350515464 2.687755102040817 2.666666666666667 2.646 2.625742574257426
46 69 19.254545454545458 17.700000000000003 16.384615384615387 15.257142857142856 14.280000000000001 13.425 12.670588235294119 12.0 11.400000000000002 10.860000000000001 10.371428571428572 9.927272727272728 9.521739130434783 9.15 8.808 8.492307692307694 8.200000000000001 7.928571428571429 7.675862068965518 7.44 7.219354838709677 7.0125 6.818181818181818 6.635294117647059 6.4628571428571435 6.300000000000001 6.145945945945947 6.0 5.861538461538462 5.73 5.604878048780488 5.485714285714286 5.372093023255815 5.263636363636364 5.16 5.060869565217391 4.965957446808511 4.875 4.7877551020408164 4.704000000000001 4.623529411764705 4.546153846153846 4.471698113207547 4.3999999999999995 4.330909090909091 4.264285714285715 4.2 4.137931034482759 4.077966101694916 4.0200000000000005 3.9639344262295086 3.909677419354839 3.8571428571428577 3.8062500000000004 3.7569230769230773 3.7090909090909094 3.662686567164179 3.61764705882353 3.573913043478261 3.5314285714285716 3.4901408450704228 3.45 3.41095890410959 3.372972972972973 3.3360000000000003 3.3000000000000003 3.2649350649350652 3.230769230769231 3.19746835443038 3.165 3.1333333333333337 3.102439024390244 3.072289156626506 3.0428571428571427 3.0141176470588236 2.986046511627907 2.9586206896551723 2.9318181818181817 2.90561797752809 2.88 2.8549450549450555 2.830434782608696 2.806451612903226 2.7829787234042556 2.76 2.7375000000000003 2.7154639175257733 2.6938775510204085 2.672727272727273 2.652
47 70 21.18 19.309090909090912 17.75 16.43076923076923 15.3 14.32 13.462500000000002 12.705882352941178 12.033333333333335 11.431578947368422 10.89 10.4 9.954545454545455 9.547826086956523 9.175 8.832 8.515384615384615 8.222222222222223 7.95 7.696551724137931 7.46 7.2387096774193544 7.03125 6.836363636363638 6.6529411764705895 6.48 6.316666666666667 6.162162162162163 6.015789473684211 5.876923076923077 5.745 5.619512195121952 5.5 5.3860465116279075 5.277272727272727 5.173333333333334 5.07391304347826 4.9787234042553195 4.8875 4.800000000000001 4.716 4.635294117647058 4.557692307692308 4.483018867924528 4.411111111111111 4.341818181818182 4.275 4.210526315789474 4.148275862068966 4.088135593220339 4.03 3.973770491803279 3.9193548387096775 3.8666666666666667 3.8156250000000003 3.766153846153846 3.7181818181818187 3.671641791044776 3.626470588235294 3.5826086956521737 3.54 3.4985915492957744 3.458333333333334 3.419178082191781 3.3810810810810814 3.3440000000000003 3.3078947368421057 3.272727272727273 3.2384615384615385 3.2050632911392407 3.1725000000000003 3.140740740740741 3.109756097560976 3.079518072289157 3.05 3.0211764705882356 2.9930232558139536 2.9655172413793105 2.938636363636364 2.9123595505617974 2.8866666666666667 2.861538461538462 2.836956521739131 2.812903225806452 2.7893617021276595 2.7663157894736843 2.7437500000000004 2.7216494845360826 2.7 2.678787878787879
48 71 23.53333333333333 21.240000000000002 19.363636363636367 17.8 16.47692307692308 15.342857142857145 14.360000000000003 13.5 12.741176470588236 12.066666666666666 11.463157894736842 10.92 10.428571428571429 9.981818181818182 9.573913043478262 9.200000000000001 8.856000000000002 8.53846153846154 8.244444444444444 7.9714285714285715 7.7172413793103445 7.48 7.258064516129032 7.050000000000001 6.854545454545455 6.670588235294118 6.497142857142858 6.333333333333334 6.178378378378379 6.031578947368422 5.892307692307693 5.760000000000001 5.634146341463415 5.514285714285714 5.4 5.290909090909091 5.1866666666666665 5.086956521739131 4.991489361702127 4.9 4.812244897959184 4.728 4.647058823529411 4.569230769230769 4.49433962264151 4.4222222222222225 4.3527272727272734 4.2857142857142865 4.221052631578948 4.158620689655173 4.098305084745763 4.04 3.9836065573770494 3.9290322580645163 3.8761904761904766 3.825 3.7753846153846156 3.7272727272727275 3.6805970149253735 3.635294117647059 3.591304347826087 3.548571428571429 3.507042253521127 3.466666666666667 3.427397260273973 3.3891891891891897 3.3520000000000003 3.3157894736842106 3.280519480519481 3.246153846153846 3.2126582278481015 3.1800000000000006 3.1481481481481484 3.1170731707317074 3.0867469879518072 3.057142857142857 3.028235294117647 3.0 2.972413793103448 2.9454545454545453 2.9191011235955058 2.8933333333333335 2.8681318681318686 2.8434782608695652 2.8193548387096774 2.7957446808510644 2.772631578947369 2.75 2.727835051546392 2.706122448979592
49 72 26.475 23.6 21.3 19.418181818181818 17.85 16.523076923076925 15.385714285714286 14.400000000000002 13.537500000000001 12.776470588235295 12.100000000000001 11.494736842105263 10.950000000000001 10.457142857142857 10.00909090909091 9.600000000000001 9.225000000000001 8.88 8.561538461538461 8.266666666666667 7.992857142857144 7.737931034482759 7.5 7.27741935483871 7.0687500000000005 6.872727272727273 6.688235294117648 6.514285714285714 6.3500000000000005 6.194594594594594 6.0473684210526315 5.907692307692308 5.775 5.648780487804879 5.5285714285714285 5.413953488372093 5.304545454545455 5.2 5.1000000000000005 5.004255319148936 4.9125 4.8244897959183675 4.74 4.658823529411764 4.580769230769231 4.505660377358491 4.433333333333334 4.363636363636364 4.296428571428572 4.231578947368421 4.1689655172413795 4.1084745762711865 4.050000000000001 3.9934426229508198 3.9387096774193555 3.885714285714286 3.834375 3.784615384615385 3.7363636363636363 3.6895522388059705 3.644117647058824 3.6 3.5571428571428574 3.515492957746479 3.4750000000000005 3.4356164383561647 3.3972972972972975 3.3600000000000003 3.3236842105263165 3.2883116883116887 3.253846153846154 3.2202531645569623 3.1875 3.155555555555556 3.124390243902439 3.093975903614458 3.0642857142857145 3.0352941176470587 3.0069767441860464 2.979310344827586 2.9522727272727276 2.9258426966292137 2.9000000000000004 2.874725274725275 2.8500000000000005 2.8258064516129036 2.8021276595744684 2.778947368421053 2.75625 2.734020618556701
50 73 30.25714285714286 26.55 23.666666666666668 21.36 19.472727272727273 17.900000000000002 16.56923076923077 15.42857142857143 14.440000000000001 13.575000000000001 12.811764705882354 12.133333333333333 11.526315789473685 10.98 10.485714285714286 10.036363636363637 9.626086956521739 9.25 8.904 8.584615384615384 8.28888888888889 8.014285714285714 7.758620689655173 7.520000000000001 7.296774193548387 7.0875 6.8909090909090915 6.7058823529411775 6.531428571428572 6.366666666666667 6.210810810810811 6.063157894736843 5.923076923076923 5.790000000000001 5.663414634146342 5.542857142857143 5.427906976744186 5.318181818181818 5.213333333333334 5.113043478260869 5.017021276595745 4.925000000000001 4.836734693877551 4.752 4.670588235294118 4.592307692307693 4.516981132075472 4.444444444444445 4.374545454545455 4.307142857142858 4.242105263157895 4.179310344827586 4.118644067796611 4.0600000000000005 4.00327868852459 3.9483870967741934 3.8952380952380956 3.84375 3.793846153846154 3.745454545454545 3.6985074626865675 3.6529411764705886 3.6086956521739135 3.565714285714286 3.523943661971831 3.4833333333333334 3.4438356164383563 3.4054054054054053 3.3680000000000003 3.3315789473684214 3.2961038961038964 3.2615384615384615 3.227848101265823 3.1950000000000003 3.162962962962963 3.131707317073171 3.1012048192771084 3.071428571428571 3.0423529411764707 3.013953488372093 2.9862068965517246 2.959090909090909 2.9325842696629216 2.906666666666667 2.8813186813186817 2.856521739130435 2.8322580645161293 2.8085106382978724 2.785263157894737 2.7625
51 74 35.3 30.342857142857145 26.625 23.733333333333334 21.42 19.52727272727273 17.950000000000003 16.615384615384617 15.471428571428572 14.48 13.6125 12.847058823529412 12.166666666666668 11.557894736842105 11.010000000000002 10.514285714285716 10.063636363636364 9.652173913043478 9.275 8.928 8.607692307692307 8.311111111111112 8.035714285714286 7.7793103448275875 7.540000000000001 7.316129032258065 7.106250000000001 6.90909090909091 6.723529411764706 6.548571428571428 6.383333333333333 6.227027027027027 6.078947368421053 5.938461538461539 5.805 5.678048780487805 5.557142857142857 5.44186046511628 5.331818181818182 5.226666666666667 5.126086956521739 5.029787234042553 4.9375 4.848979591836734 4.763999999999999 4.682352941176472 4.603846153846154 4.528301886792454 4.455555555555556 4.385454545454546 4.317857142857143 4.252631578947368 4.189655172413794 4.128813559322034 4.07 4.0131147540983605 3.958064516129032 3.904761904761905 3.8531250000000004 3.8030769230769232 3.7545454545454544 3.7074626865671645 3.6617647058823533 3.6173913043478265 3.5742857142857147 3.5323943661971837 3.491666666666667 3.4520547945205484 3.4135135135135135 3.3760000000000003 3.3394736842105264 3.303896103896104 3.269230769230769 3.235443037974684 3.2025 3.1703703703703705 3.1390243902439026 3.108433734939759 3.0785714285714287 3.0494117647058827 3.0209302325581397 2.9931034482758623 2.9659090909090913 2.9393258426966296 2.9133333333333336 2.8879120879120883 2.86304347826087 2.838709677419355 2.8148936170212764 2.7915789473684214

@ -1,58 +0,0 @@
{
"2020": {
"electricity": {
"1": {
"EB": 0.09770,
"ODE": 0.0273
},
"2": {
"EB": 0.05083,
"ODE": 0.0375
},
"3": {
"EB": 0.01353,
"ODE": 0.0205
},
"4": {
"EB": 0.00055,
"ODE": 0.0004
}
},
"gas": {
"1": {
"EB": 0.33307,
"ODE": 0.0775
},
"2": {
"EB": 0.06444,
"ODE": 0.0214
},
"3": {
"EB": 0.02348,
"ODE": 0.0212
},
"4": {
"EB": 0.01261,
"ODE": 0.0212
}
},
"gas_horticulture": {
"1": {
"EB": 0.05348,
"ODE": 0.0124
},
"2": {
"EB": 0.02432,
"ODE": 0.0081
},
"3": {
"EB": 0.02348,
"ODE": 0.0212
},
"4": {
"EB": 0.01261,
"ODE": 0.0212
}
}
}
}

@ -1,967 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 125,
"id": "6234aed6-ba73-43e7-b215-b180d2d864e6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 126,
"id": "accfef7c-7f9c-467e-91ed-1f1976eebf17",
"metadata": {},
"outputs": [],
"source": [
"from notepad import WaterStorage"
]
},
{
"cell_type": "code",
"execution_count": 143,
"id": "9e0e68f7-5b5e-4331-8048-0e010d196899",
"metadata": {},
"outputs": [],
"source": [
"tank = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.90,\n",
" specific_heat_capacity =1.16,\n",
" volume = 1000,\n",
" lifetime = 25,\n",
" min_temperature = 55 + 273,\n",
" max_temperature = 95 + 273\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 136,
"id": "ee76c1f3-f45e-4611-9df9-b2cc602980de",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"25"
]
},
"execution_count": 136,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tank.lifetime"
]
},
{
"cell_type": "code",
"execution_count": 137,
"id": "dd188159-f3f3-4837-97ad-27385fd0cd66",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"-10"
]
},
"execution_count": 137,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tank.min_power"
]
},
{
"cell_type": "code",
"execution_count": 138,
"id": "9d3df2d7-65b4-41a5-84d6-0b0ec751013e",
"metadata": {},
"outputs": [],
"source": [
"capex_per_MW = 10_000\n",
"capex_per_MWh = 3_000\n",
"# Q_max = 50000\n",
"\n",
"tank.set_financials(\n",
" capex_per_MW,\n",
" capex_per_MWh,\n",
" 2_000,\n",
" 0,\n",
" lifetime=30\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 139,
"id": "05b6436f-401e-4fbf-bdc0-c52f4e4f1867",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2000"
]
},
"execution_count": 139,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tank.opex"
]
},
{
"cell_type": "code",
"execution_count": 142,
"id": "a7c7ef93-e8b3-403a-aedc-af786d785f20",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"14.02"
]
},
"execution_count": 142,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tank.capex/1e6"
]
},
{
"cell_type": "code",
"execution_count": 133,
"id": "16cd1fa1-09ed-43eb-a5b7-3e82f67e1641",
"metadata": {},
"outputs": [],
"source": [
"from notepad import Heatpump"
]
},
{
"cell_type": "code",
"execution_count": 59,
"id": "afce7655-b7c9-4d90-a95e-3280b2299647",
"metadata": {},
"outputs": [],
"source": [
"class Car:\n",
" def __init__(self, brand, color):\n",
" self.brand = brand\n",
" self.color = color\n",
" \n",
" def __repr__(self):\n",
" return f\"This is my {self.color} {self.brand}.\"\n",
" \n",
"mycar = Car(brand='Ferrari', color='Red')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "618829c4-42ed-4921-9ca9-4c34fc570c61",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 21,
"id": "dad3fe1f-9614-4336-8930-8234f52e6dae",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"This is my Red Ferrari."
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mycar"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "4485c572-8554-4964-835d-8d0d1d41eb2e",
"metadata": {},
"outputs": [],
"source": [
"from pyrecoy.assets import WaterStorage"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "f41d1e57-bcd4-4c09-af8e-acc00072c1af",
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "__init__() got an unexpected keyword argument 'storage_capacity'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_29716/1712525065.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m vessel = WaterStorage(\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'MyStorage'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mmax_power\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mmin_power\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mroundtrip_eff\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0.70\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mTypeError\u001b[0m: __init__() got an unexpected keyword argument 'storage_capacity'"
]
}
],
"source": [
"vessel = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.70,\n",
" storage_capacity=100\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "afaecf07-a2a8-449f-8563-f4f2d483b71c",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'vessel' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_29716/4025137326.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mvessel\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'vessel' is not defined"
]
}
],
"source": [
"vessel"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c55c89da-5115-4eb4-85fd-fe027ab50b5f",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'vessel' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_29716/538738538.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mcapex_per_MWh\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m3_000\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m vessel.set_financials(\n\u001b[0m\u001b[0;32m 5\u001b[0m \u001b[0mcapex_per_MW\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mcapex_per_MWh\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mNameError\u001b[0m: name 'vessel' is not defined"
]
}
],
"source": [
"capex_per_MW = 10_000\n",
"capex_per_MWh = 3_000\n",
"\n",
"vessel.set_financials(\n",
" capex_per_MW,\n",
" capex_per_MWh,\n",
" 2_000,\n",
" 0,\n",
" lifetime=30\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "865222bf-57e9-43c7-80d0-f87db62c16d1",
"metadata": {},
"outputs": [],
"source": [
"10*10_000 + 100*3_000"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "470737ab-2411-4746-ab77-9457dacfe6b7",
"metadata": {},
"outputs": [],
"source": [
"vessel.capex"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "f1419aa7-306c-4966-94b8-7f2a674f3bef",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'vessel' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_21184/2076975315.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mvessel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mopex\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mNameError\u001b[0m: name 'vessel' is not defined"
]
}
],
"source": [
"vessel.opex"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d0a96b2c-7de4-4c8b-a1ad-af212366706a",
"metadata": {},
"outputs": [],
"source": [
"from pyrecoy.assets import HeatBuffer"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6586728b-c1e8-40b8-a06d-0937dc286096",
"metadata": {},
"outputs": [],
"source": [
"vessel = HeatBuffer(\n",
" name='MyStorage',\n",
" rated_capacity=100,\n",
" min_buffer_level_perc=0.3,\n",
" buffer_level_at_start=.5,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2ac71015-f6b8-4bcd-8fc0-c644566781e6",
"metadata": {},
"outputs": [],
"source": [
"vessel.get_soc()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2411b8a5-55c0-4a1f-a914-aa6a9a97066e",
"metadata": {},
"outputs": [],
"source": [
"vessel.set_freq('H')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "06b9093f-ac2e-401b-8808-0cb6c9d21995",
"metadata": {},
"outputs": [],
"source": [
"vessel.charge(10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8ac8aaec-9f83-4672-803b-3393e92cea85",
"metadata": {},
"outputs": [],
"source": [
"vessel.get_soc()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fa653139-c038-49c6-b80b-4038e649f3ef",
"metadata": {},
"outputs": [],
"source": [
"vessel.chargelevel"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a5333668-b73c-4a81-a8f6-71bb44bef877",
"metadata": {},
"outputs": [],
"source": [
"def test_method(variable_name):\n",
" print(variable_name)\n",
" \n",
"test_method(5)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ee03a3af-b9d6-4cb3-ad27-cae10bc5a6b4",
"metadata": {},
"outputs": [],
"source": [
"help(vessel)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "38840a88-dff7-4d44-ba8e-6fb8fc234771",
"metadata": {},
"outputs": [],
"source": [
"help(vessel)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f75c8d8f-5586-4b45-aa13-31f4aed5c99d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "c243d17f-dec8-48dc-829c-a2c5fec7fbbb",
"metadata": {},
"outputs": [],
"source": [
"class SchoolPerson:\n",
" \n",
" schoolpopulation = 0\n",
" \n",
" def __init__(self, name, age ):\n",
" self.name = name\n",
" self.age = age\n",
" \n",
" \n",
" SchoolPerson.schoolpopulation +=1 \n",
" print(f'Initialized person:{self.name}')\n",
" \n",
" \n",
" def tellName(self):\n",
" print(f'Name: {self.name} , age: {self.age}')\n",
" \n",
" @classmethod\n",
" def Count(cls):\n",
" print('number of people:', cls.schoolpopulation)\n",
"\n",
" \n",
"class SchoolTeacher(SchoolPerson):\n",
" def __init__(self, name, age, salary):\n",
" SchoolPerson.__init__(self, name ,age)\n",
" self.salary = salary\n",
" \n",
" def tellName(self):\n",
" print(f'Name: {self.name} , age: {self.age}, salary: {self.salary}')\n",
" super().tellName()\n",
" \n",
" @classmethod\n",
" def Count(cls):\n",
" super().Count()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f462528b-e981-4d99-ae88-806e13e254fe",
"metadata": {},
"outputs": [],
"source": [
"c = SchoolPerson('Nazim', 30)\n",
"c.name\n",
"d = SchoolPerson('Rasim', 23)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cd2d7a8b-25f6-4438-b0b3-9ab1a4c5a33a",
"metadata": {},
"outputs": [],
"source": [
"SchoolPerson.Count()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c937bf4b-4cd2-4e6e-9ece-31689eb55b5e",
"metadata": {},
"outputs": [],
"source": [
"f = SchoolTeacher('John', 35, 1111)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a8eb084e-d233-4225-baa7-35c290e45ffb",
"metadata": {},
"outputs": [],
"source": [
"SchoolTeacher.Count()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ddff6fb6-d01d-408b-8d08-2dc226edf07b",
"metadata": {},
"outputs": [],
"source": [
"c.__dict__"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0413f66c-9390-4444-a712-ab4e85a9ed32",
"metadata": {},
"outputs": [],
"source": [
"x = 23\n",
"\n",
"class Addition:\n",
" \n",
" x = 10\n",
" \n",
" def __init__(self, x):\n",
" self.x = x\n",
" \n",
" def addY_1(self, y):\n",
" print('Result:', self.x + y)\n",
" \n",
" @classmethod\n",
" def addY_2(cls, y):\n",
" print('Result:', cls.x + y)\n",
" \n",
" @staticmethod\n",
" def addY_3(y):\n",
" print('Result:', x + y)\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2114ab51-ccd7-4b41-a20e-272c8ae1a88b",
"metadata": {},
"outputs": [],
"source": [
"n = Addition(23)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "aeeb5ada-84d9-4750-b9c7-d38ee24db7fc",
"metadata": {},
"outputs": [],
"source": [
"n.addY_1(2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e103e15c-a1e5-494b-b40a-60b5702509cd",
"metadata": {},
"outputs": [],
"source": [
"# n.addY_2(2)\n",
"\n",
"n.addY_3(2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e1c04684-739a-4ff5-aedf-ebeb44cf1512",
"metadata": {},
"outputs": [],
"source": [
"t = Addition(30)\n",
"t.addY_1(2)\n",
"t.addY_2(2)\n",
"Addition.addY_2(2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "50936cf6-d267-4a74-8c99-90dc063c55a6",
"metadata": {},
"outputs": [],
"source": [
"def buterbrod(icfunksiya):\n",
" def corekle():\n",
" print('/------- \\\\')\n",
" icfunksiya()\n",
" print('\\-------//')\n",
" return corekle()\n",
"\n",
"\n",
"\n",
" \n",
"@buterbrod\n",
"def pendirli():\n",
" print('=========')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2a5f08ba-b25f-4a8f-8cbf-a72ac75cf68f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "34cb1c1e-9466-4ef2-be5f-3009f47434f7",
"metadata": {},
"outputs": [],
"source": [
"from itertools import count\n",
"class Asset:\n",
" \"\"\"Generic class for producing/consuming assets. Specific asset classes can\n",
" inherit from this class.\n",
"\n",
" Parameters:\n",
" -----------\n",
" max_power : int/float\n",
" Maximum asset power in MW electric\n",
" min_power : int/float\n",
" Minimium asset load in MW electric\n",
"\n",
" Usage:\n",
" ------\n",
" Use the set_load and get_load methods to set and get asset status in MW.\n",
"\n",
" Convention is negative values for inputs (consumption) and positive\n",
" values for outputs (production).\n",
" \"\"\"\n",
"\n",
" _freq_to_multiplier = {\"H\": 1, \"15T\": (1 / 4), \"1T\": (1 / 60)}\n",
" _ids = count(0)\n",
"\n",
" def __init__(self, name, max_power, min_power):\n",
" if min_power > max_power:\n",
" raise ValueError(\"'min_power' can not be larger than 'max_power'.\")\n",
"\n",
" self.name = name\n",
" self.id = next(self._ids)\n",
" self.max_power = max_power\n",
" self.min_power = min_power\n",
" self.modes = {\"max\": max_power, \"min\": min_power}\n",
"\n",
" def __repr__(self):\n",
" return f\"{self.__class__.__name__}(self, max_power={self.max_power}, min_power={self.min_power})\"\n",
"\n",
" def set_load(self, load):\n",
" \"\"\"Set Asset load in MW.\n",
"\n",
" Convention is negative value for consumption and positive value\n",
" for production. Subclasses might use a different convention if\n",
" this seems more intiutive.\n",
"\n",
" Returns the load that is set in MW.\n",
" \"\"\"\n",
" if load < self.min_power or load > self.max_power:\n",
" warnings.warn(\n",
" f\"Chosen Asset load for {self.name} is out of range. \"\n",
" f\"Should be between {self.min_power} and {self.max_power}. \"\n",
" f\"Function will return boundary load level for now.\"\n",
" )\n",
" load = min(max(load, self.min_power), self.max_power)\n",
" return load\n",
"\n",
" def set_mode(self, mode):\n",
" \"\"\" \"\"\"\n",
" load = self.modes[mode]\n",
" return self.set_load(load)\n",
"\n",
" def MW_to_MWh(self, MW):\n",
" \"\"\"Performs conversion from MW to MWh using the time_factor variable.\"\"\"\n",
" return MW * self.time_factor\n",
"\n",
" def MWh_to_MW(self, MWh):\n",
" \"\"\"Performs conversion from MWh to MW using the time_factor variable.\"\"\"\n",
" return MWh / self.time_factor\n",
"\n",
" def set_freq(self, freq):\n",
" \"\"\"\n",
" Function that aligns time frequency between Model and Asset.\n",
" Can be '1T', '15T' or 'H'\n",
" The time_factor variable is used in subclasses to perform MW to MWh conversions.\n",
" \"\"\"\n",
" self.freq = freq\n",
" self.time_factor = Asset._freq_to_multiplier[freq]\n",
"\n",
" def set_financials(self, capex, opex, devex, lifetime=None, depreciate=True, salvage_value=0):\n",
" \"\"\"Set financial data of the asset.\"\"\"\n",
" self.capex = capex\n",
" self.opex = opex\n",
" self.devex = devex\n",
" self.lifetime = lifetime\n",
" self.depreciate = depreciate\n",
" self.salvage_value = salvage_value"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "81a28df0-2ed6-42f4-bd8e-22bcfc992f79",
"metadata": {},
"outputs": [],
"source": [
"class WaterStorage(Asset):\n",
" \n",
" def __init__(\n",
" self, \n",
" name,\n",
" max_power,\n",
" min_power,\n",
" roundtrip_eff,\n",
" lifetime,\n",
" power_capex, \n",
" energy_capex,\n",
" opex,\n",
" heat_demand = 23.5*1.06,\n",
" heat_st_capacity = 70, \n",
" storage_size = 22650\n",
" ):\n",
" super().__init__(name, max_power, min_power)\n",
" self.rt_eff = roundtrip_eff\n",
" self.lifetime = lifetime\n",
" self.power_capex = power_capex #Euro/kW\n",
" self.energy_capex = energy_capex #Euro/kWh\n",
" self.opex = opex\n",
" self.heat_demand = heat_demand #MW\n",
" self.heat_st_cap = heat_st_cap #kWh/m3\n",
" self.storage_size= storage_size #m3\n",
" \n",
" def __repr__(self):\n",
" return (\n",
" # f\"{self.__class__.__name__}(name={self.name}, max_power={self.max_power}, \"\n",
" # f\"min_power={self.min_power}, efficiency={self.efficiency})\"\n",
" f\"\"\"{self.__class__.__name__}(name={self.name}, max_power={self.max_power}, \n",
" min_power={self.min_power}, efficiency={self.efficiency})\"\"\"\n",
" )\n",
" \n",
" def set_capacity(self, capacity):\n",
" if not isinstance(capacity, (int, float)):\n",
" raise TypeError('Should be float')\n",
" if capacity < 0:\n",
" raise ValueError('Capacity has to be positive')\n",
" self.capacity = capacity\n",
" \n",
" def cost_function(self):\n",
" return self.heat_demand * self.power_capex * 1e6 + self.heat_st_cap * self.storage_size * self.energy_capex\n",
" \n",
" \n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ed141f44-e508-4613-9eb8-bf7adf39e1d3",
"metadata": {},
"outputs": [],
"source": [
"s = WaterStorage\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "de204644-8b68-419f-82ee-772072b25a2e",
"metadata": {},
"outputs": [],
"source": [
"c.__dict__"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2ab516f0-3f28-41d3-ba30-0622773eed82",
"metadata": {},
"outputs": [],
"source": [
"d = Asset('Pump', 200, 20)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9e325374-f7ea-46b1-9763-c13d24f051c7",
"metadata": {},
"outputs": [],
"source": [
"d.__dict__"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9fac7681-f324-4f73-9566-0843077afca3",
"metadata": {},
"outputs": [],
"source": [
"class Eboiler(Asset):\n",
" \"\"\"Subclass for an E-boiler.\"\"\"\n",
"\n",
" def __init__(self, name, max_power, min_power=0, efficiency=0.99):\n",
" super().__init__(name, min_power=-max_power, max_power=-min_power)\n",
" self.efficiency = efficiency\n",
" self.max_thermal_output = max_power * 0.99\n",
"\n",
" def __repr__(self):\n",
" return (\n",
" f\"{self.__class__.__name__}(name={self.name}, max_power={self.max_power}, \"\n",
" f\"min_power={self.min_power}, efficiency={self.efficiency})\"\n",
" )\n",
"\n",
" def set_load(self, load):\n",
" \"\"\"Set load in MWe, returns (load, heat_output) in MWe and MWth\n",
"\n",
" Convention is negative numbers for consumption.\n",
" Inserting a positive value will return an exception.\n",
" \"\"\"\n",
"\n",
" if load > 0:\n",
" raise ValueError(\n",
" f\"Eboiler.set_load() only accepts negative numbers by convention. \"\n",
" f\"{load} was inserted.\"\n",
" )\n",
"\n",
" load = super().set_load(load)\n",
" heat_output = -load * self.efficiency\n",
" return (load, heat_output)\n",
"\n",
" def set_heat_output(self, heat_output):\n",
" \"\"\"Set heat output in MWth, returns tuple (heat_output, eload) in MW\"\"\"\n",
" load = -heat_output / self.efficiency\n",
" load, heat_output = self.set_load(load)\n",
" return heat_output, load"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "904d8541-4d1b-4d1e-a7a3-e9fe939689bb",
"metadata": {},
"outputs": [],
"source": [
"e = Eboiler('eboyul', 300)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9c5866c7-026b-41b4-b5c6-1476e82ff0ac",
"metadata": {},
"outputs": [],
"source": [
"e.__dict__"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0f9a1714-bd18-4487-9f1c-24ca0ca31473",
"metadata": {},
"outputs": [],
"source": [
"e.set_financials(300,400,500)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f135160a-484f-4cbc-8df1-cfab32195423",
"metadata": {},
"outputs": [],
"source": [
"e.__dict__"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5ae82d8a-36d1-4456-97e6-d93679b1d211",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,843 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 19,
"id": "51bd3ee9-400e-4ee1-ae81-3781c4acf453",
"metadata": {},
"outputs": [],
"source": [
"#!/usr/bin/env python\n",
"# coding: utf-8\n",
"\n",
"# In[1]:\n",
"\n",
"\n",
"import numpy as np\n",
"from scipy.optimize import minimize\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"# #### Theory\n",
"\n",
"# ![image.png](attachment:image.png)\n",
"\n",
"# #### Preliminary Calculation\n",
"\n",
"# In[2]:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "90be5fde-d54c-48d5-9cfc-fb76d02a2ce8",
"metadata": {},
"outputs": [],
"source": [
"PmmHg = 440.8 \n",
"TC = 9.158144271\n",
"zis = [0.66,0.135,0.162,0.043]"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "ba673fb5-82b6-4ca4-98eb-36bef06cf96c",
"metadata": {},
"outputs": [],
"source": [
"def AntoinePsat(coeff,TC):\n",
" A,B,C = coeff\n",
" return 10**(A-B/(TC + C))"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "2ddecd48-5434-40ec-af2c-ae372e7cd9e3",
"metadata": {},
"outputs": [],
"source": [
"coeffs = [[7.94917,1657.462,227.02],\n",
" [7.5788,863.35,273.15],\n",
" [6.49454,255.6784,266.55],\n",
" [6.69147,319.0117,266.7]]\n"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "67f34a74-e710-45a3-b96d-c87b95df1883",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[8.537355065914953, 33160.18044351948, 369137.6636043228, 342796.30727095477]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\" Calculate Psats \"\"\"\n",
"Psats = [AntoinePsat(coeff,TC) for coeff in coeffs]\n",
"Psats "
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "2668abbd-1477-43ee-9936-f52ec9000d36",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1.93678654e-02, 7.52272696e+01, 8.37426642e+02, 7.77668574e+02])"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\" Calculate Kis\"\"\"\n",
"Kis = np.divide(Psats,PmmHg)\n",
"Kis\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "d3523741-f974-4bb2-acd5-606f3cbcb574",
"metadata": {},
"outputs": [],
"source": [
"# define the mass balance\n",
"def vapor_phase_mass_balance(V,zis):\n",
" \"\"\"\n",
" Equation 10.17 SVA\n",
" \"\"\"\n",
" return np.abs(1-sum([(zi*Ki)/(1+V*(Ki-1)) for zi,Ki in list(zip(zis,Kis))]))\n",
"\n",
"# minimize vapor_phase_mass_balance to solve for V\n",
"\n",
"F_vapor_phase_mass_balance = lambda x : vapor_phase_mass_balance(x,zis)\n",
"res = minimize(F_vapor_phase_mass_balance, x0 = 0.5 ,method='Nelder-Mead', tol=1e-6)\n",
"\n",
"\n",
"# evaluate L and V\n",
"if res.success:\n",
" V,L = res.x[0],1-res.x[0]\n",
"else:\n",
" print('Did not converge')\n",
" raise\n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "7bbf9028-887f-410f-b404-2a7d2ae11b1c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.019254965906916017,\n",
" 0.38406230477729975,\n",
" 0.4715420278978388,\n",
" 0.12514042283686558]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\" evaluate yis\"\"\"\n",
"yis = [(zi*Ki)/(1+V*(Ki-1)) for zi,Ki in list(zip(zis,Kis))]\n",
"yis"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "24958634-7976-4350-98b3-7111567a359d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.9941707831334012,\n",
" 0.0051053601543027535,\n",
" 0.0005630845789828888,\n",
" 0.00016091742301905547]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\"\"\" evaluate xis\"\"\"\n",
"xis = [yi/Ki for yi,Ki in list(zip(yis,Kis))]\n",
"xis"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "b082d83b-1f2f-4013-812c-14f0d2eccbb9",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.65339999728938, 0.6534)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"L*xis[0],1*zis[0]*0.99"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "346bfd1a-1421-4d15-aa5a-9bf1331605da",
"metadata": {},
"outputs": [],
"source": [
"zis = [0.66,0.135,0.162,0.043]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "2ee4387f-e366-4643-bbd6-7483e7977fb3",
"metadata": {},
"outputs": [],
"source": [
"def calcT98(TC,zis):\n",
" \"\"\" Calculate Psats \"\"\"\n",
" Psats = [AntoinePsat(coeff,TC) for coeff in coeffs]\n",
"\n",
" \"\"\" Calculate Kis\"\"\"\n",
" Kis = np.divide(Psats,PmmHg)\n",
" \n",
" \"\"\" solve for the vapor fraction,V\"\"\"\n",
" F_vapor_phase_mass_balance = lambda x : vapor_phase_mass_balance(x,zis)\n",
" res = minimize(F_vapor_phase_mass_balance, x0 = 0.5 ,method='Nelder-Mead', tol=1e-6)\n",
" \n",
" # evaluate L and V\n",
" if res.success:\n",
" V,L = res.x[0],1-res.x[0]\n",
" else:\n",
" print('Did not converge')\n",
" raise\n",
" \n",
" \"\"\" evaluate yis\"\"\"\n",
" yis = [(zi*Ki)/(1+V*(Ki-1)) for zi,Ki in list(zip(zis,Kis))]\n",
" \n",
" \"\"\" evaluate xis\"\"\"\n",
" xis = [yi/Ki for yi,Ki in list(zip(yis,Kis))]\n",
" \n",
" return [np.abs(L*xis[0] - (1*zis[0]*0.98)),yis[0]]\n",
" \n",
"\n",
"F_calcT98 = lambda x : calcT98(x,zis)[0]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "4c67cb7d-9041-4d3c-8e1b-67775d20510d",
"metadata": {},
"outputs": [],
"source": [
"T98 = minimize(F_calcT98, x0 = 10 ,method='Nelder-Mead', tol=1e-6)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "2ab69a19-7bf0-48f5-a61c-b9023127d53b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"19.905107498168945"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"T98 = T98.x[0]\n",
"T98"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "51f22d53-8f85-4103-8ab6-63b693946b3c",
"metadata": {},
"outputs": [],
"source": [
"# #### Effect of Composition to T98\n",
"\n",
"# In[15]:\n",
"\n",
"\n",
"\"\"\"water_to_carbondioxide_mass_ratios\"\"\" \n",
"r1s = np.linspace(0.05,2,11)\n",
"\"\"\"wetcarbondioxide_to_air_mole_ratios\"\"\"\n",
"r2s = 1-np.linspace(0.00,0.40,11) "
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "4f7b6eee-9b90-4016-83bb-b05bebc3e769",
"metadata": {},
"outputs": [],
"source": [
"r1 = r1s[0]\n",
"r2 = r2s[0]"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "5a475a55-7ef5-4c72-96ce-a07dfc6ff273",
"metadata": {},
"outputs": [],
"source": [
"results = []\n",
"\n",
"for r1 in r1s:\n",
" for r2 in r2s:\n",
"\n",
" mCO2 = 1\n",
" mwater = r1*mCO2\n",
"\n",
" nCO2 = mCO2/ 44.01\n",
" nwater = mwater / 18.01528\n",
"\n",
" z1_pure = nwater / (nwater + nCO2)\n",
" z2_pure = nCO2 / (nwater + nCO2)\n",
"\n",
" zs = [ r2*z1_pure,\n",
" r2*z2_pure,\n",
" 0.79*(1 - r2*z1_pure - r2*z2_pure),\n",
" 0.21*(1 - r2*z1_pure - r2*z2_pure)]\n",
"\n",
" zijs = [np.round(z,3) for z in zs]\n",
"\n",
"\n",
" \"\"\"define a lambda funtion at the calculated zijs\"\"\"\n",
" F_calcT98 = lambda x : calcT98(x,zijs)[0]\n",
" \"\"\"solve for T98\"\"\"\n",
" T98 = minimize(F_calcT98, x0 = 50 ,method='Nelder-Mead', tol=1e-6) \n",
"\n",
" \"\"\"append the result and the calculation parameter levels\"\"\"\n",
" results.append({'zH2O' : zijs[0],\n",
" 'zCO2' : zijs[1],\n",
" 'zN2' : zijs[2],\n",
" 'zO2' : zijs[3],\n",
" 'r1' : r1,\n",
" 'r2' : 1-r2,\n",
" 'yH2O' : calcT98(T98.x[0],zijs)[1],\n",
" 'T98' : T98.x[0]})"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "f666ddb2-00fb-4ef2-b63f-9e6b433fc311",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>zH2O</th>\n",
" <th>zCO2</th>\n",
" <th>zN2</th>\n",
" <th>zO2</th>\n",
" <th>r1</th>\n",
" <th>r2</th>\n",
" <th>yH2O</th>\n",
" <th>T98</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.109</td>\n",
" <td>0.891</td>\n",
" <td>-0.000</td>\n",
" <td>-0.000</td>\n",
" <td>0.05</td>\n",
" <td>0.00</td>\n",
" <td>0.002403</td>\n",
" <td>-19.445789</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.104</td>\n",
" <td>0.856</td>\n",
" <td>0.032</td>\n",
" <td>0.008</td>\n",
" <td>0.05</td>\n",
" <td>0.04</td>\n",
" <td>0.002280</td>\n",
" <td>-20.161733</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.100</td>\n",
" <td>0.820</td>\n",
" <td>0.063</td>\n",
" <td>0.017</td>\n",
" <td>0.05</td>\n",
" <td>0.08</td>\n",
" <td>0.002182</td>\n",
" <td>-20.759943</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.096</td>\n",
" <td>0.784</td>\n",
" <td>0.095</td>\n",
" <td>0.025</td>\n",
" <td>0.05</td>\n",
" <td>0.12</td>\n",
" <td>0.002085</td>\n",
" <td>-21.381680</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.091</td>\n",
" <td>0.749</td>\n",
" <td>0.126</td>\n",
" <td>0.034</td>\n",
" <td>0.05</td>\n",
" <td>0.16</td>\n",
" <td>0.001966</td>\n",
" <td>-22.193559</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" zH2O zCO2 zN2 zO2 r1 r2 yH2O T98\n",
"0 0.109 0.891 -0.000 -0.000 0.05 0.00 0.002403 -19.445789\n",
"1 0.104 0.856 0.032 0.008 0.05 0.04 0.002280 -20.161733\n",
"2 0.100 0.820 0.063 0.017 0.05 0.08 0.002182 -20.759943\n",
"3 0.096 0.784 0.095 0.025 0.05 0.12 0.002085 -21.381680\n",
"4 0.091 0.749 0.126 0.034 0.05 0.16 0.001966 -22.193559"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results = pd.DataFrame(results)\n",
"results.head()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "9e120445-4d0d-4aee-8edb-7826ff67710c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>r2</th>\n",
" <th>0.00</th>\n",
" <th>0.04</th>\n",
" <th>0.08</th>\n",
" <th>0.12</th>\n",
" <th>0.16</th>\n",
" <th>0.20</th>\n",
" <th>0.24</th>\n",
" <th>0.28</th>\n",
" <th>0.32</th>\n",
" <th>0.36</th>\n",
" <th>0.40</th>\n",
" </tr>\n",
" <tr>\n",
" <th>r1</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0.050</th>\n",
" <td>0.002403</td>\n",
" <td>0.002280</td>\n",
" <td>0.002182</td>\n",
" <td>0.002085</td>\n",
" <td>0.001966</td>\n",
" <td>0.001871</td>\n",
" <td>0.001777</td>\n",
" <td>0.001661</td>\n",
" <td>0.001568</td>\n",
" <td>0.001477</td>\n",
" <td>0.001364</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.245</th>\n",
" <td>0.011811</td>\n",
" <td>0.011061</td>\n",
" <td>0.010348</td>\n",
" <td>0.009669</td>\n",
" <td>0.009062</td>\n",
" <td>0.008441</td>\n",
" <td>0.007846</td>\n",
" <td>0.007277</td>\n",
" <td>0.006731</td>\n",
" <td>0.006208</td>\n",
" <td>0.005706</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.440</th>\n",
" <td>0.021381</td>\n",
" <td>0.019616</td>\n",
" <td>0.018075</td>\n",
" <td>0.016586</td>\n",
" <td>0.015214</td>\n",
" <td>0.013945</td>\n",
" <td>0.012821</td>\n",
" <td>0.011722</td>\n",
" <td>0.010696</td>\n",
" <td>0.009780</td>\n",
" <td>0.008878</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.635</th>\n",
" <td>0.031056</td>\n",
" <td>0.028006</td>\n",
" <td>0.025211</td>\n",
" <td>0.022829</td>\n",
" <td>0.020694</td>\n",
" <td>0.018694</td>\n",
" <td>0.016955</td>\n",
" <td>0.015371</td>\n",
" <td>0.013863</td>\n",
" <td>0.012535</td>\n",
" <td>0.011310</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0.830</th>\n",
" <td>0.040917</td>\n",
" <td>0.036093</td>\n",
" <td>0.032009</td>\n",
" <td>0.028500</td>\n",
" <td>0.025555</td>\n",
" <td>0.022866</td>\n",
" <td>0.020486</td>\n",
" <td>0.018363</td>\n",
" <td>0.016458</td>\n",
" <td>0.014797</td>\n",
" <td>0.013230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.025</th>\n",
" <td>0.050890</td>\n",
" <td>0.043965</td>\n",
" <td>0.038326</td>\n",
" <td>0.033781</td>\n",
" <td>0.029791</td>\n",
" <td>0.026477</td>\n",
" <td>0.023494</td>\n",
" <td>0.020964</td>\n",
" <td>0.018644</td>\n",
" <td>0.016579</td>\n",
" <td>0.014788</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.220</th>\n",
" <td>0.060927</td>\n",
" <td>0.051696</td>\n",
" <td>0.044438</td>\n",
" <td>0.038565</td>\n",
" <td>0.033705</td>\n",
" <td>0.029612</td>\n",
" <td>0.026114</td>\n",
" <td>0.023089</td>\n",
" <td>0.020444</td>\n",
" <td>0.018112</td>\n",
" <td>0.016040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.415</th>\n",
" <td>0.071202</td>\n",
" <td>0.059247</td>\n",
" <td>0.050184</td>\n",
" <td>0.043050</td>\n",
" <td>0.037275</td>\n",
" <td>0.032358</td>\n",
" <td>0.028355</td>\n",
" <td>0.024934</td>\n",
" <td>0.021974</td>\n",
" <td>0.019388</td>\n",
" <td>0.017109</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.610</th>\n",
" <td>0.081214</td>\n",
" <td>0.066234</td>\n",
" <td>0.055573</td>\n",
" <td>0.047118</td>\n",
" <td>0.040417</td>\n",
" <td>0.034965</td>\n",
" <td>0.030437</td>\n",
" <td>0.026614</td>\n",
" <td>0.023341</td>\n",
" <td>0.020505</td>\n",
" <td>0.018025</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.805</th>\n",
" <td>0.091741</td>\n",
" <td>0.073664</td>\n",
" <td>0.060515</td>\n",
" <td>0.050717</td>\n",
" <td>0.043308</td>\n",
" <td>0.037178</td>\n",
" <td>0.032291</td>\n",
" <td>0.028075</td>\n",
" <td>0.024500</td>\n",
" <td>0.021514</td>\n",
" <td>0.018836</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.000</th>\n",
" <td>0.102358</td>\n",
" <td>0.080387</td>\n",
" <td>0.065397</td>\n",
" <td>0.054160</td>\n",
" <td>0.045827</td>\n",
" <td>0.039220</td>\n",
" <td>0.033845</td>\n",
" <td>0.029383</td>\n",
" <td>0.025513</td>\n",
" <td>0.022305</td>\n",
" <td>0.019526</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"r2 0.00 0.04 0.08 0.12 0.16 0.20 0.24 \\\n",
"r1 \n",
"0.050 0.002403 0.002280 0.002182 0.002085 0.001966 0.001871 0.001777 \n",
"0.245 0.011811 0.011061 0.010348 0.009669 0.009062 0.008441 0.007846 \n",
"0.440 0.021381 0.019616 0.018075 0.016586 0.015214 0.013945 0.012821 \n",
"0.635 0.031056 0.028006 0.025211 0.022829 0.020694 0.018694 0.016955 \n",
"0.830 0.040917 0.036093 0.032009 0.028500 0.025555 0.022866 0.020486 \n",
"1.025 0.050890 0.043965 0.038326 0.033781 0.029791 0.026477 0.023494 \n",
"1.220 0.060927 0.051696 0.044438 0.038565 0.033705 0.029612 0.026114 \n",
"1.415 0.071202 0.059247 0.050184 0.043050 0.037275 0.032358 0.028355 \n",
"1.610 0.081214 0.066234 0.055573 0.047118 0.040417 0.034965 0.030437 \n",
"1.805 0.091741 0.073664 0.060515 0.050717 0.043308 0.037178 0.032291 \n",
"2.000 0.102358 0.080387 0.065397 0.054160 0.045827 0.039220 0.033845 \n",
"\n",
"r2 0.28 0.32 0.36 0.40 \n",
"r1 \n",
"0.050 0.001661 0.001568 0.001477 0.001364 \n",
"0.245 0.007277 0.006731 0.006208 0.005706 \n",
"0.440 0.011722 0.010696 0.009780 0.008878 \n",
"0.635 0.015371 0.013863 0.012535 0.011310 \n",
"0.830 0.018363 0.016458 0.014797 0.013230 \n",
"1.025 0.020964 0.018644 0.016579 0.014788 \n",
"1.220 0.023089 0.020444 0.018112 0.016040 \n",
"1.415 0.024934 0.021974 0.019388 0.017109 \n",
"1.610 0.026614 0.023341 0.020505 0.018025 \n",
"1.805 0.028075 0.024500 0.021514 0.018836 \n",
"2.000 0.029383 0.025513 0.022305 0.019526 "
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df=results.pivot('r1','r2','yH2O')\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "1dcb241f-de8d-4dac-b8f1-b261629428c1",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'plt' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_24248/944468034.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfigure\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdpi\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m100\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mY\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mZ\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmeshgrid\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mY\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mNameError\u001b[0m: name 'plt' is not defined"
]
}
],
"source": [
"plt.figure(dpi=100)\n",
"X=df.columns.values\n",
"Y=df.index.values\n",
"Z=df.values\n",
"x,y=np.meshgrid(X, Y)\n",
"plt.contourf(x, y, Z) #the NAN will be plotted as white spaces\n",
"plt.colorbar(label = 'y$_{water}$')\n",
"plt.xlabel('mole air / (mole CO$_2$ + H$_2$O)')\n",
"plt.ylabel('mass H$_2$O / mass CO$_2$')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3e1d8849-7598-442f-a80b-95daa51a11ba",
"metadata": {},
"outputs": [],
"source": [
"df=results.pivot('r1','r2','T98')\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c97006bc-911e-40ca-8c0c-271c1c530431",
"metadata": {},
"outputs": [],
"source": [
"plt.figure(dpi=100)\n",
"X=df.columns.values\n",
"Y=df.index.values\n",
"Z=df.values\n",
"x,y=np.meshgrid(X, Y)\n",
"plt.contourf(x, y, Z) #the NAN will be plotted as white spaces\n",
"plt.colorbar(label = 'T$_{98}$,[°C]')\n",
"plt.xlabel('mole air / (mole CO$_2$ + H$_2$O)')\n",
"plt.ylabel('mass H$_2$O / mass CO$_2$')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "20dec83e-56a6-4100-8730-8e497e6400f1",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "ce2f975b-555e-4a04-a9e6-356628c3b55b",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "00e8aa52-6251-40fe-b1f0-db91080f7472",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,401 +0,0 @@
import warnings
from functools import partial, lru_cache
from numbers import Number
from itertools import count
import numpy as np
from numpy.polynomial import Polynomial
from scipy.optimize import minimize_scalar
# from .converters import *
class Asset:
"""Generic class for producing/consuming assets. Specific asset classes can
inherit from this class.
Parameters:
-----------
max_power : int/float
Maximum asset power in MW electric
min_power : int/float
Minimium asset load in MW electric
Usage:
------
Use the set_load and get_load methods to set and get asset status in MW.
Convention is negative values for inputs (consumption) and positive
values for outputs (production).
"""
_freq_to_multiplier = {"H": 1, "15T": (1 / 4), "1T": (1 / 60)}
_ids = count(0)
def __init__(self, name, max_power, min_power):
if min_power > max_power:
raise ValueError("'min_power' can not be larger than 'max_power'.")
self.name = name
self.id = next(self._ids)
self.max_power = max_power
self.min_power = min_power
self.modes = {"max": max_power, "min": min_power}
def __repr__(self):
return f"{self.__class__.__name__}(self, max_power={self.max_power}, min_power={self.min_power})"
def set_load(self, load):
"""Set Asset load in MW.
Convention is negative value for consumption and positive value
for production. Subclasses might use a different convention if
this seems more intiutive.
Returns the load that is set in MW.
"""
if load < self.min_power or load > self.max_power:
warnings.warn(
f"Chosen Asset load for {self.name} is out of range. "
f"Should be between {self.min_power} and {self.max_power}. "
f"Function will return boundary load level for now."
)
load = min(max(load, self.min_power), self.max_power)
return load
def set_mode(self, mode):
""" """
load = self.modes[mode]
return self.set_load(load)
def MW_to_MWh(self, MW):
"""Performs conversion from MW to MWh using the time_factor variable."""
return MW * self.time_factor
def MWh_to_MW(self, MWh):
"""Performs conversion from MWh to MW using the time_factor variable."""
return MWh / self.time_factor
def set_freq(self, freq):
"""
Function that aligns time frequency between Model and Asset.
Can be '1T', '15T' or 'H'
The time_factor variable is used in subclasses to perform MW to MWh conversions.
"""
self.freq = freq
self.time_factor = Asset._freq_to_multiplier[freq]
def set_financials(self, capex, opex, devex, lifetime=None, depreciate=True, salvage_value=0):
"""Set financial data of the asset."""
self.capex = capex
self.opex = opex
self.devex = devex
self.lifetime = lifetime
self.depreciate = depreciate
self.salvage_value = salvage_value
class WaterStorage(Asset):
def __init__(
self,
name,
max_power,
min_power,
roundtrip_eff,
energy_density,
volume,
lifetime,
temperature,
# max_storagelevel,
min_storagelevel
):
if min_power > max_power:
raise ValueError("'min_power' can not be larger than 'max_power'.")
super().__init__(name, max_power, min_power)
self.roundtrip_eff = roundtrip_eff
self.volume = volume
self.lifetime = lifetime
self.temperature = temperature
self.energy_density = energy_density #MWh/m3
self.max_storage_capacity = self.volume * self.energy_density #MWh
self.max_storagelevel = self.max_storage_capacity * 0.95
self.min_storagelevel = min_storagelevel
def set_storagelevel(self, storagelevel):
"""Set the storagelevel in MWh."""
if storagelevel < self.min_storagelevel or storagelevel > self.max_storagelevel:
raise ValueError(
f"Tried to set Storage Level to {storagelevel}. "
f"Storage Level must be a value between "
f"{self.min_storagelevel} and {self.max_storagelevel} (in MWh)"
)
self.storagelevel = storagelevel
@property
def charging_power_limit(self):
max_charging_energy = self.max_storagelevel - self.storagelevel
return self.MWh_to_MW(max_charging_energy)
def charge(self, power):
energy = self.MW_to_MWh(power)
max_charging = self.max_storagelevel - self.storagelevel
bounded_energy = min (energy, max_charging)
# print('bounded_energy', bounded_energy)
new_cl = self.storagelevel + bounded_energy
# print('new_cl', new_cl)
self.set_storagelevel(new_cl)
power = self.MWh_to_MW(bounded_energy)
return power
def discharge(self, power):
energy = self.MW_to_MWh(power)
max_discharging = self.storagelevel - self.min_storagelevel
bounded_energy = min(energy, max_discharging)
# print('bounded_energy', bounded_energy)
new_cl = self.storagelevel - bounded_energy
# print('new_cl', new_cl)
self.set_storagelevel(new_cl)
power = self.MWh_to_MW(bounded_energy)
return power
def get_soc(self, storagelevel, max_storage_capacity):
"""Get the SoC in % (decimal value)"""
return self.storagelevel / self.max_storage_capacity
def set_financials(self,
capex_per_MW,
capex_per_MWh,
opex,
devex,
lifetime=None,
depreciate=True, salvage_value=0):
total_capex = (
capex_per_MW * self.max_power + capex_per_MWh * self.max_storage_capacity
)
super().set_financials(
total_capex,
opex,
devex,
lifetime=None,
depreciate=True,
salvage_value=0
)
def __repr__(self):
return (
f"{self.__class__.__name__}(name={self.name}, max_power={self.max_power}, "
f"min_power={self.min_power}, roundtrip_eff={self.roundtrip_eff}, energy_density={self.energy_density}, volume = {self.volume}),"
f"lifetime={self.lifetime}, temperature = {self.temperature}, min_storagelevel = {self.min_storagelevel})"
)
class Heatpump(Asset):
"""Subclass for a Heatpump.
Use cop parameter to set fixed COP (float/int) or COP curve (func).
COP curve should take load in MWhe and return COP.
Parameters:
-----------
max_th_power : numeric
Maximum thermal output in MW (positive value)
cop_curve : numeric or list or function
3 ways to set the COP of the Heatpump:
(1) Fixed COP based on [numeric] value.
(2) Polynomial with coefficients based on [list] input.
Input coeficients in format [c0, c1, c2, ..., c(n)],
will generate Polynomial p(x) = c0 + c1*x + c2*x^2 ... cn*x^n,
where x = % thermal load (in % of thermal capacity) as decimal value.
Example:
cop=[1, 2, 3, 4] will result in following COP curve:
p(x) = 1 + 2x + 3x**2 + 4x**3,
(3) [function] in format func(*args, **kwargs)
Function should return a Polynomial that takes 'load_perc' as parameter.
min_th_power : numeric
Minimum thermal output in MW (positive value)
Notes:
------
Sign convention:
Thermal power outputs have positive values
Electric power inputs have negative values
"""
def __init__(
self,
name,
max_th_power,
cop_curve,
min_th_power=0,
):
if max_th_power < 0 or min_th_power < 0:
raise ValueError("Thermal power can not have negative values.")
if min_th_power > max_th_power:
raise ValueError("'min_th_power' can not be larger than 'max_th_power'.")
self.name = name
self.max_th_power = max_th_power
self.min_th_power = min_th_power
self.cop_curve = self._set_cop_curve(cop_curve)
def __repr__(self):
return (
f"{self.__class__.__name__}(name='{self.name}', max_thermal_power={self.max_th_power}, "
f"cop_curve={self.cop_curve}, min_th_power={self.min_th_power})"
)
# Is turning everything into a Polynomial the best solution here?
@staticmethod
@lru_cache(maxsize=None)
def _set_cop_curve(cop_curve):
"""Generate COP curve function based on different inputtypes.
Returns a function that takes *args **kwargs and returns a Polynomial.
"""
if isinstance(cop_curve, list):
def func(*args, **kwargs):
return Polynomial(cop_curve)
return func
return cop_curve
@lru_cache(maxsize=None)
def get_cop(self, heat_output, Tsink=None, Tsource=None):
"""Get COP corresponding to certain load.
Parameters:
-----------
heat_output : numeric
Thermal load in MW
Tsink : numeric
Sink temperature in degrees celcius
Tsource : numeric
Source temperature in degrees celcius
Notes:
------
Sign convention:
Positive values for thermal load
Negative values for electric load
"""
load_perc = heat_output / self.max_th_power
cop_curve = self.cop_curve
if not callable(cop_curve):
return cop_curve
else:
return cop_curve(Tsink=Tsink, Tsource=Tsource)(load_perc)
def th_to_el_power(self, heat_output, Tsink=None, Tsource=None):
if not self.min_th_power <= heat_output <= self.max_th_power:
warnings.warn(
f"Chosen heat output is out of range [{self.min_th_power} - {self.max_th_power}]. "
"Heat output is being limited to the closest boundary."
)
heat_output = min(max(heat_output, self.min_th_power), self.max_th_power)
cop = self.get_cop(heat_output=heat_output, Tsink=Tsink, Tsource=Tsource)
return -heat_output / cop
def set_load(self, *args, **kwargs):
raise NotImplementedError(
"Directly setting the electric load of the heatpump is not possible (yet). "
"Functionality will be implemented if there is a specific usecase for it."
)
@lru_cache(maxsize=None)
def set_heat_output(self, heat_output, Tsink=None, Tsource=None):
"""Set heat output in MWth, returns load of heatpump as tuple (MWe, MWth)"""
if not self.min_th_power <= heat_output <= self.max_th_power:
warnings.warn(
f"Chosen heat output is out of range [{self.min_th_power} - {self.max_th_power}]. "
"Heat output is being limited to the closest boundary."
)
heat_output = min(max(heat_output, self.min_th_power), self.max_th_power)
if Tsink is not None and Tsource is not None and Tsink <= Tsource:
raise ValueError(f"Tsource '{Tsource}' can not be higher than '{Tsink}'.")
cop = self.get_cop(heat_output=heat_output, Tsink=Tsink, Tsource=Tsource)
e_load = -heat_output / cop
return e_load, heat_output
def _cost_function(self, x, c1, c2, c3, Tsink=None, Tsource=None):
"""Objective function for set_opt_load function.
x = heatpump thermal load in MW
c1 = electricity_cost
c2 = alt_heat_price
c3 = demand
"""
return (
x / self.get_cop(heat_output=x, Tsink=Tsink, Tsource=Tsource) * c1
+ (c3 - x) * c2
)
@lru_cache(maxsize=None)
def set_opt_load(
self,
electricity_cost,
alt_heat_price,
demand,
Tsink=None,
Tsource=None,
tolerance=0.01,
):
"""Set optimal load of Heatpump with minimal total heat costs.
Function uses np.minimize_scalar to minimize cost function.
Parameters:
-----------
electricity_cost:
Cost of input electricity in /MWh(e)
alt_heat_price:
Price of heat from alternative source in /MWh(th)
demand:
Heat demand in MW(th)
Returns:
--------
Optimal load of heatpump as tuple (MWe, MWth)
"""
c1 = electricity_cost
c2 = alt_heat_price
c3 = demand
cop_curve = self.cop_curve
if isinstance(cop_curve, Number):
if c1 / cop_curve <= c2:
return self.max_th_power
else:
return self.min_th_power
obj_func = partial(
self._cost_function, c1=c1, c2=c2, c3=c3, Tsink=Tsink, Tsource=Tsource
)
low_bound = 0
up_bound = min(c3, self.max_th_power)
opt_th_load = minimize_scalar(
obj_func,
bounds=(low_bound, up_bound),
method="bounded",
options={"xatol": tolerance},
).x
opt_e_load, opt_th_load = self.set_heat_output(
opt_th_load, Tsink=Tsink, Tsource=Tsource
)
return opt_e_load, opt_th_load

@ -1,742 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 89,
"id": "3cd3ada2-e064-412b-aaf3-09af3279f411",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
" <script type=\"text/javascript\">\n",
" window.PlotlyConfig = {MathJaxConfig: 'local'};\n",
" if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n",
" if (typeof require !== 'undefined') {\n",
" require.undef(\"plotly\");\n",
" requirejs.config({\n",
" paths: {\n",
" 'plotly': ['https://cdn.plot.ly/plotly-2.8.3.min']\n",
" }\n",
" });\n",
" require(['plotly'], function(Plotly) {\n",
" window._Plotly = Plotly;\n",
" });\n",
" }\n",
" </script>\n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"from datetime import timedelta\n",
"import json\n",
"import pprint\n",
"from copy import deepcopy\n",
"\n",
"import cufflinks\n",
"cufflinks.go_offline()\n",
"import numpy as np\n",
"from numpy.polynomial import Polynomial\n",
"import pandas as pd\n",
"from tqdm.notebook import tqdm\n",
"\n",
"from notepad import WaterStorage, Heatpump\n",
"from pyrecoy.colors import *\n",
"from pyrecoy.converters import *\n",
"from pyrecoy.financial import calculate_eb_ode, get_tax_tables, get_tax_rate, get_grid_tariffs_electricity\n",
"from pyrecoy.framework import TimeFramework\n",
"from pyrecoy.casestudy import CaseStudy\n",
"from pyrecoy.plotting import ebitda_bar_chart, npv_bar_chart\n",
"from pyrecoy.reports import CaseReport, ComparisonReport, BusinessCaseReport, SingleFigureComparison\n",
"from pyrecoy.sensitivity import SensitivityAnalysis\n",
"from pyrecoy.prices import get_tennet_data, get_afrr_capacity_fees_nl\n",
"from pyrecoy.forecasts import Mipf\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "4213d9a9-8a4e-465d-b982-540fad36dde0",
"metadata": {},
"outputs": [],
"source": [
"class Config():\n",
" start = '2019-01-01'\n",
" end = '2019-12-31'\n",
" \n",
" hp_vdg_e_power = 23.3 # MW before\n",
" hp_ndg_e_power = 7.7 # MW after\n",
" hp_min_load = 0.3\n",
" hp_lifetime = 25\n",
" hp_capex = 200_000 # EUR/MWth\n",
" hp_opex = 0.01 # in % of CAPEX\n",
" hp_devex = 0.005 # in % of CAPEX\n",
" \n",
" gb_power = 35 # MW\n",
" gb_efficiency = 0.9\n",
" \n",
" tax_bracket_g = 4 \n",
" tax_bracket_e = 4\n",
" \n",
" include_transport_costs = False\n",
" grid_operator = 'Liander'\n",
" connection_type = 'TS/MS'\n",
" \n",
" discount_rate = 0.1\n",
" project_duration = 12\n",
"\n",
" forecast = 'ForeNeg'\n",
" gas_price_multiplier = 1\n",
" e_price_multiplier = 1\n",
" e_price_volatility_multiplier = 1\n",
" co2_price_multiplier = 1\n",
" tsource_delta = 0\n",
" tsink_delta = 0\n",
" energy_tax_multiplier = 1\n",
" \n",
" # Review the SDE implementation\n",
" sde_base_amount = 81\n",
" longterm_gas_price = 24.00\n",
" longterm_co2_price = 37.90\n",
" sde_switch_price_correction = 40\n",
" \n",
" day_ahead_buying_perc = 0.3\n",
" \n",
" afrr_capacity_fee = 25_000\n",
"\n",
"c = Config()"
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "55d320d4-0590-4b4b-b361-9b3742134254",
"metadata": {},
"outputs": [],
"source": [
"class Store():\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": 104,
"id": "e976f5b5-ab1c-48af-be8c-589f0d62e68b",
"metadata": {},
"outputs": [],
"source": [
"def load_demand_data(c, s):\n",
" demand = pd.read_csv('data/smurfit_demand_preprocessed.csv', delimiter=';', decimal=',')\n",
" dt_index = pd.date_range(\n",
" start=s.time_fw.start,\n",
" end=s.time_fw.start + timedelta(days=365), freq='1T',\n",
" closed='left',\n",
" tz='Europe/Amsterdam')\n",
" demand.index = dt_index\n",
" demand['Total demand'] = demand['MW (VDG)'] + demand['MW (NDG)']\n",
" demand = demand[c.start:c.end]\n",
" return demand\n"
]
},
{
"cell_type": "code",
"execution_count": 94,
"id": "98285112-9b23-4cb9-9b66-0f62e23360c4",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\users\\shahla huseynova\\python\\29 - pyrecoy modelling framework\\pyrecoy\\pyrecoy\\framework.py:35: FutureWarning:\n",
"\n",
"Argument `closed` is deprecated in favor of `inclusive`.\n",
"\n",
"c:\\users\\shahla huseynova\\python\\29 - pyrecoy modelling framework\\pyrecoy\\pyrecoy\\framework.py:35: FutureWarning:\n",
"\n",
"Argument `closed` is deprecated in favor of `inclusive`.\n",
"\n",
"C:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_27972/4233922362.py:3: FutureWarning:\n",
"\n",
"Argument `closed` is deprecated in favor of `inclusive`.\n",
"\n"
]
},
{
"data": {
"text/plain": [
"[<pyrecoy.casestudy.CaseStudy at 0x20329051910>,\n",
" <pyrecoy.casestudy.CaseStudy at 0x20329051a30>]"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def setup_model(c):\n",
" s = Store()\n",
" \n",
" s.time_fw = TimeFramework(start=c.start, end=c.end)\n",
" mipf = Mipf(\n",
" start=s.time_fw.start, \n",
" end=s.time_fw.end, \n",
" tidy=True, \n",
" include_nextQ=True, \n",
" folder_path=r\"C:\\Users\\Shahla Huseynova\\Recoy\\Recoy - Documents\\03 - Libraries\\12 - Data Management\\Forecast Data\"\n",
" ).data\n",
"\n",
" s.hpcase = CaseStudy(time_fw=s.time_fw, freq='1T', name='Heatpump only', data=mipf)\n",
" s.hp_storage_case = CaseStudy(time_fw=s.time_fw, freq='1T', name='Heatpump + Storage', data=mipf)\n",
" \n",
" s.cases = list(CaseStudy.instances.values())\n",
" s.optcases = [s.hpcase, s.hp_storage_case]\n",
" # s.sde_cases = [s.hpcase_sde, s.optcase1, s.afrr_case]\n",
" \n",
" s.demand = load_demand_data(c, s)\n",
" return s\n",
"\n",
"s = setup_model(c)\n",
"s.optcases"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "59d72c05-698f-47d6-96e1-2dba6ebf7dfb",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_27972/4233922362.py:3: FutureWarning:\n",
"\n",
"Argument `closed` is deprecated in favor of `inclusive`.\n",
"\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Tsource (VDG)</th>\n",
" <th>Tsink (VDG)</th>\n",
" <th>MW (VDG)</th>\n",
" <th>Tsource (NDG)</th>\n",
" <th>Tsink (NDG)</th>\n",
" <th>MW (NDG)</th>\n",
" <th>Total demand</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2019-01-01 00:00:00+01:00</th>\n",
" <td>64.990</td>\n",
" <td>143.360</td>\n",
" <td>0.00</td>\n",
" <td>20.510</td>\n",
" <td>147.620</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-01-01 00:01:00+01:00</th>\n",
" <td>64.985</td>\n",
" <td>143.089</td>\n",
" <td>0.00</td>\n",
" <td>20.387</td>\n",
" <td>147.642</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-01-01 00:02:00+01:00</th>\n",
" <td>64.980</td>\n",
" <td>142.818</td>\n",
" <td>0.00</td>\n",
" <td>20.264</td>\n",
" <td>147.664</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-01-01 00:03:00+01:00</th>\n",
" <td>64.975</td>\n",
" <td>142.547</td>\n",
" <td>0.00</td>\n",
" <td>20.141</td>\n",
" <td>147.686</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-01-01 00:04:00+01:00</th>\n",
" <td>64.970</td>\n",
" <td>142.276</td>\n",
" <td>0.00</td>\n",
" <td>20.018</td>\n",
" <td>147.708</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-31 23:55:00+01:00</th>\n",
" <td>65.050</td>\n",
" <td>129.970</td>\n",
" <td>17.04</td>\n",
" <td>67.070</td>\n",
" <td>129.350</td>\n",
" <td>5.69</td>\n",
" <td>22.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-31 23:56:00+01:00</th>\n",
" <td>65.050</td>\n",
" <td>129.970</td>\n",
" <td>17.04</td>\n",
" <td>67.070</td>\n",
" <td>129.350</td>\n",
" <td>5.69</td>\n",
" <td>22.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-31 23:57:00+01:00</th>\n",
" <td>65.050</td>\n",
" <td>129.970</td>\n",
" <td>17.04</td>\n",
" <td>67.070</td>\n",
" <td>129.350</td>\n",
" <td>5.69</td>\n",
" <td>22.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-31 23:58:00+01:00</th>\n",
" <td>65.050</td>\n",
" <td>129.970</td>\n",
" <td>17.04</td>\n",
" <td>67.070</td>\n",
" <td>129.350</td>\n",
" <td>5.69</td>\n",
" <td>22.73</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-31 23:59:00+01:00</th>\n",
" <td>65.050</td>\n",
" <td>129.970</td>\n",
" <td>17.04</td>\n",
" <td>67.070</td>\n",
" <td>129.350</td>\n",
" <td>5.69</td>\n",
" <td>22.73</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>525600 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" Tsource (VDG) Tsink (VDG) MW (VDG) \\\n",
"2019-01-01 00:00:00+01:00 64.990 143.360 0.00 \n",
"2019-01-01 00:01:00+01:00 64.985 143.089 0.00 \n",
"2019-01-01 00:02:00+01:00 64.980 142.818 0.00 \n",
"2019-01-01 00:03:00+01:00 64.975 142.547 0.00 \n",
"2019-01-01 00:04:00+01:00 64.970 142.276 0.00 \n",
"... ... ... ... \n",
"2019-12-31 23:55:00+01:00 65.050 129.970 17.04 \n",
"2019-12-31 23:56:00+01:00 65.050 129.970 17.04 \n",
"2019-12-31 23:57:00+01:00 65.050 129.970 17.04 \n",
"2019-12-31 23:58:00+01:00 65.050 129.970 17.04 \n",
"2019-12-31 23:59:00+01:00 65.050 129.970 17.04 \n",
"\n",
" Tsource (NDG) Tsink (NDG) MW (NDG) Total demand \n",
"2019-01-01 00:00:00+01:00 20.510 147.620 0.00 0.00 \n",
"2019-01-01 00:01:00+01:00 20.387 147.642 0.00 0.00 \n",
"2019-01-01 00:02:00+01:00 20.264 147.664 0.00 0.00 \n",
"2019-01-01 00:03:00+01:00 20.141 147.686 0.00 0.00 \n",
"2019-01-01 00:04:00+01:00 20.018 147.708 0.00 0.00 \n",
"... ... ... ... ... \n",
"2019-12-31 23:55:00+01:00 67.070 129.350 5.69 22.73 \n",
"2019-12-31 23:56:00+01:00 67.070 129.350 5.69 22.73 \n",
"2019-12-31 23:57:00+01:00 67.070 129.350 5.69 22.73 \n",
"2019-12-31 23:58:00+01:00 67.070 129.350 5.69 22.73 \n",
"2019-12-31 23:59:00+01:00 67.070 129.350 5.69 22.73 \n",
"\n",
"[525600 rows x 7 columns]"
]
},
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"demand = load_demand_data(c, s)\n",
"demand\n",
"# how this dataframe is created in the class??"
]
},
{
"cell_type": "code",
"execution_count": 114,
"id": "35d436bc-6846-4888-982d-1a501fc2654d",
"metadata": {},
"outputs": [],
"source": [
"def add_afrr_prices(c, case):\n",
" try:\n",
" aFRR_signal = pd.read_csv(f'data/aFRR_{c.start}.csv', delimiter=';', decimal=',', index_col='datetime')\n",
" aFRR_signal.index = case.data.index\n",
" except:\n",
" data = get_tennet_data('balansdelta2017', pd.to_datetime(c.start), pd.to_datetime(c.end))\n",
" data.index = data[[\"datum\", \"tijd\"]].apply(lambda x: \" \".join(x), axis=1)\n",
" data.index = pd.to_datetime(data.index, format=\"%d-%m-%Y %H:%M\").tz_localize(\n",
" \"Europe/Amsterdam\", ambiguous=True\n",
" )\n",
" data = data[~data.index.duplicated(keep=\"first\")]\n",
" date_ix = pd.date_range(\n",
" data.index[0], data.index[-1], freq=\"1T\", tz=\"Europe/Amsterdam\"\n",
" )\n",
" data = data.reindex(date_ix)\n",
" aFRR_signal = data[['Hoogste_prijs_opregelen', 'Mid_prijs_opregelen', 'Laagste_prijs_afregelen']]\n",
" aFRR_signal.to_csv(f'data/aFRR_{c.start}.csv', sep=';', decimal=',', index_label='datetime')\n",
"\n",
" try:\n",
" aFRR_prices = pd.read_csv(f'data/aFRR_prices_{c.start}.csv', delimiter=';', decimal=',', index_col='datetime')\n",
" aFRR_prices.index = case.data.index\n",
" except:\n",
" data = get_aFRR_prices_nl(pd.to_datetime(c.start), pd.to_datetime(c.end))\n",
" data.index = pd.date_range(\n",
" start=c.start,\n",
" end=pd.to_datetime(c.end) + timedelta(days=1),\n",
" tz='Europe/Amsterdam', \n",
" freq='15T', \n",
" closed='left'\n",
" )\n",
" aFRR_prices = data.reindex(case.data.index, method='ffill')\n",
" aFRR_prices.to_csv(f'data/aFRR_prices_{c.start}.csv', sep=';', decimal=',', index_label='datetime')\n",
" \n",
" case.data = pd.concat([case.data, aFRR_signal, aFRR_prices], axis=1)\n",
" return case"
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "066c1955-a448-443a-ac2c-6ec7930b02fb",
"metadata": {},
"outputs": [],
"source": [
"def increase_volatility_by_factor(col, factor):\n",
" mean = col.mean()\n",
" diff_to_mean = col - mean\n",
" new_diff = diff_to_mean * factor\n",
" return mean + new_diff\n",
"\n",
"def multiply_by_factor(col, factor):\n",
" mean = col.mean()\n",
" diff_to_mean = col - mean\n",
" \n",
" cond = diff_to_mean > 0\n",
" diff_to_mean[cond] *= factor\n",
" diff_to_mean[~cond] /= factor\n",
" return mean + diff_to_mean"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "3f2710a5-2744-4aa8-9c9d-2a5770389f52",
"metadata": {},
"outputs": [],
"source": [
"def load_data(c, s):\n",
" # s.afrr_case = add_afrr_prices(c, s.afrr_case)\n",
" \n",
" for case in s.cases:\n",
" case.add_gasprices()\n",
" case.add_co2prices(perMWh=True)\n",
" \n",
" case.data['Gas prices (€/MWh)'] *= c.gas_price_multiplier\n",
" case.data['CO2 prices (€/MWh)'] *= c.co2_price_multiplier\n",
" case.data['CO2 prices (€/ton)'] *= c.co2_price_multiplier\n",
" \n",
" for case in s.optcases:\n",
" case.data['NEG'] = multiply_by_factor(case.data['NEG'], c.e_price_multiplier)\n",
" case.data['ForeNeg'] = multiply_by_factor(case.data['ForeNeg'], c.e_price_multiplier)\n",
" case.data['DAM'] = multiply_by_factor(case.data['DAM'], c.e_price_multiplier)\n",
" \n",
" case.data['NEG'] = increase_volatility_by_factor(case.data['NEG'], c.e_price_volatility_multiplier)\n",
" case.data['ForeNeg'] = increase_volatility_by_factor(case.data['ForeNeg'], c.e_price_volatility_multiplier)\n",
" \n",
" s.demand[['Tsource (VDG)', 'Tsource (NDG)']] += c.tsource_delta\n",
" s.demand[['Tsink (VDG)', 'Tsink (NDG)']] += c.tsink_delta\n",
" for case in s.cases:\n",
" case.data = pd.concat([case.data, s.demand], axis=1) \n",
"\n",
" s.eb_ode_g = get_tax_rate('gas', 2020, 4)['EB+ODE'] * c.energy_tax_multiplier\n",
" s.eb_ode_e = get_tax_rate('electricity', 2020, 4)['EB+ODE'] * c.energy_tax_multiplier\n",
" s.grid_fees = get_grid_tariffs_electricity(c.grid_operator, 2020, c.connection_type)\n",
" s.grid_fee_per_MWh = s.grid_fees['kWh tarief'] * 1000\n",
" return s\n",
"\n",
"s = load_data(c, s)"
]
},
{
"cell_type": "code",
"execution_count": 106,
"id": "5df8557b-1d2e-4c2b-bfce-4a45c898dcc9",
"metadata": {},
"outputs": [],
"source": [
"def cop_value(Tsink, Tsource):\n",
" Tsink += 273\n",
" Tsource += 273\n",
" \n",
" return Tsink / (Tsink - Tsource)"
]
},
{
"cell_type": "code",
"execution_count": 107,
"id": "fd0e191c-0c3d-4c93-9be4-19a59a9e4856",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.591304347826087"
]
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cop_value(140, 25)"
]
},
{
"cell_type": "code",
"execution_count": 108,
"id": "8db4c66e-4675-4277-bcd3-596b4afc9b4e",
"metadata": {},
"outputs": [],
"source": [
"heatpump = Heatpump(\n",
" name='Heatpump',\n",
" max_th_power=1,\n",
" min_th_power=0,\n",
" cop_curve=cop_value\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 118,
"id": "f503259c-a00a-4348-bda7-3d32e76788b7",
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "_set_cop_curve() takes 1 positional argument but 2 were given",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_27972/1526814104.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 46\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 48\u001b[1;33m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcreate_and_assign_assets\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_27972/1526814104.py\u001b[0m in \u001b[0;36mcreate_and_assign_assets\u001b[1;34m(c, s)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcreate_and_assign_assets\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m heatpump_vdg = Heatpump(\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Heatpump VDG'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mmax_th_power\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhp_vdg_e_power\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mmin_th_power\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhp_vdg_e_power\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mc\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mhp_min_load\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\python\\Encore\\notepad.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, name, max_th_power, cop_curve, min_th_power)\u001b[0m\n\u001b[0;32m 206\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmax_th_power\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmax_th_power\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 207\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmin_th_power\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmin_th_power\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 208\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcop_curve\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_set_cop_curve\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcop_curve\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 209\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 210\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__repr__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mTypeError\u001b[0m: _set_cop_curve() takes 1 positional argument but 2 were given"
]
}
],
"source": [
"def create_and_assign_assets(c, s):\n",
" heatpump_vdg = Heatpump(\n",
" name='Heatpump VDG',\n",
" max_th_power=c.hp_vdg_e_power,\n",
" min_th_power=c.hp_vdg_e_power * c.hp_min_load,\n",
" cop_curve=cop_value\n",
" )\n",
"\n",
" capex_vdg = c.hp_capex*(heatpump_vdg.max_th_power) \n",
" heatpump_vdg.set_financials(capex=capex_vdg, opex=c.hp_opex*capex_vdg, devex=c.hp_devex*capex_vdg, lifetime=25)\n",
"\n",
" vessel = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.90,\n",
" specific_heat_capacity =1.16*1e-3,\n",
" volume = 1000,\n",
" lifetime = 25,\n",
" min_temperature = 55 + 273,\n",
" max_temperature = 95 + 273\n",
" )\n",
" capex_per_MW = 3_000\n",
" capex_per_MWh = 10_000\n",
"\n",
" vessel.set_financials(\n",
" capex_per_MW,\n",
" capex_per_MWh,\n",
" 2_000,\n",
" 0,\n",
" lifetime=30\n",
" )\n",
" \n",
"# s.hp_storage_case.add_asset(vessel)\n",
" s.baseline.add_asset(gasboiler)\n",
" s.hpcase.add_asset(heatpump_vdg)\n",
" s.hpcase.add_asset(heatpump_ndg)\n",
" s.hpcase_sde.add_asset(heatpump_vdg)\n",
" s.hpcase_sde.add_asset(heatpump_ndg)\n",
" s.optcase1.add_asset(heatpump_vdg)\n",
" s.optcase1.add_asset(heatpump_ndg)\n",
" s.optcase1.add_asset(gasboiler)\n",
" s.afrr_case.add_asset(heatpump_vdg)\n",
" s.afrr_case.add_asset(heatpump_ndg)\n",
" s.afrr_case.add_asset(gasboiler)\n",
" return s\n",
"\n",
"s = create_and_assign_assets(c, s)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c097f427-755e-418d-ba1d-fc0de1aa729c",
"metadata": {},
"outputs": [],
"source": [
"def vessel_charge(self, temperature):\n",
" if case.data is NEG and load_perc =! 1\n",
" return Tsink\n",
" \n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cb2d60bf-eb09-400e-810a-9d78e062d3f3",
"metadata": {},
"outputs": [],
"source": [
"def vessel_discharge(self):\n",
" if case.data is DAM and Tsource<Tsource (VDG).mean()\n",
" return max_temperature\n",
" # if case.data is DAM and load_perc\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 110,
"id": "0238165a-5e41-41ea-9a33-9931afbe8ce4",
"metadata": {},
"outputs": [],
"source": [
"def cop_value_new (Tsink, Tsource_new):\n",
" Tsink += 273\n",
" Tsource_new = (vessel.max_temperature + Tsource).mean()\n",
" Tsource_new +=273\n",
" return Tsink / (Tsink - Tsource_new)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "da8d25e5-6880-4e0a-b75a-219ecebbcad7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "dcfd7f2e-fe07-4c8b-85b3-e907045e0240",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "cd22c93e-7a1b-46b2-84ae-4ac76e3968cf",
"metadata": {},
"outputs": [],
"source": [
"Tsink = 140 + 273\n",
"Tsource = 60 + 273\n",
"HP_power = 31 "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,306 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 91,
"id": "9a36fb7b-b801-4b1a-a521-a975fce88a59",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"from notepad import WaterStorage, Heatpump\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "code",
"execution_count": 92,
"id": "a5ff1249-285b-486a-87ed-478f0bc19680",
"metadata": {},
"outputs": [],
"source": [
"ws = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.90,\n",
" energy_density = 50 * 10e-3,\n",
" volume = 500,\n",
" lifetime = 25,\n",
" temperature = 368, #K\n",
" min_storagelevel = 5,\n",
" max_storagelevel = 23\n",
" \n",
")\n"
]
},
{
"cell_type": "code",
"execution_count": 93,
"id": "8df465b8-6ebb-4426-8d5f-3f476bb771ba",
"metadata": {},
"outputs": [],
"source": [
"ws.set_freq('15T')"
]
},
{
"cell_type": "code",
"execution_count": 94,
"id": "5fc7654b-47b3-4a4c-8a6e-e8bf358c3163",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'name': 'MyStorage',\n",
" 'id': 0,\n",
" 'max_power': 10,\n",
" 'min_power': -10,\n",
" 'modes': {'max': 10, 'min': -10},\n",
" 'roundtrip_eff': 0.9,\n",
" 'volume': 500,\n",
" 'lifetime': 25,\n",
" 'temperature': 368,\n",
" 'energy_density': 0.5,\n",
" 'max_storage_capacity': 250.0,\n",
" 'max_storagelevel': 23,\n",
" 'min_storagelevel': 5,\n",
" 'freq': '15T',\n",
" 'time_factor': 0.25}"
]
},
"execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ws.__dict__\n"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "134b463f-970f-4884-9e85-cd8afbf042b6",
"metadata": {},
"outputs": [],
"source": [
"ws.set_storagelevel(6)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"id": "f3a0bda9-42c7-449c-8f64-addb478dda77",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"68.0"
]
},
"execution_count": 96,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ws.charging_power_limit"
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "ca46ed52-bb1a-49bc-8c2c-a3ebde535dcc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"68.0"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ws.charge(100)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "e2c48c78-2efd-4877-a433-89607df23755",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'name': 'MyStorage',\n",
" 'id': 0,\n",
" 'max_power': 10,\n",
" 'min_power': -10,\n",
" 'modes': {'max': 10, 'min': -10},\n",
" 'roundtrip_eff': 0.9,\n",
" 'volume': 500,\n",
" 'lifetime': 25,\n",
" 'temperature': 368,\n",
" 'energy_density': 0.5,\n",
" 'max_storage_capacity': 250.0,\n",
" 'max_storagelevel': 23,\n",
" 'min_storagelevel': 5,\n",
" 'freq': '15T',\n",
" 'time_factor': 0.25,\n",
" 'storagelevel': 23}"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ws.__dict__"
]
},
{
"cell_type": "code",
"execution_count": 99,
"id": "dd3724af-d0bc-452d-8a34-d6355818dfd5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"23"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ws.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": 100,
"id": "be37c269-698b-44e5-8728-8b7951ed9d49",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"bounded_energy 2.0\n",
"new_cl 21.0\n",
"Hello\n"
]
},
{
"data": {
"text/plain": [
"8.0"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ws.discharge(8)"
]
},
{
"cell_type": "code",
"execution_count": 101,
"id": "ff2aea69-060c-4d30-992c-bd2039dd856a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"21.0"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ws.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8eb63454-86e7-4b99-8a16-8018f76b09e2",
"metadata": {},
"outputs": [],
"source": [
"# Test storage scenarios.If Storage is empty and charging is working\n",
"# If it is full, not overcharged\n",
"# Bunlari yoxladiq, discharge islemir ama ona baxmaq lazimdi sonra"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "621a8d5c-bc05-4f5f-9964-ef34fc87a244",
"metadata": {},
"outputs": [],
"source": [
"# Fluctuated demand, sink source a bax deyir onun ucun CSV file atacam\n",
"# Small simulations elemeliyem. 10 quarter hour in a row or 5 quarter hour in a row. This is related with set_freq (1/15). Produce some graphs"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "da624f30-c735-4e1a-941d-4da2f3c4e5d8",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,128 +0,0 @@
# # Added for hot water storage
# class Water_storage(Asset):
# """Subclass for Asset.
# Hot water storage is modeled as follows:
# - Rated power is power in MW that battery can
# import from and export to the grid
# - Efficiency loss is applied at charging, meaning that
# SoC increase when charging is lower than the SoC decrease
# when discharging
# """
# def __init__(
# self,
# name,
# min_capacity,
# max_capacity,
# power_capex,
# capacity_capex,
# average_eff,
# energy_density,
# lifetime,
# opex
# ):
# super().__init__(name=name)
# self.min_capacity = min_capacity
# self.max_capacity = max_capacity
# self.power_capex = power_capex
# self.capacity_capex = capacity_capex
# self.average_eff = average_eff
# self.lifetime = lifetime
# self.opex = opex
# def __repr__(self):
# return (
# f"Battery(self, rated_power={self.max_power}, rated_capacity={self.capacity}, "
# f"roundtrip_eff={self.rt_eff}, min_soc={self.min_soc}, max_soc={self.max_soc})"
# )
# def get_soc(self):
# """Get the SoC in % (decimal value)"""
# return self.chargelevel / self.capacity
# def set_chargelevel(self, chargelevel):
# """Set the chargelevel in MWh. Will automatically change the SoC accordingly."""
# if chargelevel < self.min_chargelevel or chargelevel > self.max_chargelevel:
# raise ValueError(
# f"Tried to set Charge Level to {chargelevel}. "
# f"Charge Level must be a value between "
# f"{self.min_chargelevel} and {self.max_chargelevel} (in MWh)"
# )
# self.chargelevel = chargelevel
# def set_load(self, load):
# """Set load of the battery.
# Use negative values for charging and positive values for discharging.
# Returns actual chargespeed, considering technical limitations of the battery.
# Note: We currently assume all efficiency losses occur during charging (no losses during discharge)
# """
# if not hasattr(self, "freq"):
# raise AttributeError(
# "Time frequency of the model is not defined. "
# "Assign asset to a CaseStudy or use Asset.freq(). "
# "to set de time frequency and try again."
# )
# load = super().set_load(load)
# unbound_charging = self.MW_to_MWh(load)
# if load < 0:
# unbound_charging *= self.rt_eff
# chargelevel = self.chargelevel
# max_charging = chargelevel - self.max_chargelevel
# max_discharging = chargelevel - self.min_chargelevel
# bound_charging = min(max(unbound_charging, max_charging), max_discharging)
# newcl = chargelevel - bound_charging
# self.set_chargelevel(newcl)
# if bound_charging < 0:
# bound_charging /= self.rt_eff
# self.cycle_count += abs(bound_charging / (self.capacity * 2))
# return self.MWh_to_MW(bound_charging)
# def charge(self, chargespeed):
# """Charge the battery with given chargespeed.
# Redirects to Battery.set_load().
# Returns load (negative value for charging).
# """
# chargespeed = self.max_power if chargespeed == "max" else chargespeed
# if chargespeed < 0:
# raise ValueError(
# f"Chargespeed should be always be a positive value by convention. "
# f"Inserted {chargespeed}."
# )
# chargespeed = self.set_load(-chargespeed)
# return chargespeed
# def discharge(self, dischargespeed):
# """Discharge the battery by given amount.
# Redirects to Battery.set_load().
# Returns load (positive value for discharging).
# """
# dischargespeed = self.max_power if dischargespeed == "max" else dischargespeed
# if dischargespeed < 0:
# raise ValueError(
# f"Dischargespeed should be always be a positive value by convention. "
# f"Inserted {dischargespeed}."
# )
# dischargespeed = self.set_load(dischargespeed)
# return dischargespeed

@ -1,640 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"from notepad import WaterStorage\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Developments steps to take: \n",
"* Test the WaterStorage\n",
"* Create some example for WaterStorage\n",
"* Define interactions WaterStorage <> Heatpump\n",
"* Create some example for WaterStorage + Heatpump\n",
"* Develop the interactions --> Create working examples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## WaterStorage"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Functional requirements for the WaterStorage:\n",
"* Given: \n",
" * Size / capacity\n",
" * Temperature in/out\n",
" * Max power\n",
" * Roundtripp efficiency\n",
"* It should be able to execute commands, like: \n",
" * Charge\n",
" * Discharge\n",
" * Whats the storage level? \n",
" * Assign financials \n",
" * Take into account storage losses (time dependent)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"waterstorage = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.90,\n",
" energy_density = 50 * 10e-3,\n",
" volume = 500,\n",
" lifetime = 25,\n",
" temperature = 368, #K\n",
" min_storagelevel = 5,\n",
" max_storagelevel = 23\n",
" \n",
")"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"waterstorage.set_freq('15T')"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.set_storagelevel(15)\n",
"waterstorage.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32.0"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charging_power_limit"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32.0"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charge(100)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"23"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charge(100)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"50.0"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.discharge(50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def test_heatpump_and_waterstorage_system(Tsink, Tsource, process_demand_MW, e_price, waterstorage_level):\n",
" \"\"\"\n",
" 1. Follow a certain logic based on given price:\n",
" - If price is low --> Heatpump at full power, and charge the heatbuffer\n",
" - If price is high --> Discharge the heat buffer, and increase Tsource, which will increase COP\n",
" 2. Above logic should adhere to a couple of constraints:\n",
" - Storage levels\n",
" - Capacity of the heat pump \n",
" - Process demand\n",
" - ....\n",
" 3. This function should contain: \n",
" - Heat pump \n",
" - Water storage\n",
" - Interactions / logic between them\n",
" 4. Output of the function:\n",
" - Power of the heatpump \n",
" - \"New\" water storage level\n",
" \"\"\"\n",
" waterstorage.storage_level = waterstorage_level\n",
" \n",
" if price > 100:\n",
" hp_load = heatpump.set_load('max')\n",
" energy_to_storage = hp_load - demand\n",
" waterstorage.charge(energy_to_storage)\n",
" waterstorage_level = waterstorage.storage_level\n",
" if price < 50:\n",
" energy_from_storage = waterstorage.discharge('max')\n",
" waterstorage_level = waterstorage.storage_level\n",
" new_Tsource = Tsource_calc(Tsource, energy_from_storage)\n",
" new_COP = cop_calc(new_Tsource, Tsink) \n",
" hp_load = heatpump.set_load(demand, new_COP)\n",
" return hp_load, waterstorage_level\n",
" \n",
"hp_load, waterstorage_level = test_heatpump_waterstorage_system(\n",
" Tsink = 373+100, \n",
" Tsoucre = 373+50, \n",
" process_demand = 20, \n",
" e_price = 150, \n",
" waterstorage_level = 0.50\n",
")\n",
"\n",
"# Expected behaviour: \n",
" # hp_heat_output == demand\n",
" # hp source temparture > than before\n",
" # waterstorage_level < than before\n",
" # hp cop > higher than before\n",
"hp_load, waterstorage_level"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"Tsink = 413 #K\n",
"Tsource = 333 #K\n",
"Tref = 273 #K\n",
"hp_capacity = 31 #MW\n",
"demand = 25 #MW\n",
"Cp = 4190 #J/kgK\n",
"MW_to_J_per_s = 1000_000\n",
"hp_capacity *= MW_to_J_per_s\n",
"demand *= MW_to_J_per_s"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"52.84691442209342"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def hp_mass_flow (hp_capacity, Tsink, Tref, Cp):\n",
" return hp_capacity /(Cp*(Tsink - Tref)) \n",
"hp_mass_flow (31_000_000, 413, 273, 4190)"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"42.61847937265598"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def process_mass_flow (demand, Tsink, Tref, Cp):\n",
" return demand /(Cp*(Tsink - Tref)) \n",
"process_mass_flow (25_000_000, 413, 273, 4190)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.866"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"charge_mass_flow = 52 - 42 #can be written as a functiality\n",
"charged_heat = (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n",
"charged_heat"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"# charge_mass_flow = 52 - 42 #should be written as function\n",
"# def charge_heat (charge_mass_flow, Cp, Tsink, Tref, MW_to_J_per_s):\n",
"# return (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n",
"# charge_heat (10, 4190, 413, 273, 1000_000)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"# def source_mass_flow (demand, Tsource, Tref, Cp):\n",
"# return demand /(Cp*(Tsource - Tref)) \n",
"# source_mass_flow (25_000_000, 333, 273, 4190) "
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.514"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# efficiency = 0.7\n",
"Tstorage = 95 + 273\n",
"discharge_mass_flow = charge_mass_flow\n",
"discharged_heat = (discharge_mass_flow * Cp * (Tsource - Tref)) / MW_to_J_per_s\n",
"discharged_heat\n",
"# mass flows need to be balanced not energy\n",
"#This energy loss is because storage is charged with high temperature and discharged with low.\n",
"# heat loss can be neglected assuming that storage is well-insulated."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"66.73076923076923"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Tsource_new = (discharge_mass_flow * T_discharge + Tsource * source_mass_flow) / (discharge_mass_flow + source_mass_flow)\n",
"Tsource_new = (10 * 95 + 60*42) / (10+42)\n",
"Tsource_new\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.636745406824146"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Tsource_new +=273\n",
"COP_new = Tsink / (Tsink - Tsource_new)\n",
"COP_new"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['name', 'id', 'max_power', 'min_power', 'modes', 'roundtrip_eff', 'volume', 'lifetime', 'temperature', 'energy_density', 'max_storage_capacity', 'max_storagelevel', 'min_storagelevel', 'freq', 'time_factor', 'storagelevel'])"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.__dict__.keys()"
]
},
{
"cell_type": "code",
"execution_count": 128,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"23.2"
]
},
"execution_count": 128,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# max_storage_capacity is in MWh and it should inherit MWh to MW conversion from Assets\n",
"# MW = MWh / self.time_factor\n",
"waterstorage.max_storage_capacity"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {},
"outputs": [],
"source": [
"# chargelevel = self.chargelevel\n",
"# max_charging = chargelevel - self.max_chargelevel\n",
"# max_discharging = chargelevel - self.min_chargelevel"
]
},
{
"cell_type": "code",
"execution_count": 130,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"18.2"
]
},
"execution_count": 130,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Funtionality: Set the storage level\n",
"waterstorage.storagelevel = 15\n",
"waterstorage.max_storagelevel = 23.2\n",
"waterstorage.min_storagelevel = 5\n",
"# waterstorage.max_charging = waterstorage.max_storagelevel - waterstorage.storagelevel\n",
"# waterstorage.max_discharging = waterstorage.max_storagelevel - waterstorage.min_storagelevel\n",
"waterstorage.max_discharging"
]
},
{
"cell_type": "code",
"execution_count": 131,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"20"
]
},
"execution_count": 131,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Functionality: Charge the storage\n",
"waterstorage.storage_level = 15\n",
"waterstorage.charge = 5\n",
"waterstorage.storage_level += waterstorage.charge\n",
"waterstorage.storage_level"
]
},
{
"cell_type": "code",
"execution_count": 132,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"11"
]
},
"execution_count": 132,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Functionality: Discharge the storage\n",
"waterstorage.storage_level = 15\n",
"waterstorage.discharge = 4\n",
"waterstorage.storage_level -= waterstorage.discharge\n",
"waterstorage.storage_level"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## WaterStorage + Heatpump system"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Functional requirements for the WaterStorage + Heatpump system:\n",
"1. Goal (Funtional requirements): \n",
" * Given (context)\n",
" * price (forecast), \n",
" * source and sink temperature (provided by process), \n",
" * process heat demand, \n",
" * storage level of the water storage (temperature level)\n",
"* I want to know:\n",
" * Heat output from the heatpump (in MW)\n",
" * New storage level / temperature level\n",
" * Electricity consumption of the heatpump"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}

@ -1,625 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"from notepad import WaterStorage\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Developments steps to take: \n",
"* Test the WaterStorage\n",
"* Create some example for WaterStorage\n",
"* Define interactions WaterStorage <> Heatpump\n",
"* Create some example for WaterStorage + Heatpump\n",
"* Develop the interactions --> Create working examples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## WaterStorage"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Functional requirements for the WaterStorage:\n",
"* Given: \n",
" * Size / capacity\n",
" * Temperature in/out\n",
" * Max power\n",
" * Roundtripp efficiency\n",
"* It should be able to execute commands, like: \n",
" * Charge\n",
" * Discharge\n",
" * Whats the storage level? \n",
" * Assign financials \n",
" * Take into account storage losses (time dependent)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
"waterstorage = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.90,\n",
" energy_density = 50 * 10e-3,\n",
" volume = 500,\n",
" lifetime = 25,\n",
" temperature = 368, #K\n",
" min_storagelevel = 5,\n",
" max_storagelevel = 23\n",
" \n",
")"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [],
"source": [
"waterstorage.set_freq('15T')"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"15"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.set_storagelevel(15)\n",
"waterstorage.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32.0"
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charging_power_limit"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"32.0"
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charge(100)"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"23"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": 85,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0"
]
},
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charge(100)"
]
},
{
"cell_type": "code",
"execution_count": 86,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"50.0"
]
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.discharge(50)"
]
},
{
"cell_type": "code",
"execution_count": 87,
"metadata": {},
"outputs": [],
"source": [
"Tsink = 413 #K\n",
"Tsource = 333 #K\n",
"Tref = 273 #K\n",
"hp_capacity = 31 #MW\n",
"demand = 25 #MW\n",
"Cp = 4190 #J/kgK\n",
"MW_to_J_per_s = 1000_000\n",
"hp_capacity *= MW_to_J_per_s\n",
"demand *= MW_to_J_per_s"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"52.84691442209342"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def hp_mass_flow (hp_capacity, Tsink, Tref, Cp):\n",
" return hp_capacity /(Cp*(Tsink - Tref)) \n",
"hp_mass_flow = hp_mass_flow (hp_capacity, Tsink, Tref, Cp)\n",
"hp_mass_flow"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"42.61847937265598"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def process_mass_flow (demand, Tsink, Tref, Cp):\n",
" return demand /(Cp*(Tsink - Tref)) \n",
"process_mass_flow = process_mass_flow (demand, Tsink, Tref, Cp)\n",
"process_mass_flow\n",
"# What would be the difference here with using equation or a function?"
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.000000000000001"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"charge_mass_flow = hp_mass_flow - process_mass_flow\n",
"charged_heat = (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n",
"charged_heat"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13.263157894736842"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"efficiency = 0.9\n",
"Tstorage = 95 + 273\n",
"discharged_heat = 5.866 * efficiency #MW\n",
"discharged_heat *= MW_to_J_per_s \n",
"discharge_mass_flow = discharged_heat /(Cp*(Tstorage - Tref))\n",
"discharge_mass_flow\n",
"\n",
"# energy is balanced here, mass in is smaller than mass out meaning that there should be extra inlet to ensure the water level\n",
"#This energy loss is because storage is charged with high temperature and discharged with low.\n",
"# heat loss can be neglected assuming that storage is well-insulated."
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {},
"outputs": [],
"source": [
"# new_Tsource = (Tstorage * discharge_mass_flow + Tsource * process_mass_flow) / (discharge_mass_flow + process_mass_flow)\n",
"# new_Tsource"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {},
"outputs": [],
"source": [
"# COP_new = Tsink / (Tsink - new_Tsource)\n",
"# COP_new"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['name', 'id', 'max_power', 'min_power', 'modes', 'roundtrip_eff', 'volume', 'lifetime', 'temperature', 'energy_density', 'max_storage_capacity', 'max_storagelevel', 'min_storagelevel', 'freq', 'time_factor', 'storagelevel', 'storage_level', 'discharged_energy'])"
]
},
"execution_count": 104,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.__dict__.keys()"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"250.0"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# max_storage_capacity is in MWh and it should inherit MWh to MW conversion from Assets\n",
"# MW = MWh / self.time_factor\n",
"waterstorage.max_storage_capacity"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'heatpump' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_28956/49643541.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 43\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mhp_load\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mwaterstorage_level\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 44\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 45\u001b[1;33m hp_load, waterstorage_level = test_heatpump_and_waterstorage_system(\n\u001b[0m\u001b[0;32m 46\u001b[0m \u001b[0mTsink\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m140\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m273\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[0mTsource\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m60\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m273\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_28956/49643541.py\u001b[0m in \u001b[0;36mtest_heatpump_and_waterstorage_system\u001b[1;34m(Tsink, Tsource, process_demand_MW, e_price, waterstorage_level)\u001b[0m\n\u001b[0;32m 40\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mTsink\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mTsink\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mnew_Tsource\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 41\u001b[0m \u001b[0mnew_COP\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mCOP_calculation\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;36m413\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m341\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 42\u001b[1;33m \u001b[0mhp_load\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mheatpump\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_load\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mprocess_demand_MW\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnew_COP\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 43\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mhp_load\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mwaterstorage_level\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 44\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mNameError\u001b[0m: name 'heatpump' is not defined"
]
}
],
"source": [
"def test_heatpump_and_waterstorage_system(Tsink, Tsource, process_demand_MW, e_price, waterstorage_level):\n",
" \"\"\"\n",
" 1. Follow a certain logic based on given price:\n",
" - If price is low --> Heatpump at full power, and charge the heatbuffer\n",
" - If price is high --> Discharge the heat buffer, and increase Tsource, which will increase COP\n",
" 2. Above logic should adhere to a couple of constraints:\n",
" - Storage levels\n",
" - Capacity of the heat pump \n",
" - Process demand\n",
" - ....\n",
" 3. This function should contain: \n",
" - Heat pump \n",
" - Water storage\n",
" - Interactions / logic between them\n",
" 4. Output of the function:\n",
" - Power of the heatpump \n",
" - \"New\" water storage level\n",
" \"\"\"\n",
" waterstorage.storage_level = waterstorage_level\n",
" \n",
" if e_price < 50:\n",
" hp_load = heatpump.set_load('max')\n",
" energy_to_storage = hp_load - process_demand_MW\n",
" waterstorage.charge(energy_to_storage)\n",
" waterstorage.charged_energy = waterstorage.MW_to_MWh(energy_to_storage)\n",
" waterstorage_level = waterstorage.storage_level\n",
" new_cl = waterstorage.storage_level + waterstorage.charged_energy\n",
" if e_price > 100:\n",
" energy_from_storage = discharged_heat\n",
" waterstorage_level = waterstorage.storage_level\n",
" waterstorage.discharged_energy = waterstorage.MW_to_MWh(energy_from_storage)\n",
" new_cl = waterstorage.storage_level - waterstorage.discharged_energy\n",
" def Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow):\n",
" return (\n",
" (Tstorage * discharge_mass_flow + Tsource * process_mass_flow)\n",
" / (discharge_mass_flow + process_mass_flow)\n",
" )\n",
" new_Tsource = Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow)\n",
" def COP_calculation (Tsink, new_Tsource):\n",
" return Tsink / (Tsink - new_Tsource)\n",
" new_COP = COP_calculation (Tsink, new_Tsource)\n",
" hp_load = heatpump.set_load(process_demand_MW, new_COP)\n",
" return hp_load, waterstorage_level\n",
" \n",
"hp_load, waterstorage_level = test_heatpump_and_waterstorage_system(\n",
" Tsink = 140+273, \n",
" Tsource = 60+273, \n",
" process_demand_MW = 25, \n",
" e_price = 150, \n",
" waterstorage_level = 5\n",
")\n",
"\n",
"# Expected behaviour: \n",
" # hp_heat_output == demand\n",
" # hp source temparture > than before\n",
" # waterstorage_level < than before\n",
" # hp cop > higher than before\n",
"hp_load, waterstorage_level"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## WaterStorage + Heatpump system"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Functional requirements for the WaterStorage + Heatpump system:\n",
"1. Goal (Funtional requirements): \n",
" * Given (context)\n",
" * price (forecast), \n",
" * source and sink temperature (provided by process), \n",
" * process heat demand, \n",
" * storage level of the water storage (temperature level)\n",
"* I want to know:\n",
" * Heat output from the heatpump (in MW)\n",
" * New storage level / temperature level\n",
" * Electricity consumption of the heatpump"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Previous examples"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# def hp_mass_flow (hp_capacity, Tsink, Tref, Cp):\n",
"# return hp_capacity /(Cp*(Tsink - Tref)) \n",
"# hp_mass_flow (31_000_000, 413, 273, 4190)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# def process_mass_flow (demand, Tsink, Tref, Cp):\n",
"# return demand /(Cp*(Tsink - Tref)) \n",
"# process_mass_flow (25_000_000, 413, 273, 4190)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# charge_mass_flow = 52 - 42 #should be written as function\n",
"# def charge_heat (charge_mass_flow, Cp, Tsink, Tref, MW_to_J_per_s):\n",
"# return (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n",
"# charge_heat (10, 4190, 413, 273, 1000_000)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Tsource_new = (discharge_mass_flow * T_discharge + Tsource * source_mass_flow) / (discharge_mass_flow + source_mass_flow)\n",
"Tsource_new = (13 * 95 + 60*42) / (13+42)\n",
"Tsource_new"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# chargelevel = self.chargelevel\n",
"# max_charging = chargelevel - self.max_chargelevel\n",
"# max_discharging = chargelevel - self.min_chargelevel"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Funtionality: Set the storage level\n",
"waterstorage.storagelevel = 15\n",
"waterstorage.max_storagelevel = 23.2\n",
"waterstorage.min_storagelevel = 5\n",
"# waterstorage.max_charging = waterstorage.max_storagelevel - waterstorage.storagelevel\n",
"# waterstorage.max_discharging = waterstorage.max_storagelevel - waterstorage.min_storagelevel\n",
"waterstorage.max_discharging"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Functionality: Charge the storage\n",
"waterstorage.storage_level = 15\n",
"waterstorage.charge = 5\n",
"waterstorage.storage_level += waterstorage.charge\n",
"waterstorage.storage_level"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Functionality: Discharge the storage\n",
"waterstorage.storage_level = 15\n",
"waterstorage.discharge = 4\n",
"waterstorage.storage_level -= waterstorage.discharge\n",
"waterstorage.storage_level"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}

@ -1,896 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"from notepad import WaterStorage, Heatpump\n",
"\n",
"%load_ext autoreload\n",
"%autoreload 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Developments steps to take: \n",
"* Test the WaterStorage\n",
"* Create some example for WaterStorage\n",
"* Define interactions WaterStorage <> Heatpump\n",
"* Create some example for WaterStorage + Heatpump\n",
"* Develop the interactions --> Create working examples"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## WaterStorage"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Functional requirements for the WaterStorage:\n",
"* Given: \n",
" * Size / capacity\n",
" * Temperature in/out\n",
" * Max power\n",
" * Roundtripp efficiency\n",
"* It should be able to execute commands, like: \n",
" * Charge\n",
" * Discharge\n",
" * Whats the storage level? \n",
" * Assign financials \n",
" * Take into account storage losses (time dependent)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "__init__() got an unexpected keyword argument 'max_storagelevel'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_3084/3609036661.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m waterstorage = WaterStorage(\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'MyStorage'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mmax_power\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mmin_power\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0mroundtrip_eff\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m0.90\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mTypeError\u001b[0m: __init__() got an unexpected keyword argument 'max_storagelevel'"
]
}
],
"source": [
"waterstorage = WaterStorage(\n",
" name='MyStorage',\n",
" max_power=10,\n",
" min_power=-10,\n",
" roundtrip_eff=0.90,\n",
" energy_density = 50 * 1e-3,\n",
" volume = 1000,\n",
" lifetime = 25,\n",
" temperature = 368, #K\n",
" min_storagelevel = 5,\n",
" max_storagelevel = 45\n",
" \n",
")\n"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"waterstorage.set_freq('15T')"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.set_storagelevel(5)\n",
"waterstorage.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"160.0"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charging_power_limit"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100.0"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charge(100)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"bounded_energy 15.0\n",
"new_cl 45.0\n"
]
},
{
"data": {
"text/plain": [
"60.0"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.charge(300)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"45.0"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.storagelevel"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# waterstorage.charge(100)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"bounded_energy 40.0\n",
"new_cl 5.0\n"
]
},
{
"data": {
"text/plain": [
"160.0"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.discharge(200)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"Tsink = 413 #K\n",
"Tsource = 333 #K\n",
"Tref = 273 #K\n",
"hp_capacity = 31 #MW\n",
"demand = 25 #MW\n",
"Cp = 4190 #J/kgK\n",
"MW_to_J_per_s = 1000_000\n",
"hp_capacity *= MW_to_J_per_s\n",
"demand *= MW_to_J_per_s"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"52.84691442209342"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def hp_mass_flow (hp_capacity, Tsink, Tref, Cp):\n",
" return hp_capacity /(Cp*(Tsink - Tref)) \n",
"hp_mass_flow = hp_mass_flow (hp_capacity, Tsink, Tref, Cp)\n",
"hp_mass_flow"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"42.61847937265598"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def process_mass_flow (demand, Tsink, Tref, Cp):\n",
" return demand /(Cp*(Tsink - Tref)) \n",
"process_mass_flow = process_mass_flow (demand, Tsink, Tref, Cp)\n",
"process_mass_flow\n",
"# What would be the difference here with using equation or a function?"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.0000001202836994"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# charge_mass_flow = 49.874963 - 40.221745\n",
"charged_heat = (10.084152 * Cp * (142.003109- 0)) / MW_to_J_per_s\n",
"charged_heat\n",
"# 1st simulation"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13.566135179639064"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"discharged_heat = 6.0000001202836994*efficiency\n",
"discharge_mass_flow = discharged_heat * MW_to_J_per_s /(Cp*(95 - 0))\n",
"discharge_mass_flow"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"6.000000181313592"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"charged_heat = (9.653219 * Cp * (148.342325- 0)) / MW_to_J_per_s\n",
"charged_heat\n",
"# 10th simulation"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13.566135317629023"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"discharged_heat = 6.000000181313592*efficiency\n",
"discharge_mass_flow = discharged_heat * MW_to_J_per_s /(Cp*(95 - 0))\n",
"discharge_mass_flow"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"charge_mass_flow = hp_mass_flow - process_mass_flow\n",
"charged_heat = (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n",
"charged_heat"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13.566134907674918"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"efficiency = 0.9\n",
"Tstorage = 95 + 273\n",
"discharged_heat = charged_heat * efficiency #MW\n",
"discharged_heat *= MW_to_J_per_s \n",
"discharge_mass_flow = discharged_heat /(Cp*(Tstorage - Tref))\n",
"discharge_mass_flow\n",
"\n",
"# energy is balanced here, mass in is smaller than mass out meaning that there should be extra inlet to ensure the water level\n",
"#This energy loss is because storage is charged with high temperature and discharged with low.\n",
"# heat loss can be neglected assuming that storage is well-insulated."
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13.566135179639064"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"discharged_heat = 6.0000001202836994 * efficiency #MW\n",
"discharged_heat *= MW_to_J_per_s \n",
"discharge_mass_flow = discharged_heat /(Cp*(Tstorage - Tref))\n",
"discharge_mass_flow"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"# new_Tsource = (Tstorage * discharge_mass_flow + Tsource * process_mass_flow) / (discharge_mass_flow + process_mass_flow)\n",
"# new_Tsource"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"# COP_new = Tsink / (Tsink - new_Tsource)\n",
"# COP_new"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['name', 'id', 'max_power', 'min_power', 'modes', 'roundtrip_eff', 'volume', 'lifetime', 'temperature', 'energy_density', 'max_storage_capacity', 'max_storagelevel', 'min_storagelevel', 'freq', 'time_factor', 'storagelevel'])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"waterstorage.__dict__.keys()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"50.0"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# max_storage_capacity is in MWh and it should inherit MWh to MW conversion from Assets\n",
"# MW = MWh / self.time_factor\n",
"waterstorage.max_storage_capacity"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"def COP_calculation(Tsink, Tsource):\n",
" return Tsink / (Tsink - Tsource)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"from numpy.polynomial import Polynomial"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def cop_curve(Tsink, Tsource):\n",
" c0 = Tsink / (Tsink - Tsource) \n",
" return Polynomial([c0])"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$x \\mapsto \\text{10.0} + \\text{5.0}\\,x + \\text{3.0}\\,x^{2}$"
],
"text/plain": [
"Polynomial([10., 5., 3.], domain=[-1, 1], window=[-1, 1])"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Polynomial([10, 5, 3])"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-9.685230024213075, 50)"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#create an heat pump object\n",
"\n",
"heatpump = Heatpump(\"heatpump1\", 50, cop_curve, 10)\n",
"heatpump.set_heat_output(50, Tsource=333, Tsink=413)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.1625"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"heatpump.get_cop(50, Tsource=333, Tsink=413)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"def test_heatpump_and_waterstorage_system(Tsink, Tsource, process_demand_MW, e_price, waterstorage_level):\n",
" \"\"\"\n",
" 1. Follow a certain logic based on given price:\n",
" - If price is low --> Heatpump at full power, and charge the heatbuffer\n",
" - If price is high --> Discharge the heat buffer, and increase Tsource, which will increase COP\n",
" 2. Above logic should adhere to a couple of constraints:\n",
" - Storage levels\n",
" - Capacity of the heat pump \n",
" - Process demand\n",
" - ....\n",
" 3. This function should contain: \n",
" - Heat pump \n",
" - Water storage\n",
" - Interactions / logic between them\n",
" 4. Output of the function:\n",
" - Power of the heatpump \n",
" - \"New\" water storage level\n",
" \"\"\"\n",
" waterstorage.storage_level = waterstorage_level\n",
" \n",
" if e_price < 50:\n",
" hp_load = heatpump.max_th_power #bunu yoxla heat pump-a birbasa set load demek olmur. Ve funksiyada heatpump obyekti var ama o evvel initialize olunmayib\n",
" energy_to_storage = hp_load - process_demand_MW\n",
" waterstorage.charge(energy_to_storage)\n",
" waterstorage.charged_energy = waterstorage.MW_to_MWh(energy_to_storage)\n",
" waterstorage_level = waterstorage.storage_level\n",
" new_cl = waterstorage.storage_level + waterstorage.charged_energy\n",
" if e_price > 100:\n",
" energy_from_storage = discharged_heat\n",
" waterstorage_level = waterstorage.storage_level\n",
" waterstorage.discharged_energy = waterstorage.MW_to_MWh(energy_from_storage)\n",
" new_cl = waterstorage.storage_level - waterstorage.discharged_energy\n",
" def Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow):\n",
" return (\n",
" (Tstorage * discharge_mass_flow + Tsource * process_mass_flow)\n",
" / (discharge_mass_flow + process_mass_flow)\n",
" )\n",
" new_Tsource = Tsource_calculation(Tstorage, discharge_mass_flow, Tsource, process_mass_flow)\n",
"\n",
" new_COP = COP_calculation (Tsink, new_Tsource)\n",
" hp_load = heatpump.set_heat_output(process_demand_MW, new_COP) #bu da hemcinin set load assetin funksiyasidir, \n",
" #heatpump da overwrite edilib. men evezinde yazdim ki set_heat_output\n",
" #sen gor hansi funksiya sene lazimdir.\n",
"\n",
" return hp_load, waterstorage_level\n",
" # return new_COP, new_cl"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "unsupported operand type(s) for -: 'float' and 'NoneType'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_3084/1644856237.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m test_heatpump_and_waterstorage_system(\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mTsink\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m140\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m273\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mTsource\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m60\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m273\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[0mprocess_demand_MW\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m25\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[0me_price\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m150\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_3084/1116608474.py\u001b[0m in \u001b[0;36mtest_heatpump_and_waterstorage_system\u001b[1;34m(Tsink, Tsource, process_demand_MW, e_price, waterstorage_level)\u001b[0m\n\u001b[0;32m 39\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 40\u001b[0m \u001b[0mnew_COP\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mCOP_calculation\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mTsink\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnew_Tsource\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 41\u001b[1;33m \u001b[0mhp_load\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mheatpump\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_heat_output\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mprocess_demand_MW\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnew_COP\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m#bu da hemcinin set load assetin funksiyasidir,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 42\u001b[0m \u001b[1;31m#heatpump da overwrite edilib. men evezinde yazdim ki set_heat_output\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 43\u001b[0m \u001b[1;31m#sen gor hansi funksiya sene lazimdir.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\python\\Encore\\notepad.py\u001b[0m in \u001b[0;36mset_heat_output\u001b[1;34m(self, heat_output, Tsink, Tsource)\u001b[0m\n\u001b[0;32m 325\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mf\"Tsource '{Tsource}' can not be higher than '{Tsink}'.\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 326\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 327\u001b[1;33m \u001b[0mcop\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_cop\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mheat_output\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mheat_output\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTsink\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTsink\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTsource\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTsource\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 328\u001b[0m \u001b[0me_load\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m-\u001b[0m\u001b[0mheat_output\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mcop\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 329\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0me_load\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mheat_output\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\python\\Encore\\notepad.py\u001b[0m in \u001b[0;36mget_cop\u001b[1;34m(self, heat_output, Tsink, Tsource)\u001b[0m\n\u001b[0;32m 293\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mcop_curve\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 294\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 295\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mcop_curve\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTsink\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTsink\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTsource\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mTsource\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mload_perc\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 296\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 297\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mth_to_el_power\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mheat_output\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTsink\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTsource\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32mC:\\Users\\SHAHLA~1\\AppData\\Local\\Temp/ipykernel_3084/2005226421.py\u001b[0m in \u001b[0;36mcop_curve\u001b[1;34m(Tsink, Tsource)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcop_curve\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mTsink\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mTsource\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mc0\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTsink\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mTsink\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mTsource\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mPolynomial\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mc0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for -: 'float' and 'NoneType'"
]
}
],
"source": [
"test_heatpump_and_waterstorage_system(\n",
" Tsink = 140+273, \n",
" Tsource = 60+273, \n",
" process_demand_MW = 25, \n",
" e_price = 150, \n",
" waterstorage_level = 5\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Expected behaviour: \n",
" # hp_heat_output == demand\n",
" # hp source temparture > than before\n",
" # waterstorage_level < than before\n",
" # hp cop > higher than before\n",
"hp_load"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## WaterStorage + Heatpump system"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Functional requirements for the WaterStorage + Heatpump system:\n",
"1. Goal (Funtional requirements): \n",
" * Given (context)\n",
" * price (forecast), \n",
" * source and sink temperature (provided by process), \n",
" * process heat demand, \n",
" * storage level of the water storage (temperature level)\n",
"* I want to know:\n",
" * Heat output from the heatpump (in MW)\n",
" * New storage level / temperature level\n",
" * Electricity consumption of the heatpump"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Previous examples"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"# def hp_mass_flow (hp_capacity, Tsink, Tref, Cp):\n",
"# return hp_capacity /(Cp*(Tsink - Tref)) \n",
"# hp_mass_flow (31_000_000, 413, 273, 4190)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# def process_mass_flow (demand, Tsink, Tref, Cp):\n",
"# return demand /(Cp*(Tsink - Tref)) \n",
"# process_mass_flow (25_000_000, 413, 273, 4190)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# charge_mass_flow = 52 - 42 #should be written as function\n",
"# def charge_heat (charge_mass_flow, Cp, Tsink, Tref, MW_to_J_per_s):\n",
"# return (charge_mass_flow * Cp * (Tsink - Tref)) / MW_to_J_per_s\n",
"# charge_heat (10, 4190, 413, 273, 1000_000)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Tsource_new = (discharge_mass_flow * T_discharge + Tsource * source_mass_flow) / (discharge_mass_flow + source_mass_flow)\n",
"Tsource_new = (13 * 95 + 60*42) / (13+42)\n",
"Tsource_new"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# chargelevel = self.chargelevel\n",
"# max_charging = chargelevel - self.max_chargelevel\n",
"# max_discharging = chargelevel - self.min_chargelevel"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Funtionality: Set the storage level\n",
"waterstorage.storagelevel = 15\n",
"waterstorage.max_storagelevel = 23.2\n",
"waterstorage.min_storagelevel = 5\n",
"# waterstorage.max_charging = waterstorage.max_storagelevel - waterstorage.storagelevel\n",
"# waterstorage.max_discharging = waterstorage.max_storagelevel - waterstorage.min_storagelevel\n",
"waterstorage.max_discharging"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Functionality: Charge the storage\n",
"waterstorage.storage_level = 15\n",
"waterstorage.charge = 5\n",
"waterstorage.storage_level += waterstorage.charge\n",
"waterstorage.storage_level"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Functionality: Discharge the storage\n",
"waterstorage.storage_level = 15\n",
"waterstorage.discharge = 4\n",
"waterstorage.storage_level -= waterstorage.discharge\n",
"waterstorage.storage_level"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# rng = pd.date_range('2018-11-01 00:00:00', end='2018-11-01 12:00:00', freq='15T' )\n",
"\n",
"# price_data = pd.DataFrame(np.random.randint(30, 110, size=(len(rng))), \n",
"# columns=['ForeNeg'], \n",
"# index=rng)\n",
"\n",
"# price_data['ForePos'] = np.random.randint(20, 50, size=(len(rng)))\n",
"\n",
"# price_data.head()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.5"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Loading…
Cancel
Save