DEMO_COMPRESS_SENSING3 - Compress sensing example using grouped L12 norm
Description
We present a compress sensing example solved with the douglas rachford
solver. The particularity of this example is the use of a mixed norm. We
do not only know the the signal is sparse, we also know that the
sparse coefficients are grouped.
The problem can be expressed as this
\begin{equation*}
arg \min_x \| x\|_{2,1} \hspace{1cm} such \hspace{0.25cm} that \hspace{1cm} \|b-Ax\|_2 \leq \epsilon
\end{equation*}
Where b are the measurements and A the measurement matrix.
We set
\(f_1(x)=||x||_{2,1}\)
We define the prox of \(f_1\) as:
\begin{equation*}
prox_{f1,\gamma} (z) = arg \min_{x} \frac{1}{2} \|x-z\|_2^2 + \gamma \|z\|_{2,1}
\end{equation*}
\(f_2\) is the indicator function of the set S define by \(||Ax-b||_2 < \epsilon\)
We define the prox of \(f_2\) as
\begin{equation*}
prox_{f2,\gamma} (z) = arg \min_{x} \frac{1}{2} \|x-z\|_2^2 + i_S(x) ,
\end{equation*}
with \(i_S(x)\) is zero if x is in the set S and infinity otherwise.
This previous problem has an identical solution as:
\begin{equation*}
arg \min_{z} \|x - z\|_2^2 \hspace{1cm} such \hspace{0.25cm} that \hspace{1cm} \|Az-b\|_2 \leq \epsilon
\end{equation*}
It is simply a projection on the B2-ball.
A is the measurement matrix (random Gaussian distribution)
The theoretical number of measurements \(M\) is computed with respect of the size of the
signal \(N\) and the sparsity level \(K\):
\begin{equation*}
M=K \max\left( 4 , \text{ceil}(\log(N))\right).
\end{equation*}
Since we add some new information, we will try to reduce the number of
measurements by a factor p:
\begin{equation*}
M=K \max\left( \frac{4}{p} , \text{ceil}(\frac{\log(N)}{p})\right).
\end{equation*}
With this number of measurements, we hope that the algorithm will
perform a perfect reconstruction.
Results
This code produces the following output:
UnLocBoX version 1.7.3. Copyright 2012-2015 LTS2-EPFL, by Nathanael Perraudin
The compression ratio is: 16.6667
The time step is set manually to : 0.01
Algorithm selected: DOUGLAS_RACHFORD
Iter 001: prox_L21: ||x||_21 = 0.000000e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.991243e-06, TOL_EPS, iter = 51
f(x^*) = 5.273712e+00, rel_eval = 5.499951e+01
Iter 002: prox_L21: ||x||_21 = 1.054742e+01
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992268e-06, TOL_EPS, iter = 51
f(x^*) = 4.984215e+00, rel_eval = 5.808263e-02
Iter 003: prox_L21: ||x||_21 = 9.692038e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992388e-06, TOL_EPS, iter = 51
f(x^*) = 4.759576e+00, rel_eval = 4.719740e-02
Iter 004: prox_L21: ||x||_21 = 9.434969e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992386e-06, TOL_EPS, iter = 51
f(x^*) = 4.598988e+00, rel_eval = 3.491800e-02
Iter 005: prox_L21: ||x||_21 = 9.204117e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992359e-06, TOL_EPS, iter = 51
f(x^*) = 4.481434e+00, rel_eval = 2.623147e-02
Iter 006: prox_L21: ||x||_21 = 9.004326e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992306e-06, TOL_EPS, iter = 51
f(x^*) = 4.389081e+00, rel_eval = 2.104156e-02
Iter 007: prox_L21: ||x||_21 = 8.834410e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992316e-06, TOL_EPS, iter = 51
f(x^*) = 4.314042e+00, rel_eval = 1.739407e-02
Iter 008: prox_L21: ||x||_21 = 8.689190e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992456e-06, TOL_EPS, iter = 51
f(x^*) = 4.244677e+00, rel_eval = 1.634167e-02
Iter 009: prox_L21: ||x||_21 = 8.570945e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992637e-06, TOL_EPS, iter = 51
f(x^*) = 4.180779e+00, rel_eval = 1.528365e-02
Iter 010: prox_L21: ||x||_21 = 8.474525e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992760e-06, TOL_EPS, iter = 51
f(x^*) = 4.123283e+00, rel_eval = 1.394435e-02
Iter 011: prox_L21: ||x||_21 = 8.393104e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992850e-06, TOL_EPS, iter = 51
f(x^*) = 4.070577e+00, rel_eval = 1.294791e-02
Iter 012: prox_L21: ||x||_21 = 8.327286e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992907e-06, TOL_EPS, iter = 51
f(x^*) = 4.023309e+00, rel_eval = 1.174848e-02
Iter 013: prox_L21: ||x||_21 = 8.271142e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992979e-06, TOL_EPS, iter = 51
f(x^*) = 3.983098e+00, rel_eval = 1.009559e-02
Iter 014: prox_L21: ||x||_21 = 8.214565e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.993066e-06, TOL_EPS, iter = 51
f(x^*) = 3.944995e+00, rel_eval = 9.658628e-03
Iter 015: prox_L21: ||x||_21 = 8.160776e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.993192e-06, TOL_EPS, iter = 51
f(x^*) = 3.908468e+00, rel_eval = 9.345559e-03
Iter 016: prox_L21: ||x||_21 = 8.111025e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.993341e-06, TOL_EPS, iter = 51
f(x^*) = 3.876076e+00, rel_eval = 8.356878e-03
Iter 017: prox_L21: ||x||_21 = 8.064099e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.993508e-06, TOL_EPS, iter = 51
f(x^*) = 3.845785e+00, rel_eval = 7.876472e-03
Iter 018: prox_L21: ||x||_21 = 8.020111e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.993681e-06, TOL_EPS, iter = 51
f(x^*) = 3.817394e+00, rel_eval = 7.437207e-03
Iter 019: prox_L21: ||x||_21 = 7.980299e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000915e-05, TOL_EPS, iter = 46
f(x^*) = 3.794218e+00, rel_eval = 6.108132e-03
Iter 020: prox_L21: ||x||_21 = 7.939678e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000831e-05, TOL_EPS, iter = 46
f(x^*) = 3.772330e+00, rel_eval = 5.802349e-03
Iter 021: prox_L21: ||x||_21 = 7.899469e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000760e-05, TOL_EPS, iter = 46
f(x^*) = 3.748605e+00, rel_eval = 6.328861e-03
Iter 022: prox_L21: ||x||_21 = 7.865966e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000710e-05, TOL_EPS, iter = 46
f(x^*) = 3.725660e+00, rel_eval = 6.158640e-03
Iter 023: prox_L21: ||x||_21 = 7.837485e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000672e-05, TOL_EPS, iter = 46
f(x^*) = 3.703704e+00, rel_eval = 5.928265e-03
Iter 024: prox_L21: ||x||_21 = 7.811606e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000639e-05, TOL_EPS, iter = 46
f(x^*) = 3.681722e+00, rel_eval = 5.970450e-03
Iter 025: prox_L21: ||x||_21 = 7.789508e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000607e-05, TOL_EPS, iter = 46
f(x^*) = 3.661574e+00, rel_eval = 5.502757e-03
Iter 026: prox_L21: ||x||_21 = 7.768891e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000572e-05, TOL_EPS, iter = 46
f(x^*) = 3.643515e+00, rel_eval = 4.956331e-03
Iter 027: prox_L21: ||x||_21 = 7.747077e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000532e-05, TOL_EPS, iter = 46
f(x^*) = 3.625859e+00, rel_eval = 4.869509e-03
Iter 028: prox_L21: ||x||_21 = 7.725828e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000487e-05, TOL_EPS, iter = 46
f(x^*) = 3.608818e+00, rel_eval = 4.722143e-03
Iter 029: prox_L21: ||x||_21 = 7.705080e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000438e-05, TOL_EPS, iter = 46
f(x^*) = 3.592094e+00, rel_eval = 4.655601e-03
Iter 030: prox_L21: ||x||_21 = 7.685758e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000382e-05, TOL_EPS, iter = 46
f(x^*) = 3.576096e+00, rel_eval = 4.473787e-03
Iter 031: prox_L21: ||x||_21 = 7.668268e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000316e-05, TOL_EPS, iter = 46
f(x^*) = 3.562126e+00, rel_eval = 3.921809e-03
Iter 032: prox_L21: ||x||_21 = 7.650793e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000243e-05, TOL_EPS, iter = 46
f(x^*) = 3.549434e+00, rel_eval = 3.575735e-03
Iter 033: prox_L21: ||x||_21 = 7.632394e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000162e-05, TOL_EPS, iter = 46
f(x^*) = 3.536719e+00, rel_eval = 3.595181e-03
Iter 034: prox_L21: ||x||_21 = 7.615034e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000075e-05, TOL_EPS, iter = 46
f(x^*) = 3.524635e+00, rel_eval = 3.428390e-03
Iter 035: prox_L21: ||x||_21 = 7.597889e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.999789e-06, TOL_EPS, iter = 46
f(x^*) = 3.512663e+00, rel_eval = 3.408316e-03
Iter 036: prox_L21: ||x||_21 = 7.581400e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.998763e-06, TOL_EPS, iter = 46
f(x^*) = 3.500331e+00, rel_eval = 3.523054e-03
Iter 037: prox_L21: ||x||_21 = 7.566545e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.997700e-06, TOL_EPS, iter = 46
f(x^*) = 3.488288e+00, rel_eval = 3.452257e-03
Iter 038: prox_L21: ||x||_21 = 7.553066e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.996621e-06, TOL_EPS, iter = 46
f(x^*) = 3.477503e+00, rel_eval = 3.101366e-03
Iter 039: prox_L21: ||x||_21 = 7.539242e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.995531e-06, TOL_EPS, iter = 46
f(x^*) = 3.467080e+00, rel_eval = 3.006344e-03
Iter 040: prox_L21: ||x||_21 = 7.524930e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.994447e-06, TOL_EPS, iter = 46
f(x^*) = 3.456438e+00, rel_eval = 3.079030e-03
Iter 041: prox_L21: ||x||_21 = 7.511152e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.993384e-06, TOL_EPS, iter = 46
f(x^*) = 3.446035e+00, rel_eval = 3.018819e-03
Iter 042: prox_L21: ||x||_21 = 7.497596e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.992366e-06, TOL_EPS, iter = 46
f(x^*) = 3.435442e+00, rel_eval = 3.083370e-03
Iter 043: prox_L21: ||x||_21 = 7.485188e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.991405e-06, TOL_EPS, iter = 46
f(x^*) = 3.425028e+00, rel_eval = 3.040625e-03
Iter 044: prox_L21: ||x||_21 = 7.474061e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.990495e-06, TOL_EPS, iter = 46
f(x^*) = 3.415632e+00, rel_eval = 2.750876e-03
Iter 045: prox_L21: ||x||_21 = 7.462898e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.998779e-06, TOL_EPS, iter = 51
f(x^*) = 3.406435e+00, rel_eval = 2.699780e-03
Iter 046: prox_L21: ||x||_21 = 7.451791e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.998976e-06, TOL_EPS, iter = 51
f(x^*) = 3.397207e+00, rel_eval = 2.716219e-03
Iter 047: prox_L21: ||x||_21 = 7.441412e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.999159e-06, TOL_EPS, iter = 51
f(x^*) = 3.388039e+00, rel_eval = 2.706182e-03
Iter 048: prox_L21: ||x||_21 = 7.431866e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.999329e-06, TOL_EPS, iter = 51
f(x^*) = 3.379149e+00, rel_eval = 2.630879e-03
Iter 049: prox_L21: ||x||_21 = 7.422957e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.999485e-06, TOL_EPS, iter = 51
f(x^*) = 3.370797e+00, rel_eval = 2.477559e-03
Iter 050: prox_L21: ||x||_21 = 7.413959e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.999627e-06, TOL_EPS, iter = 51
f(x^*) = 3.362685e+00, rel_eval = 2.412551e-03
Iter 051: prox_L21: ||x||_21 = 7.404837e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.999760e-06, TOL_EPS, iter = 51
f(x^*) = 3.354772e+00, rel_eval = 2.358566e-03
Iter 052: prox_L21: ||x||_21 = 7.395820e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 9.999884e-06, TOL_EPS, iter = 51
f(x^*) = 3.347055e+00, rel_eval = 2.305534e-03
Iter 053: prox_L21: ||x||_21 = 7.387105e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000000e-05, TOL_EPS, iter = 51
f(x^*) = 3.339754e+00, rel_eval = 2.186152e-03
Iter 054: prox_L21: ||x||_21 = 7.378249e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000011e-05, TOL_EPS, iter = 51
f(x^*) = 3.332482e+00, rel_eval = 2.182306e-03
Iter 055: prox_L21: ||x||_21 = 7.369698e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000021e-05, TOL_EPS, iter = 51
f(x^*) = 3.325293e+00, rel_eval = 2.161835e-03
Iter 056: prox_L21: ||x||_21 = 7.361708e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000031e-05, TOL_EPS, iter = 51
f(x^*) = 3.318443e+00, rel_eval = 2.064304e-03
Iter 057: prox_L21: ||x||_21 = 7.354006e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000041e-05, TOL_EPS, iter = 51
f(x^*) = 3.311956e+00, rel_eval = 1.958569e-03
Iter 058: prox_L21: ||x||_21 = 7.346275e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000051e-05, TOL_EPS, iter = 51
f(x^*) = 3.305636e+00, rel_eval = 1.911972e-03
Iter 059: prox_L21: ||x||_21 = 7.338487e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000061e-05, TOL_EPS, iter = 51
f(x^*) = 3.299384e+00, rel_eval = 1.894720e-03
Iter 060: prox_L21: ||x||_21 = 7.330725e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000072e-05, TOL_EPS, iter = 51
f(x^*) = 3.293064e+00, rel_eval = 1.919334e-03
Iter 061: prox_L21: ||x||_21 = 7.323456e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000083e-05, TOL_EPS, iter = 51
f(x^*) = 3.286833e+00, rel_eval = 1.895736e-03
Iter 062: prox_L21: ||x||_21 = 7.316756e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000094e-05, TOL_EPS, iter = 51
f(x^*) = 3.280757e+00, rel_eval = 1.851874e-03
Iter 063: prox_L21: ||x||_21 = 7.310533e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000105e-05, TOL_EPS, iter = 51
f(x^*) = 3.275115e+00, rel_eval = 1.722671e-03
Iter 064: prox_L21: ||x||_21 = 7.304281e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000116e-05, TOL_EPS, iter = 51
f(x^*) = 3.269697e+00, rel_eval = 1.657224e-03
Iter 065: prox_L21: ||x||_21 = 7.297840e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000126e-05, TOL_EPS, iter = 51
f(x^*) = 3.264335e+00, rel_eval = 1.642639e-03
Iter 066: prox_L21: ||x||_21 = 7.291485e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000136e-05, TOL_EPS, iter = 51
f(x^*) = 3.258998e+00, rel_eval = 1.637590e-03
Iter 067: prox_L21: ||x||_21 = 7.285487e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000146e-05, TOL_EPS, iter = 51
f(x^*) = 3.253805e+00, rel_eval = 1.596048e-03
Iter 068: prox_L21: ||x||_21 = 7.279925e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000155e-05, TOL_EPS, iter = 51
f(x^*) = 3.249090e+00, rel_eval = 1.450985e-03
Iter 069: prox_L21: ||x||_21 = 7.274163e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000163e-05, TOL_EPS, iter = 51
f(x^*) = 3.244652e+00, rel_eval = 1.367931e-03
Iter 070: prox_L21: ||x||_21 = 7.268021e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000170e-05, TOL_EPS, iter = 51
f(x^*) = 3.240206e+00, rel_eval = 1.372199e-03
Iter 071: prox_L21: ||x||_21 = 7.261956e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000178e-05, TOL_EPS, iter = 51
f(x^*) = 3.235863e+00, rel_eval = 1.342076e-03
Iter 072: prox_L21: ||x||_21 = 7.255960e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000185e-05, TOL_EPS, iter = 51
f(x^*) = 3.231482e+00, rel_eval = 1.355624e-03
Iter 073: prox_L21: ||x||_21 = 7.250289e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000192e-05, TOL_EPS, iter = 51
f(x^*) = 3.227244e+00, rel_eval = 1.313302e-03
Iter 074: prox_L21: ||x||_21 = 7.244930e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000200e-05, TOL_EPS, iter = 51
f(x^*) = 3.223123e+00, rel_eval = 1.278598e-03
Iter 075: prox_L21: ||x||_21 = 7.239739e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000207e-05, TOL_EPS, iter = 51
f(x^*) = 3.219159e+00, rel_eval = 1.231294e-03
Iter 076: prox_L21: ||x||_21 = 7.234615e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000214e-05, TOL_EPS, iter = 51
f(x^*) = 3.215273e+00, rel_eval = 1.208632e-03
Iter 077: prox_L21: ||x||_21 = 7.229435e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000221e-05, TOL_EPS, iter = 51
f(x^*) = 3.211335e+00, rel_eval = 1.226105e-03
Iter 078: prox_L21: ||x||_21 = 7.224475e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000229e-05, TOL_EPS, iter = 51
f(x^*) = 3.207450e+00, rel_eval = 1.211430e-03
Iter 079: prox_L21: ||x||_21 = 7.219770e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000236e-05, TOL_EPS, iter = 51
f(x^*) = 3.203613e+00, rel_eval = 1.197498e-03
Iter 080: prox_L21: ||x||_21 = 7.215278e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000244e-05, TOL_EPS, iter = 51
f(x^*) = 3.199917e+00, rel_eval = 1.155094e-03
Iter 081: prox_L21: ||x||_21 = 7.210984e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000252e-05, TOL_EPS, iter = 51
f(x^*) = 3.196365e+00, rel_eval = 1.111494e-03
Iter 082: prox_L21: ||x||_21 = 7.206618e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000259e-05, TOL_EPS, iter = 51
f(x^*) = 3.192896e+00, rel_eval = 1.086356e-03
Iter 083: prox_L21: ||x||_21 = 7.202193e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000266e-05, TOL_EPS, iter = 51
f(x^*) = 3.189604e+00, rel_eval = 1.032210e-03
Iter 084: prox_L21: ||x||_21 = 7.197463e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000272e-05, TOL_EPS, iter = 51
f(x^*) = 3.186362e+00, rel_eval = 1.017340e-03
Iter 085: prox_L21: ||x||_21 = 7.192543e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000278e-05, TOL_EPS, iter = 51
f(x^*) = 3.183051e+00, rel_eval = 1.040303e-03
Iter 086: prox_L21: ||x||_21 = 7.187802e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000283e-05, TOL_EPS, iter = 51
f(x^*) = 3.179662e+00, rel_eval = 1.065680e-03
Iter 087: prox_L21: ||x||_21 = 7.183448e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000288e-05, TOL_EPS, iter = 51
f(x^*) = 3.176253e+00, rel_eval = 1.073328e-03
Iter 088: prox_L21: ||x||_21 = 7.179632e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000292e-05, TOL_EPS, iter = 51
f(x^*) = 3.172938e+00, rel_eval = 1.044818e-03
Iter 089: prox_L21: ||x||_21 = 7.176326e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000297e-05, TOL_EPS, iter = 51
f(x^*) = 3.169923e+00, rel_eval = 9.510584e-04
Iter 090: prox_L21: ||x||_21 = 7.173221e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000301e-05, TOL_EPS, iter = 51
f(x^*) = 3.167326e+00, rel_eval = 8.198710e-04
Iter 091: prox_L21: ||x||_21 = 7.169567e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000305e-05, TOL_EPS, iter = 51
f(x^*) = 3.164800e+00, rel_eval = 7.981613e-04
Iter 092: prox_L21: ||x||_21 = 7.165494e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000309e-05, TOL_EPS, iter = 51
f(x^*) = 3.162135e+00, rel_eval = 8.428851e-04
Iter 093: prox_L21: ||x||_21 = 7.161361e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000313e-05, TOL_EPS, iter = 51
f(x^*) = 3.159286e+00, rel_eval = 9.017159e-04
Iter 094: prox_L21: ||x||_21 = 7.157526e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000316e-05, TOL_EPS, iter = 51
f(x^*) = 3.156358e+00, rel_eval = 9.276421e-04
Iter 095: prox_L21: ||x||_21 = 7.154115e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000320e-05, TOL_EPS, iter = 51
f(x^*) = 3.153517e+00, rel_eval = 9.009836e-04
Iter 096: prox_L21: ||x||_21 = 7.150998e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000324e-05, TOL_EPS, iter = 51
f(x^*) = 3.150764e+00, rel_eval = 8.737177e-04
Iter 097: prox_L21: ||x||_21 = 7.147956e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000328e-05, TOL_EPS, iter = 51
f(x^*) = 3.148085e+00, rel_eval = 8.511002e-04
Iter 098: prox_L21: ||x||_21 = 7.144899e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000332e-05, TOL_EPS, iter = 51
f(x^*) = 3.145439e+00, rel_eval = 8.410794e-04
Iter 099: prox_L21: ||x||_21 = 7.141860e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000335e-05, TOL_EPS, iter = 51
f(x^*) = 3.142867e+00, rel_eval = 8.184611e-04
Iter 100: prox_L21: ||x||_21 = 7.138966e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000339e-05, TOL_EPS, iter = 51
f(x^*) = 3.140578e+00, rel_eval = 7.286406e-04
Iter 101: prox_L21: ||x||_21 = 7.135908e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000342e-05, TOL_EPS, iter = 51
f(x^*) = 3.138335e+00, rel_eval = 7.148358e-04
Iter 102: prox_L21: ||x||_21 = 7.132810e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000347e-05, TOL_EPS, iter = 51
f(x^*) = 3.136305e+00, rel_eval = 6.472002e-04
Iter 103: prox_L21: ||x||_21 = 7.129670e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000351e-05, TOL_EPS, iter = 51
f(x^*) = 3.134644e+00, rel_eval = 5.300472e-04
Iter 104: prox_L21: ||x||_21 = 7.125957e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000356e-05, TOL_EPS, iter = 51
f(x^*) = 3.132950e+00, rel_eval = 5.405829e-04
Iter 105: prox_L21: ||x||_21 = 7.122065e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000361e-05, TOL_EPS, iter = 51
f(x^*) = 3.131435e+00, rel_eval = 4.839431e-04
Iter 106: prox_L21: ||x||_21 = 7.117802e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000366e-05, TOL_EPS, iter = 51
f(x^*) = 3.130005e+00, rel_eval = 4.566363e-04
Iter 107: prox_L21: ||x||_21 = 7.113298e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000372e-05, TOL_EPS, iter = 51
f(x^*) = 3.128740e+00, rel_eval = 4.043256e-04
Iter 108: prox_L21: ||x||_21 = 7.108271e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000378e-05, TOL_EPS, iter = 51
f(x^*) = 3.127390e+00, rel_eval = 4.318997e-04
Iter 109: prox_L21: ||x||_21 = 7.103046e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000384e-05, TOL_EPS, iter = 51
f(x^*) = 3.125779e+00, rel_eval = 5.153053e-04
Iter 110: prox_L21: ||x||_21 = 7.098182e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000391e-05, TOL_EPS, iter = 51
f(x^*) = 3.123981e+00, rel_eval = 5.755019e-04
Iter 111: prox_L21: ||x||_21 = 7.093860e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000399e-05, TOL_EPS, iter = 51
f(x^*) = 3.122176e+00, rel_eval = 5.780726e-04
Iter 112: prox_L21: ||x||_21 = 7.090090e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000407e-05, TOL_EPS, iter = 51
f(x^*) = 3.120858e+00, rel_eval = 4.223660e-04
Iter 113: prox_L21: ||x||_21 = 7.086055e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000417e-05, TOL_EPS, iter = 51
f(x^*) = 3.120197e+00, rel_eval = 2.119704e-04
Iter 114: prox_L21: ||x||_21 = 7.080723e+00
Proj. B2: epsilon = 1.000000e-05, ||y-Ax||_2 = 1.000427e-05, TOL_EPS, iter = 51
f(x^*) = 3.120029e+00, rel_eval = 5.378336e-05
DOUGLAS_RACHFORD:
f(x^*) = 3.120029e+00, rel_eval = 5.378336e-05
114 iterations
Stopping criterion: REL_NORM_OBJ
References:
P. Combettes and J. Pesquet.
Proximal splitting methods in signal processing.
Fixed-Point Algorithms for Inverse Problems in Science and
Engineering, pages 185--212, 2011.
P. Combettes and J. Pesquet.
A douglas--rachford splitting approach to nonsmooth convex
variational signal recovery.
Selected Topics in Signal Processing, IEEE Journal of,
1(4):564--574, 2007.
F. Bach, R. Jenatton, J. Mairal, and G. Obozinski.
Optimization with sparsity-inducing penalties.
arXiv preprint arXiv:1108.0775, 2011.
|
|