huber_2d_demo

Show generalized Huber function in two-dimensions.

Ivan Selesnick
June 2016
N = 27;
mx = 1.5;
x1 = linspace(-mx, mx, N);
x2 = linspace(-mx, mx, N);
[X1, X2] = meshgrid(x1, x2);

B = [1 0; 1 1; 0 1];

S = huber_2d(B, X1, X2);

figure(1)
clf
mesh(x1, x2, S, 'EdgeColor', 'black')
title('Generalized Huber function S_B(x)')
xlabel('x_1')
ylabel('x_2')
xlim([-mx mx])
ylim([-mx mx])
view([-20 20])
axis square
drawnow
print -dpdf figures/huber_2d_demo1
figure(2)
clf
mesh(x1, x2, abs(X1) + abs(X2) - S, 'EdgeColor', 'black')
title('GMC penalty \psi_B(x) = ||x||_1 - S_B(x)')
xlabel('x_1')
ylabel('x_2')
xlim([-mx mx])
ylim([-mx mx])
zlim([0 2])
view([-20 20])
axis square
drawnow
print -dpdf figures/huber_2d_demo1_GMC