Inicializacion

Displacementgraph[ fun_,{tmin_,tmax_},{ymin_,ymax_},t1_,t2_,opts__] := Module[{p1,p2,f1,f2},Show[{Plot[fun[t],{t,tmin,t1},PlotStyle->{Lighter[Lighter[Blue]],Thickness[0.015],Dashed},PerformanceGoal->"Speed"],
Plot[fun[t],{t,t1,t2},PlotStyle->Thickness[0.015],PerformanceGoal->"Speed"],
Plot[fun[t],{t,t2,tmax},PlotStyle->{Lighter[Lighter[Blue]],Thickness[0.015],Dashed},PerformanceGoal->"Speed"],
Graphics[{

{PointSize[Large],Point[p1={t1,f1=fun[t1]}]},
{PointSize[Large],Blue,Point[{tmin,f1}]},
{PointSize[Large],Red,Point[{t1,ymin}]},
{Thickness[0.01],Dashed,Blue,Line[{{tmin,f1},{t1,f1}}]},
{Thickness[0.01],Dashed,Red,Line[{{t1,ymin},{t1,f1}}]} ,
{PointSize[Large],Point[p2={t2,f2=fun[t2]}]},
{PointSize[Large],Blue,Point[{tmin,f2}]},
{PointSize[Large],Red,Point[{t2,ymin}]},
{Thickness[0.01],Dashed,Blue,Line[{{tmin,f2},{t2,f2}}]},
{Thickness[0.01],Dashed,Red,Line[{{t2,ymin},{t2,f2}}]},

{Thickness[0.005],Dashed,Blue,Arrow[ {{tmin,f1},{tmin,f2}}]},

{Blue,Text[Style[ "Δx", Italic,Bold,16],{tmin+0.05(tmax-tmin),(f2+f1)/2}]}



}]},GridLines->Automatic,opts]];

velpts[ accpts_, v0_] := accpts//({#//Transpose//#[[1]]& ,Prepend[Drop[#//Transpose//#[[2]]& ,-1]Drop[#//Transpose//#[[1]]& // # -(#//RotateRight)&,1],v0]//Drop[FoldList[#1 +#2 &,0,#],1]&}//Transpose)&;

pospts[ vpts_,x0_] := vpts//({#//Transpose//#[[1]]& ,Prepend[(Drop[#//Transpose//#[[2]]& ,-1]Drop[#//Transpose//#[[1]]& // # -(#//RotateRight)&,1])+(1/2)Map[Times@@(#)&, Drop[# -(#//RotateRight),1]],x0+vpts[[1,2]]vpts[[1,1]]]//Drop[FoldList[#1 +#2 &,0,#],1]&}//Transpose)&;


accpts[ vpts_] :=vpts//#-(#//RotateRight)&//Transpose[({Drop[(vpts//Transpose)[[1]],-1],Drop[ (((#//Transpose)[[2]])/((#//Transpose)[[1]])),1]})]&//Append[#,{Last[vpts][[1]],Last[#][[2]]}]&;

