<< pl_me_pe pl pl_me_plt >>

CCA (Computational Convex Analysis) >> pl > pl_me_pe_2d

pl_me_pe_2d

2D Moreau envelope, PE algorithm

Calling Sequence

M = pl_me_pe_2d(x0,xn,y0,yn,f)

Parameters

x0

real number. Lower bound of the x-interval.

xn

real number. Upper bound of the x-interval.

y0

real number. Lower bound of the y-interval.

yn

real number. Upper bound of the y-interval.

f

column vector. The value of the function on the grid X=[(x0:hx:xn)'] x [(y0:hy:yn)']; where n=size(f,1), hx=(xn-x0)/(n-1), m=size(f,2), and hy=(yn-y0)/(m-1), so f(i,j)=fu(X(i,j)) for some function fu.

M

matrix of size nxm containing the Moreau envelope of the function f.

Description

Compute numerically the discrete Moreau envelope of a set of spatial points (X(i1,i2),f(i1,i2)) at slopes (X(j1,j2)). It reduces computation to one dimension, and uses the one-dimensional parabolic envelope algorithm (see pl_me_pe) resulting in a theta(n*m) linear-time algorithm.

Examples

function f=f(lambda, x),f=lambda * x.^2,endfunction
function g=g(lambda1, lambda2, x, y),g=f(lambda1,x)+f(lambda2,y),endfunction
lambda1=1;lambda2=2;
x1=(-10:10)';x2=(-5:5)';
[X, Y]=ndgrid(x1,x2);F=g(lambda1,lambda2,X,Y);
s1=(-4:4)';s2=(-5:6)';
Xr=x1;Xc=x2;Sr=s1;Sc=s2;
desired=pl_me_pe_2d(x1,x2,F,s1,s2);
//1d computation for separable function
Ms1=pl_me_direct(x1,f(lambda1,x1),s1);
Ms2=pl_me_direct(x2,f(lambda2,x2),s2);
t1 = Ms1 * ones(1,size(Ms2,1));
t2 = ones(size(Ms1,1),1) * Ms2';
correct=t1+t2;
b = and(correct == desired);

See Also

Authors

Yves Lucet, University of British Columbia, BC, Canada

Bibliography

See pl_me_pe

Used Functions

Computation is reduced to one dimension, which is then handled by me_pe_d (me_pe_d is the same function as pl_me_pe except the grid is assumed to be 1,..,n times 1,...,m).


Report an issue
<< pl_me_pe pl pl_me_plt >>