Skip to content

[Bug Fix] ADMM.m: Correct sign error in v1/v2 terms of rhs computation #2

@Lessa1227

Description

@Lessa1227

Thank you for this meaningful repository and I wonder if the following code
rhs = y - rho*Dt(y1/rho + v1, y2/rho + v2);
should be corrected to
rhs = y - rho*Dt(y1/rho - v1, y2/rho - v2);
(ADMM Image Denoising/ADMM.m)
according to
$$argmin_{x,y,u}\frac{1}{2}{|x-y|_2^2+\lambda|v_1|_1+\lambda|v_2|_1+y_1^T(D_xx-v_1)+\frac{\rho}{2}(D_xx-v_1)_2^2+y_2^T(D_yx-v_2)+\frac{\rho}{2}(D_yx-v_2)_2^2}$$
$$\Rightarrow x: (x-y)+\rho D_x^T(D_xx-v_1+\frac{y_1}{\rho})+\rho D_y^T(D_yx-v_2+\frac{y_2}{\rho})=0$$
$$\Rightarrow x=(I+\rho D_x^TD_x+\rho D_y^TD_y)^{-1}(y+\rho D_x^T(v_1-\frac{y_1}{\rho})+\rho D_y^T(v_2-\frac{y_2}{\rho}))$$
From my tests, results could get improved after this correction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions