Mathematica Code for the Electron Animation
Please note:The following Mathematica codes are not written in an efficient way. It is highly fragmented on purpose, with the style of " type a line/get a result". Clear[z,v,given,sol,eq1,eq2,diffequ,vplot,yplot,y,t,phaseplot,ta]
diffequ=y''[t]+y[t] y[t] + y''[t]
sol=NDSolve[{diffequ==0,y[0]==2, y'[0]==0},y,{t,0,10}] {{y -> InterpolatingFunction[{{0., 10.}}, <>]}}
yplot=Plot[y[t]/.sol,{t,0,6.3},PlotStyle->RGBColor[0,0,1]]; vplot=Plot[y'[t]/.sol,{t,0,6.3},PlotStyle->RGBColor[0,1,1]];
Draw a ring of charge
xx[ta_]= Sin[ta]; yy[ta_]=.2 Cos[ta]; p[ta_]={xx[ta],yy[ta]} {Sin[ta], 0.2 Cos[ta]}
c=ParametricPlot[{p[ta]},{ta,0,2Pi},AspectRatio->Automatic, Compiled->False,Axes->True, PlotStyle->{{Thickness[0.01],RGBColor[1,0,0]}}];
Display text
Clear[pp,cont] cont= Epilog->{{Text["y[t] = ",{1.8,2.4}]}, {Text[y[t].05/.sol[[1]],{3.6,2.4}]}, {Text["v[t] = ",{5.8,2.4}]},{Text[y'[t]/.sol[[1]],{7.5,2.4}]}} Epilog -> {{Text[y[t] = , {1.8, 2.4}]}, {Text[0.05 InterpolatingFunction[{{0., 10.}}, <>][t], {3.6, 2.4}]}, {Text[v[t] = , {5.8, 2.4}]}, {Text[InterpolatingFunction[{{0., 10.}}, <>][t], {7.5, 2.4}]}}
Animate the electron
pp=Do[Show[c,vplot,yplot, Graphics[{Text[FontForm["y(t)",{"CourierB",10}],{1.5,1.5}], Text[FontForm["v(t)",{"CourierB",10}],{3.5,1.5}], PointSize[.03],Point[ {0, y[t]/.sol[[1]] } ] , PointSize[0],Point[ {0,y'[t]/.sol[[1]] } ] , {PointSize[.02],Point[ {t,(y[t])/.sol[[1]]} ] } } ] , cont,PlotRange->{{-2,7.6},{-2,2}}, AxesLabel->{"time","height"}, Ticks->{{0,1,2,3,4,5,6},{{-2,-.1},{-1,-.5},{0,0},{1,.5},{2,.1}}}], {t,0,6.3,.2}];