公式
代码
衰减
#coding:utf-8
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
import pandas as pd
%matplotlib inline
# https://blog.csdn.net/zhufenghao/article/details/80879260
import numpy as np
def exponential_decay(t, init=0.8, m=30, finish=0.2):
alpha = np.log(init / finish) / m
l = - np.log(init) / alpha
decay = np.exp(-alpha * (t + l))
return decay
# 剔除init
def exponential_decay_v2(t, init=0.8, m=30, finish=0.2):
alpha = np.log(init / finish) / m
l = 0
decay = np.exp(-alpha * (t + l))
return decay
# get alpha 衰减
def get_alpha(init=0.8, m=30, finish=0.2):
alpha = np.log(init / finish) / m
print("alpha:" + str(alpha))
return alpha
#
def calculate(t, init= 1, alpha = 1):
decay = init *np.exp(-alpha * (t)) #init !!
return decay
max_para = 2
init = max_para
m = 6
finish = 1
alpha = get_alpha(init, m, finish)
# plot
x = []
y = []
for a in range(0,7):
x.append(a)
y.append(calculate(a, init,alpha))
print(x)
print(y)
# 绘制第一条折线
plt.plot(x,y,label="decay")
plt.xlabel("hour")
plt.ylabel("ratio")
plt.scatter(x,y,label="decay")
# 设置数字标签
for a, b in zip(x, y):
plt.text(a, b, round(b,2), ha='center', va='bottom', fontsize=10)
image.png
指数提升
求解alpha的公式改为
alpha = -np.log(init / finish) / m
# get alpha 提升
def get_alpha(init=0.8, m=30, finish=0.2):
alpha = -np.log(init / finish) / m
print("alpha:" + str(alpha))
return alpha
#
def calculate(t, init= 1, alpha = 1):
decay = init *np.exp(alpha * (t)) #init !!
return decay
max_para = 0.5
init = max_para
m = 6
finish = 1
alpha = get_alpha(init, m, finish)
# plot
x = []
y = []
for a in range(0,7):
x.append(a)
y.append(calculate(a, init,alpha))
print(x)
print(y)
# 绘制第一条折线
plt.xlabel("hour")
plt.ylabel("ratio")
plt.plot(x,y,label="decay")
plt.scatter(x,y,label="decay")
# 设置数字标签
for a, b in zip(x, y):
plt.text(a, b, round(b,2), ha='center', va='bottom', fontsize=10)
image.png








网友评论