function q = lp_orders(e, n) % LP_ORDERS Observed convergence order between successive refinements. % % q(k) = log(e(k-1)/e(k)) / log(n(k)/n(k-1)), and NaN wherever the ratio is not % a positive finite number — an error of exactly zero, or a resolution a method % skipped, would otherwise put an Inf or a complex value in the table. q = NaN(size(e)); for k = 2:numel(e) r = e(k-1) / e(k); if isfinite(r) && r > 0 q(k) = log(r) / log(n(k) / n(k-1)); end end end