Scilab Function
Last update : 1/5/2008
cca_moreau - Generic Moreau envelope
Calling Sequence
- [M] = cca_moreau(X,Y,S)
- [M,p,P] = cca_moreau(X,Y,S)
- [M,g,Conjpartial,Conj] = cca_moreau(Xr,Xc,f,Sr,Sc)
Parameters
-
X
: column vector. A grid of points on which the function is sampled.
-
f
: column vector. The value of the function on the grid X: usually f(i)=fu(X(i)) for some function fu.
-
S
: column vector. The grid on which we want to compute the conjugate: f* is evaluated on S.
-
M
: column vector. Contains the value of the Moreau envelope M of the function f evaluated on at the points S(j). In other words: M(j) = Min(||S(j) - X(i)||^2 + f(i) | over all indexes i)
-
p
: selection of the proximal mapping, p(j) is in Argmin(||S(j) - X(i)||^2 + f(i) | over all indexes i)
-
P
: proximal mapping, P(j)=Argmin(||S(j) - X(i)||^2 + f(i) | over all indexes i)
-
Xr
: column vector of length n.
-
Xc
: column vector of length m.
-
f
: matrix of size nxm. The function f is sampled on a grid Xr x Xc so f(i,j)=fu(Xr(i),Xc(j)) for some function fu.
-
Sr
: column vector of size m1.
-
Sc
: column vector of size m2. The Moreau envelope is computed on a grid SrxSc.
-
M
: matrix of size m1xm2 containing the Moreau envelope of the function f.
-
g
: matrix of size nxm containing the function g (see formula below).
-
Conjpartial
: matrix containing the partial conjugate of the function g
i.e. the one dimensional conjugate applied to each row.
-
Conj
: matrix of size m1xm2 containing the conjugate of the function g (see me_llt2d for formula).
Description
The moreau function is a wrapper for three different moreau envelope computations depending on the calling sequence.
The first calling sequence [M] = cca_moreau(X,Y,S) uses me_llt function for the 1D me computation.
The second calling sequence [M,p,P] = cca_moreau(X,Y,S) uses the me_direct function for the 1D me computation.
The last calling sequence [M,g,Conjpartial,Conj] = cca_moreau(Xr,Xc,f,Sr,Sc) uses me_llt2d function for the 2D me computation.
For a more detailed description see links below.
Examples
//Example 1. First Calling Sequence
X = (1:10)';S = X;
F=X.^2;
[M] = cca_moreau(X, F, S);
//Example 2. Second Calling Sequence
X = (1:10)';S = X;
F=X.^2;
[M,p,P] = cca_moreau(X,F,S);
//Example 3. Third Calling Sequence
Xr = [1 2.2 3]'; Sr = Xr;
Xc = [1 2 3]'; Sc = Xc;
F = [3 100 100;100 100 100;100 100 2 ];
[MY,g,Conjpartial,Conj] = cca_moreau(Xr, Xc, F, Sr, Sc);
See Also
me_llt, me_direct, me_llt2d,
Author
Mike Trienis, University of British Columbia, BC, Canada