<?xml version="1.0" encoding="ISO-8859-1"?><refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="en" xml:id="pl_me_nep_2d"><info><pubdate>04-Apr-2006</pubdate></info><refnamediv><refname>pl_me_nep_2d</refname><refpurpose>2D Moreau envelope for convex functions, NEP algorithm</refpurpose></refnamediv>
  
   
  
   
  
   
  
   
  
   

  
   <refsynopsisdiv><title>Calling Sequence</title><synopsis>M = pl_me_nep_2d(Xr,Xc,f,Sr,Sc)</synopsis></refsynopsisdiv>

  
   <refsection><title>Parameters</title>
  
      <variablelist>

    
         <varlistentry>
    
            <term>Xr</term>
    
            <listitem>
       
               <para>column vector of length n.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>Xc</term>
    
            <listitem>
       
               <para>column vector of length m.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>f</term>
    
            <listitem>
       
               <para>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.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>Sr</term>
    
            <listitem>
       
               <para>column vector of size m1.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>Sc</term>
    
            <listitem>
       
               <para>column vector of size m2. The Moreau envelope is computed on a grid SrxSc.
       </para>
    
            </listitem>
    
         </varlistentry>

    
         <varlistentry>
    
            <term>M</term>
    
            <listitem>
       
               <para>matrix of size m1xm2 containing the Moreau envelope of the function f.
       </para>
    
            </listitem>
    
         </varlistentry>
  
      </variablelist>
  
   </refsection>
 
 
   <refsection><title>Description</title>
	     
      <para>
	Compute numerically the discrete Moreau envelope of a set of spatial points (Xr(i1),Xc(i2),f(i1,i2)) at slopes (Sr(j1),Sc(j2)), i.e. <!--<programlisting><![CDATA[
                                                  2                   2
    M(j1,j2) =  min [ f(i1,i2) + (Sr(j1) - Xr(i1)) + (Sc(j2) - Xc(i2))  ].
               i1,i2
]]></programlisting>-->
		<para>
				<inlinemediaobject>
					<imageobject>
						<imagedata fileref="pl_ImagesOfEquationsByLatex/pl_me_nep_2d/pl_me_nep_2d_1.png"/>
					</imageobject>
				</inlinemediaobject>
		</para>
		
	<para>It reduces computation to one dimension, and computes the Legendre conjugate with the Non-Expansive Prox algorithm thereby resulting
	in a theta(n*m + m1*m2) linear-time algorithm.</para>
	</para>

	
      <para>Note that the algorithm requires the underlying function f to have a nonexpansive proximal mapping to return the correct result
	(see <link linkend="pl_me_nep">pl_me_nep</link>).</para>
  
   </refsection>

  
   <refsection><title>Examples</title><programlisting role="example"><![CDATA[
        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_nep_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);
  ]]></programlisting></refsection>

  
   <refsection><title>See Also</title><simplelist type="inline">
    
      <member> 
         <link linkend="pl_me_brute_2d">pl_me_brute_2d</link> 
      </member>
    
      <member> 
         <link linkend="pl_me_direct_2d">pl_me_direct_2d</link> 
      </member>
    
      <member> 
         <link linkend="pl_me_llt_2d">pl_me_llt_2d</link> 
      </member>
    
      <member> 
         <link linkend="pl_me_pe_2d">pl_me_pe_2d</link> 
      </member>
    
      <member> 
         <link linkend="pl_me_nep">pl_me_nep</link> 
      </member>
  
   </simplelist></refsection>

  
   <refsection><title>Authors</title><para>
	  
      <literal>Yves Lucet</literal>, University of British Columbia, BC, Canada
  </para></refsection>

  
   <refsection><title>Bibliography</title> See <link linkend="pl_me_nep">pl_me_nep</link>  
   </refsection>

  
   <refsection><title>Used Functions</title>
     
      <para>
	Computation is reduced to one dimension, which is then handled by <link linkend="pl_me_nep">pl_me_nep</link>.
     </para>
  
   </refsection>

</refentry>
