t:=[0,5,10,15,20,25,30,35,40,45,50,55,60];v:=[0,24,30,38,40,43,45,49,50,52,53,58,60];points:=[seq([t[i],v[i]],i=1..13)];plot(points,thickness=2,xtickmarks=10);First we will do an underestimate for 20 to 25 minuteswith(plots):a:=plot(points,thickness=2):b:=polygonplot([[t[5],0],[t[6],0],[t[6],v[5]],[t[5],v[5]]],color=cyan):display({a,b});Then we will do an overestimate for 20 to 25 minutesc:=polygonplot([[t[5],0],[t[6],0],[t[6],v[6]],[t[5],v[6]]],color=maroon):d:=plot(points,thickness=2,color=green):display({c,d});i:='i':lbplot:=seq(polygonplot([[t[i],0],[t[i+1],0],[t[i+1],v[i]],[t[i],v[i]]],color=COLOR(RGB,i/5,i/10,i/15)),i=1..12):d:=plot(points,thickness=2,color=green):display({d,lbplot});i:='i':lower_bound:=sum(v[i]*(t[i+1]-t[i]),i=1..12);lowest_mileage:=evalf(lower_bound/60);i:='i':ubplot:=seq(polygonplot([[t[i],0],[t[i+1],0],[t[i+1],v[i+1]],[t[i],v[i+1]]],color=COLOR(RGB,i/20,i/10,i/30)),i=1..10):d:=plot(points,thickness=3,color=red):display({ubplot,d});i:='i':upper_bound:=sum(v[i+1]*(t[i+1]-t[i]),i=1..12);highest_mileage:=evalf(upper_bound/60);