def double_exponential_smoothing(yearvalue,loadvalue,t):#二次指数平滑法
print('二次指数平滑法')
size=len(loadvalue)
a=0.4#指数平滑系数,可根据预测效果进行调整
S_1=[]
S2_1_new=[]
S2_2_new=[]
s1=st=at=bt=xt=0
for i in range(1,t+1):
for j in range(1,size):
if (j < 2):
s1 += loadvalue[j - 1]
if (size < 20):
st = s1 / 3
else:
st = loadvalue[0]
S_1.append(st)
for k in range(0,size):
if (k == 0):
S2_1_new.append(a * loadvalue[k] + (1 - a) * S_1[k])
else:
S2_1_new.append(a * loadvalue[k] + (1 - a) * S2_1_new[k - 1])
for l in range(0,size):
if (l &