FORWARD_BACKWARD - Forward-backward splitting algorithmUsagesol = forward_backward(x_0,f1, f2, param); sol = forward_backward(x_0,f1, f2); [sol,infos] = forward_backward(...); Input parameters
Output parameters
Descriptionforward_backward solves:
\begin{equation*}
sol = arg \min_x f_1(x) + f_2(x) \hspace{1cm} for \hspace{1cm} x\in R^N
\end{equation*}
where x is the optimization variable. f1 is a structure representing a convex function. Inside the structure, there have to be the prox of the function that can be called by f1.prox and the function itself that can be called by f1.eval. f2 is a structure representing a convex function, with a \(\beta\) Lipschitz continuous gradient. Inside the structure, there have to be the gradient of the function that can be called by f2.grad and the function itself that can be called by f2.eval. param a Matlab structure containing solver paremeters. See the function solvep for more information. Additionally it contains those aditional fields:
References: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. A. Beck and M. Teboulle. A fast iterative shrinkage-thresholding algorithm for linear inverse problems. SIAM Journal on Imaging Sciences, 2(1):183--202, 2009. |