% Error_Plot
%
% The phase error for a fixed amount of work is plotted for both the
% split step method and the Runge-Kutta method, applied to the harmonic
% oscillator.
% The basic calculation assumes that since the operator count includes
% one function evaluation per step for the split step method, while it
% includes four function evaluations per step for the Runge-Kutta method,
% the step size for a given amount of work is four times as high for
% the latter method. It is also inversely proportional to the step size,
% hence we set it equal to the inverse step size for the split step method
% and four times as high for the Runge-Kutta method.
% Input parameters
range = [.4 2]; % the logarithm base 10 of the range of Work
npoints = 101; % the number of evaluation points
% Set up basic arrays
Inc = (range(2) - range(1))/(npoints - 1); % increment of the array Work
Work = range(1):Inc:range(2); % Set up Work array
Work = 10.^Work;
Delta2 = 1.0./Work; % Step sizes for split-step
Delta4 = 4.0*Delta2; % Step sizes for Runge-Kutta
% Calculate error arrays
err2 = atan(Delta2.*sqrt(1-Delta2.^2/4)./(1-Delta2.^2/2)) - Delta2;
err2 = abs(err2); % split step error
err4 = atan(Delta4.*(1-Delta4.^2/6)./(1-(Delta4.^2/2).*(1-Delta4.^2/12))) ...
- Delta4; err4 = 0.25*abs(err4); % Runge-Kutta error
% Plot results on a log-log plot
loglog(Work,[err2;err4])
grid on