A coarse bound -- this results from just applying the maximum possible multiplication factor 100 times. Here is that upper bound on the energy.
Input := Lmax^100
Output = 4.51515
Here is the actual energy in the solution after 100 steps if we start off in the direction indicated by vmax.
Input := m[ Nest[ f, vmax, 100] ]
Output = 1.73757
It's several times smaller That is because the vector vmax is not only stretched by the amount Lmax but it is rotated. Consequently, it will not be stretched as much the next time the function f is applied. A lower bound is obtainable in the same way.
Input := Lmin^100
Output = 0.605014
Input := m[ Nest[ f,vmin, 100] ]
Output = 1.57438
But the lower bound is not particularly good because the vectors are being rotated as well as stretched. One might try the "average" multiplication factor, and form an estimate with it. This is not a bound, however. It does seem to be a fairly useful estimate.
Input := b[n_] := ((Lmin + Lmax)/2 )^n
Input := t1 = Map[ m, rv0];
Here is a plot of the actual magnitudes.
Input := p1=ListPlot[t1];

Input :=
t2 = Table[ b[i], {i,1,300}];
Here is a plot of the estimate
Input := p2 = ListPlot[t2];

Here is a comparison.
Input := Show[p1,p2];
