This has serious consequences. Later passes spread these values out even further. After three passes, the matrix contains a large diagonal and a noisy background. At first glance, this might seem like a good result; the artifacts have dissipated rather than remaining as discrete events. The problem is that the number of operations needed to attenuate the artifacts becomes large very rapidly, so large that the cost of such an operation is prohibitive (order n2 rotations instead of order n for attacking a single diagonal).
The problem in Figure comes from the random variation of the coefficient values. When we compute the angle for Givens rotation, we get slightly different answers at each point because of the varying coefficients. The angles that we compute are correct in that they do the best possible job of attacking the off-diagonal elements. However, the creation of artifacts is also controlled by the rotation angles. Different angles mean that artifacts are created in different places. Thus the 1% (4% on the main diagonal) variation in coefficients introduces artifacts over ranges of positions rather than at discrete locations. Again, this is a bad idea because it means we have to do prohibitively many operations to arrive at a tridiagonal form.
One alternative is to use a constant (mean) value of rotation angle to perform the Givens rotations. This constant angle would keep artifacts confined to a few locations, and mean that attenuating the artifacts with successive passes would be much faster. In Figure , I did this, using a rotation angle computed from the mean values of the diagonal coefficients. You can see that, as I predicted, the artifacts remain along the diagonals, similar to Figure , rather than spreading over the entire matrix. This is good. On the down side, however, successive passes of rotation do not reduce the matrix to tridiagonal form. Compare the lower right panel of Figure to that of Figure , and you will see that the artifacts have not been attenuated very well. More passes do not solve the problem.
The reason this happens is because we used an average rotation angle. This angle does a relatively poor job of annihilating the off-diagonal elements, so no matter how many times we do it, these elements do not go away completely.
All hope is not lost. Certainly in Figure we have improved the diagonal dominance of the matrix, at little cost. We could use such an operator now in the Jacobi iterative scheme or conjugate gradients and expect convergence to be much faster. In the case of Jacobi, the 45 degree algorithm should be stable where it was not before. So even if we have not been able to reduce to tridiagonal form in the lateral velocity case, this method should still be a useful preconditioner for other methods.