Ha, now I get it.
vpa function is a smart one, it regocnize pi by the first 16 digits and calculate pi to whatever digits you want.
try this:
my_pi = 3.141592653589793;
now compare:
vpa(pi,50)
and
vpa(my_pi)
Vassili is absolutely correct here. Computation in 16 digit arithmetic, then calling vpa at the very end will NOT generate 60 CORRECT digits of precision. That claim is ridiculous. Boris is kidding himself, as is the author. My statement would be different had the computations been done from the start with VPA.
It should be noted that this function requires the Matlab Symbolic Math Toolbox. The 'vpa' function refers to the Variable Precision Arithmetic functionality there.