In the spirit of sharing ancient code I wrote on this topic that is still working and relevant today, here is some code in a notebook I called "difference differentials". You should like this, I certainly got a kick out of it when I did it. It was a 4 beer late night curiosity event that was never shared until now. This was from the early undergrad days, a private curiosity, and I was basically "hacking" the Mathematica with few skills, so don't pick on me, I actually have grown by light years since this. 

My original description:

"This code uses central differences to approximate the derivatives of a function. Change lo, hi, del, and f[x_] as you please, then go to Evaluation->Evaluate Notebook for a new result."

 lo = -12;
 hi = 12;
 del = 1;
 f[x_] := (x + 16) (x + 5) (x) (x - 11) (x - 14)/10000

 plot = Plot[f[x], {x, lo, hi}, AxesLabel -&gt; {"x", "f[x]"}, 
   PlotStyle -&gt; Directive[Opacity[.75], Thick, Blue]]; 
 plottable = Table[{x, (f[x])}, {x, lo, hi, del}];
 plot1prime = 
   Plot[f'[x], {x, lo, hi}, AxesLabel -&gt; {"x", "f[x]"}, 
   PlotStyle -&gt; Directive[Opacity[.75], Thick, Purple]];
 plot1primetable = Table[{x, (f'[x])}, {x, lo, hi, del}];
 plot2prime = 
   Plot[f''[x], {x, lo, hi}, AxesLabel -&gt; {"x", "f[x]"}, 
   PlotStyle -&gt; Directive[Opacity[.75], Thick, Brown]];
 plot2primetable = Table[{x, (f''[x])}, {x, lo, hi, del}];
 dif1plottable = 
   Table[{x, (f[x + del] - f[x - del])/(2*del)}, {x, lo, hi, 
   del}];(*centered difference*)
 p1plot = ListPlot[dif1plottable, AxesLabel -&gt; {"t", "P(t)"}, 
   PlotStyle -&gt; Directive[PointSize[Medium], Red]];
 dif2plottable = 
   Table[{x, (f[x + del] - 2*f[x] + f[x - del])/(del^2)}, {x, lo, hi, 
   del}];(*centered second difference*)
 p2plot = ListPlot[dif2plottable, AxesLabel -&gt; {"t", "P(t)"}, 
   PlotStyle -&gt; Directive[PointSize[Medium], Black]];
 Show[plot, plot1prime, plot2prime, p1plot, p2plot, AxesOrigin -&gt; {0, 0}, 
   PlotRange -&gt; Automatic]


I am entertained by the result of that output even today, but there was alot I did not know about writing good code at that time that could be improved.

Here is the table output (WOW there was so much I did not know back then!):

 table = Table[{i}, {i, lo, hi, del}];
 Table[AppendTo[table[[i]], 
 plottable[[i]][[2]]], {i, ((hi - lo)/del) + 1}];
 Table[AppendTo[table[[i]], 
 plot1primetable[[i]][[2]]], {i, ((hi - lo)/del) + 1}];
 Table[AppendTo[table[[i]], 
 dif1plottable[[i]][[2]]], {i, ((hi - lo)/del) + 1}];
 Table[AppendTo[table[[i]], 
 plot2primetable[[i]][[2]]], {i, ((hi - lo)/del) + 1}];
 Table[AppendTo[table[[i]], 
 dif2plottable[[i]][[2]]], {i, ((hi - lo)/del) + 1}];
 TableForm[N[table], 
 TableHeadings -&gt; {None, {"x", "f[x]", "f'[x]", "1st differences", 
 "f''[x]", "2nd differences"}}, TableAlignments -&gt; Center]


Numerical differentiation methods
I wanted to know if is it possible to hide the microphone button (speech-to-text) in Android Virtual Keyboard programatically.

I know I can disable this option through device settings, but I don't want the user to use this feature in my application independently of his/her settings. 
I mean i want to force this behaviour inside my app.

Thanks in advance,
Demian
