Average Rate of Change

Code

graphicsCode[t1_,t2_]:=(v1=r[t1];
v2 = r[t2];
point1={Blue,PointSize[0.02],Point[v1]};
point2={Red,PointSize[0.02],Point[v2]};
rateVector=(v2-v1)/(t2-t1);
rateArrow={Blue,Thickness[0.008],Arrow[{v1,v1+rateVector}]};Show[Graphics3D[{point1,point2,rateArrow,Text[x,{9,0,0}],Text[y,{0,9,0}],Text[z,{0,0,13}]}],ParametricPlot3D[r[s],{s,0,4 Pi},PlotStyle->{Orange,Thickness[0.008]}],Axes->True,AxesOrigin->{0,0,0},PlotRange->{{-8,8},{-8,8},{0,12}},Boxed->False,PlotLabel->Style["The average rate of change between two points",FontSize->16],ViewPoint->{2000,400,800}])

Graphics

Change the equation here to change the graphics.
Change the t values to change the two points between which we’re calculating the average rate of change.

r[t_]:={8 Cos[t],8 Sin[t],t};
t1 = 2 Pi;
t2 = 2 Pi+0.5;

graphicsCode[t1,t2]

Derivative at a Point as a Limit

Code

frames[tValue_,h_]:=(v1=r[tValue];
v2 = r[tValue+h];
point1={Blue,PointSize[0.02],Point[v1]};
point2={Red,PointSize[0.02],Point[v2]};
rateVector=(v2-v1)/h;
rateArrow={Blue,Thickness[0.008],Arrow[{v1,v1+rateVector}]};Show[Graphics3D[{point1,point2,rateArrow,Text[x,{9,0,0}],Text[y,{0,9,0}],Text[z,{0,0,13}]}],ParametricPlot3D[r[s],{s,0,4 Pi},PlotStyle->{Orange,Thickness[0.008]}],Axes->True,AxesOrigin->{0,0,0},PlotRange->{{-8,8},{-8,8},{0,12}},Boxed->False,PlotLabel->Style[Row[{"The derivative at ",HoldForm[t==tValue]}],FontSize->16],ViewPoint->{2000,400,800}])

Graphics

Edit the equation here to change the graphics below.
Change the value oft to change the point at which we’re calculating the derivative.

r[t_]:={8 Cos[t],8 Sin[t],t};
t = 2Pi;

Animate[frames[t,h],{h,0.5,0.01}]

The Derivative Function

Code

frames[tValue_,onGraph_,atOrigin_,second_]:=(v1=r[tValue];
v2 = r'[tValue];
v3 = r''[tValue];
point={Blue,PointSize[0.02],Point[v1]};
originArrow=If[atOrigin,{Blue,Thickness[0.008],Arrow[{{0,0,0},v2}]},{}];
graphArrow=If[onGraph,{Blue,Thickness[0.008],Arrow[{v1,v1+v2}]},{}];
secondDerivArrow=If[second,{Red,Thickness[0.008],Arrow[{v1,v1+v3}]},{}];
text = If[second,{"The ",Style["first",Blue]," and ",Style["second",Red]," derivative at "},{"The ",Style["first derivative",Blue]," at "}];
Show[Graphics3D[{point,graphArrow,originArrow,secondDerivArrow,Text[x,{13,0,0}],Text[y,{0,13,0}],Text[z,{0,0,16}]}],ParametricPlot3D[r[s],{s,0,4 Pi},PlotStyle->{Orange,Thickness[0.008]}],Axes->True,AxesOrigin->{0,0,0},PlotRange->{{-12,12},{-12,12},{0,15}},Boxed->False,PlotLabel->Style[Row[Join[text,{HoldForm[t==tValue]}]],FontSize->16],ViewPoint->{2000,400,800}])

Graphics

Edit the equation and options here to change the graphics below

r[t_]:={8 Cos[t],8 Sin[t],t};
showDerivOnGraph=True;
showDerivAtOrigin=False;
showSecondDeriv = True;

Animate[frames[t,showDerivOnGraph,showDerivAtOrigin,showSecondDeriv],{t,0,4 Pi}]

Derivatives and Parameterizations

Code

frames[tValue_,first_,second_,speed_]:=(v1=r[tValue];
v2 = r'[tValue];
v3 = r''[tValue];
r2[t_]:=r[speed*t];
u1 = r2[tValue];
u2 = r2'[tValue];
u3 = r2''[tValue];
point1={Blue,PointSize[0.02],Point[v1]};
derivArrow1=If[first,{Blue,Thickness[0.008],Arrow[{v1,v1+v2}]},{}];
secondDerivArrow1=If[second,{Red,Thickness[0.008],Arrow[{v1,v1+v3}]},{}];
point2={RGBColor[0,0,0.5],PointSize[0.02],Point[u1]};
derivArrow2=If[first,{RGBColor[0,0,0.5],Thickness[0.008],Arrow[{u1,u1+u2}]},{}];
secondDerivArrow2=If[second,{RGBColor[0.5,0,0],Thickness[0.008],Arrow[{u1,u1+u3}]},{}];
text = If[second,If[first,"The first and second derivatives","The second derivatives"],If[first,"The first derivatives",""]];
Show[Graphics3D[{point1,point2,derivArrow1,derivArrow2,secondDerivArrow1,secondDerivArrow2,Text[x,{3.2,0,0}],Text[y,{0,3.2,0}],Text[z,{0,0,3.2}]}],ParametricPlot3D[r[s],{s,0,4 Pi},PlotStyle->{Orange,Thickness[0.008]}],Axes->True,AxesOrigin->{0,0,0},PlotRange->{{-3,3},{-3,3},{-3,3}},Boxed->False,PlotLabel->Style[text,FontSize->16],ViewPoint->{2000,400,800}])

Graphics

Edit the equation and options here to change the graphics below.
secondParameterizationSpeed controls how fast the second parameterization is compared to r(t) itself.

r[t_]:={Cos[t/2],Sin[t/2],Sin[t]};
showFirstDeriv=True;
showSecondDeriv =True;
secondParameterizationSpeed=2;

Animate[frames[t,showFirstDeriv,showSecondDeriv,secondParameterizationSpeed],{t,0,4 Pi}]