function cons_plot(r) T = r.T; figure; num_fig = 3; fig = 1; subplot(num_fig,1,fig); fig=fig+1; hold on; plot(r.x','b-'); plot([0 T],[r.goal r.goal],'r-'); a = axis; axis([0 T a(3) a(4)]); if false subplot(num_fig,1,fig); fig=fig+1; hold on; plot(log_or_small(r.mse)); legend('mse = (1/n) sum [x(i) - goal]^2 '); title('log MSE'); axis([0 T -20 10]); end sv = svd(r.A); s_max_A = sv(1); e = eig(r.L); l_n = e(r.n); l_2 = e(2); bound = (r.epsilon)^2 * ( (r.n)^2 / 4 ) * s_max_A^2 * l_n * ( 1 + (l_n/l_2) + (l_n/l_2)^2 ); s = svd(r.A * r.L * r.A); part1 = (r.epsilon)^2 * ( (r.n) / 4 ) * s(1); part2 = (r.epsilon)^2 * ( (r.n) / 4 ) * s_max_A^2 * l_n^2 / l_2; part3 = (r.epsilon)^2 * ( (r.n) / 4 ) * s_max_A^2 * l_n^3 / l_2^2; bound2 = part1 + part2 + part3; part2b = (r.epsilon)^3 * ( (r.n)^2 / 4 ) * s_max_A^2 * l_n / l_2; part2c = (r.epsilon)^3 * ( (r.n)^2 / 4 ) * s_max_A^2 * l_n^2 / l_2^2; bound ; bound2; disag = r.disagreement(T); subplot(num_fig,1,fig); fig=fig+1; hold on; if false lb = log(bound); plot([0 T], [lb lb], 'r--'); lb2 = log(bound2); plot([0 T], [lb2 lb2], 'b--'); lb2 = log(r.epsilon); plot([0 T], [lb2 lb2], 'k-'); end plot(log_or_small(r.disagreement)); % legend('log xLx'); title('Disagreement'); axis([0 T -20 20]); subplot(num_fig,1,fig); fig=fig+1; hold on; plot(r.drift); % legend('drift'); title('Drift'); a = axis; axis([0 T a(3) a(4)]); function r = log_or_small(k) for i=1:numel(k) r(i) = log(max(k(i),0.0000000001)); end