One of my homework problems for my modern physics course asked me to calculate the highest velocity of a particle for which the Newtonian approximation of kinetic energy is accurate to within an error of of the actual, relativistic, kinetic energy.

In trying to solve this problem, I decided it would be faster and easier to solve the problem numerically than it would be to work out the math. So, I hacked together a quick bisection solver (compatible with MATLAB or Octave) shown below.

I later went back and thought it would be interesting (or ironic) to solve for Newtonian error in kinetic energy using Newton’s method. This I created a Newton’s method script (compatible with MATLAB and Octave) shown below.

One quick note, in the bisection method, I have the script exiting based on the difference between the error and the target error, 0.5%. In the Newton’s method script, the script exits based on the difference between velocity of consecutive iterations.

I wrote one more version of the bisection approach (here) to use the same tolerance measurement method (i.e. the error in velocity not the error in kinetic energy error). It’s a bit slower, but it’s also more accurate.

Both method’s converge to a result of . But Newton’s method takes 4005 iterations, while the bisection approach takes 38 iterations (to produce an answer accurate to .0001 m/s). So, not a great example of Newton’s work. I guess we’ll call this a win for Einstein.