@interact
def f(l=(1,24),m=(1,24)):
var('x1,x2')
T = 24
v= 0.1
B =4
b0=2
alpha = 0.02
li = integer_ceil(l)
mi = integer_floor(m)
gb = [alpha*(T+1-t)/v for t in range(T)]
d = [0.1*(T/2-abs(T/2-t))+1 for t in range(1,T+1)]
s1 = (sum(gb[i] for i in range(li))-(B-b0))/li
s3 = (sum(gb[i] for i in range(mi,T)) + B)/(T-mi)
d1 = sum(d[i] for i in range(li))/li
d3 = sum(d[i] for i in range(mi,T))/(T-mi)
gs1 = [gb[i]+ d1-s1 for i in range(li)]
gs3 = [gb[i]+max(0,d3-s3) for i in range(mi+1,T)]
gs2 = [d[i] for i in range(li,mi+1)]
gs = gs1+gs2+gs3
b = []
b.append(b0-d[0]+gs[0])
cost = 0.5*v*gs[0]^2+alpha*(B-b[0])
for i in range(1,T):
b.append(b[i-1]-d[i]+gs[i])
cost = cost +0.5*v*gs[i]^2+alpha*(B-b[i])
cost = cost + alpha*(B-b[T-1])
print 'Total Cost:'
print cost
b.insert(0,b0)
show(line2d([(i,b[i]) for i in range(T+1)],thickness = 3,alpha = .5,legend_label=':b(t)')+line2d([(i+1,gb[i]) for i in range(T)],rgbcolor=(1,0,1),alpha=0.5,legend_label=':n(t)')+plot(B,color='red',xmin=0,xmax=T,)+line2d([(i+1,d[i]) for i in range(T)],thickness = 3,alpha = .5,legend_label=':d(t)',rgbcolor =(1,0,0))+line2d([(i+1,gs[i]) for i in range(T)],thickness = 2,alpha = .5,legend_label=':g(t)',rgbcolor=(0,1,0)))
print 'g:\n'
print gs
print 'n'
print gb
print 'b:'
print b
print 'd:'
print d