accel[t_,accpts_] := Module[{sorted,cumuls,pos},

pos=Position[(accpts//Transpose//#[[1]] &)-t,x_/;x<0]//If[#=={},0,Last[#][[1]]]&;
If[ pos==0,0 ,accpts[[pos,2]]]]



vel[t_,accpts_,velpts_]:=Module[{sorted,cumuls,pos},

pos=Position[(velpts//Transpose//#[[1]] &)-t,x_/;x<0]//If[#=={},0,Last[#][[1]]]&;
If[ pos==0,velpts[[1,2]] ,velpts[[pos,2]]+ accpts[[pos,2]](t - accpts[[pos,1]])]]

position[t_,accpts_,velpts_,posts_,x0_]:=Module[{sorted,cumuls,pos},

pos=Position[(velpts//Transpose//#[[1]] &)-t,x_/;x<0]//If[#=={},0,Last[#][[1]]]&;
If[ pos==0,x0+velpts[[1,2]]t ,
posts[[pos,2]]+velpts[[pos,2]](t-velpts[[pos,1]]) +(1/2)accpts[[pos,2]](((t-velpts[[pos,1]]) )^2)
]]

Manipulacion

Manipulate[

xpts=pospts[vxpts,p1[[2]]];
axpts=accpts[ vxpts];
funx = position[#,axpts,vxpts,xpts,p1[[2]]]&;
funv=vel[#,axpts,vxpts]&;
xnow = funx[p1[[1]]];
 
t1=p1[[1]];t2=p2[[1]];
GridBox[{{RowBox[{"Δx","=",RowBox[{RowBox[{SubsuperscriptBox["∫",t1,t2],RowBox[{RowBox[{SubscriptBox["v","x"],"(","t",")"}],RowBox[{"d","t"}]}]}]," ","="," ",funx[t2]-funx[t1]}]}],"",""},{" "," "," "},{RowBox[{RowBox[{"x","(",t1,")"}],"=",funx[p1[[1]]]}]," ",RowBox[{RowBox[{"x","(",t2,")"}],"=",RowBox[{RowBox[{funx[t1],"+","Δx"}],"=",funx[t2]}]}]}}]//DisplayForm,

Dynamic@LocatorPane[Dynamic[{p1,p2}],
Dynamic@Displacementgraph[
{p1,p2}=Sort[{p1,p2}];
If[p2==p1,p2=p1+0.0001];


funx,{0,20 },{-300 ,300},p1[[1]],p2[[1]],AspectRatio->1/2,PlotRange->{{0,20},{-300 ,300 }},Frame->True,ImageSize->400,FrameLabel->{Style[ "t", Italic,Bold,16],Style[ "x(t)", Italic,Bold,16]},PlotLabel->Style["Posicion y desplazamiento", Bold,16]],Appearance->None],



Delimiter,

Dynamic@LocatorPane[Dynamic[vxpts],Dynamic@Show[
vxpts=Sort[vxpts];
{Plot[funv[t] ,{t,0,p1[[1]]},PlotStyle->{Blue,Thickness[0.01]}],
Plot[funv[t] ,{t,p2[[1]],80},PlotStyle->{Blue,Thickness[0.01]}],
Plot[funv[t] ,{t,p1[[1]],p2[[1]]},PlotStyle->{Blue,Thickness[0.01]},Filling->{1->{0,Lighter[Blue]}},PlotPoints->400]},
PlotRange->{{0,20 },{-40  ,40 }},Frame->True,ImageSize->400,GridLines->Automatic,FrameLabel->{Style[ "t", Italic,Bold,16],Style[ "(Subscript[v, x])(t)", Italic,Bold,16]
},PlotLabel->Style["Velocidad: instantanea", Bold,16],
Prolog->{{Thickness[0.01],Dashed,Red,Line[{{p2[[1]],-40},{p2[[1]],40}}]},{Thickness[0.01],Dashed,Red,Line[{{p1[[1]],-40},{p1[[1]],40}}]}
}

 ],LocatorAutoCreate->True],



{{p1,{5,1}},{-100,-100},{100,100},ControlType->None},
{{p2,{15,1}},{-100,-100},{100,100},ControlType->None},ControlPlacement->Bottom,SaveDefinitions->True,
Initialization:> {xnow=1;vxpts=Table[{i,80Random[]-40},{i,-0.01,20,6}];axpts=accpts[ vxpts];xpts=pospts[axpts,vxpts,1];}
]

Demostracion

Desplazamiento como la integral (area bajo la curva) de la velocidad contra tiempo. Ajuste las lineas rojas en la grafica de posicion contra tiempo para determinar el intervalo de tiempo. El area bajo la curva de velocidad contra tiempo determina el desplazamiento Δx en ese intervalo. La posicion en el primer tiempo del intervalo tambien se puede ajustar en la grafica de x(t). La curva de velocidad contra tiempo se puede moldear con los controles (use alt-click para agregar o quitar controles)