<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 7, 2016 at 2:24 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>Lingyun Qiu <<a href="mailto:qiu.lingyun@gmail.com">qiu.lingyun@gmail.com</a>> writes:<br>
<br>
> Dear all,<br>
><br>
> I am working an optimization problem as<br>
> min_x  ||Ax - b||_2^2 + alpha ||x||_1<br>
><br>
> For the fidelity term, we use L2 norm.  We use L1 norm for the<br>
> regularization term. Without regularization term, i.e., alpha=0, we<br>
> iteratively solve the problem as<br>
> x_k+1 = KSP(x_k).<br>
<br>
</span>I.e., a single KSPSolve because the optimization problem is quadratic? </blockquote><div>Yes. A single KSPSolve because of the quadratic form. k stands for the iteration index inside KSPSolve.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span><br>
> I plan to use the split Bregman method to solve the regularized problem. It<br>
> reads as,<br>
> y_k+1 = KSP(x_k)<br>
> x_k+1 = B(y_k+1)<br>
> Here B() is the function related to the Bregman method. It works as a<br>
> post-processing of the iterates.<br>
<br>
</span>But outside the KSPSolve, not at each iteration of the KSPSolve...<br></blockquote><div>I need to modify the iterate after each iteration inside the KSPSolve. Yes, B is a nonlinear operation.  </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
B is a nonlinear operation, so you can't put it inside KSP.  You could<br>
put it inside SNES (perhaps with nonlinear preconditioning, NGMRES or<br>
QN), but I don't think that's what you're asking for here.<br></blockquote><div>I will check these functions. Thanks for the quick reply. </div></div><br></div></div>