# Preconditioned Steepest Descent

For my program assignment I need to write a preconditioned steepest descent algorithm. I have psedo-code from my professor which is here:

From reading in my text on this method they say that $P$ is the preconditioned matrix but they do not define it in any way shape or form. I am not sure at all, but by my professors psedo-code I would guess that $M$ is $P$? I honestly have no idea if that is the case. I have tried to search online for this but I seem to be getting information that is not very consistent with the way our book/professor presents the material.

Update: $M$ is just a general precondition matrix; i.e. Jabobi, or any other precondition matrix. The problem I seem to be having now is that I do not really understand the pseudo-code. I have all the ingredients necessary to start but I am not sure how to begin.

Note: the book I am using is, A. Quarteroni, R. Sacco, and F. Saleri, Numerical Mathematics,

• What happens if you insert $M:=A$? This choice would be expensive since solving $Az_0 = r_0$ would be expensive. Therefore, one chooses an approximation $M$ for $A$ for which the system can be solved much easier. This implies an approximative solution. Therefore, the recursive reduction of the residuum. – Tobias Mar 27 '16 at 3:30
• This may be a case of needing to ask your professor for more information. There are multiple simple choices for a preconditioner (Jacobi, incomplete LU, SOR) and it's also possible to apply the preconditioner from the left rather than the right, q.v. en.wikipedia.org/wiki/… – origimbo Mar 27 '16 at 4:17
• The first line just states the assumptions. You do not need to code these. The second line is the first thing you need to code: 1st: Choose an arbitrary first estimation $x_0$ of the solution. If you do not have any glue of the solution use the zero-vector for $x_0$. 2nd: Calculate the first residual $r_0=b-Ax_0$ and solve the preconditioning system $Mz_0 = r_0$. All successive lines are further things you have to code. – Tobias Mar 27 '16 at 17:20
• I have $x_0$ and I have $r_0 = b - Ax_0$ I assume $b$ is arbitrary. Note: I am using arrays for all this and I had to store the matrices $A$ and $M$ in efficient ways so that I save storage cost which was quite tricky but with a lot of devoted time I was able to do it. I just don't understand the $Mz_0 = r_0$ part. I am just confused how I code that. Would it be helpful to post my code? – Wolfy Mar 27 '16 at 17:23
• @Tobias any chance you could help me with this part? I can post my code, I think it is pretty easy to read for the most part – Wolfy Mar 27 '16 at 18:57