Introduction to the Conjugate Gradient Method Without Agonizing Pain (1994) [pdf]
71 points by chmike 1 year ago | 15 comments- trostaft 1 year agoI remember being handed this back when I was taking numerical analysis for the first time. It's an old document, but still useful.
IMO the critical pieces of CG that make it a favorable choice for many problems in scientific computing are
1) the fact that it can be performed matrix free
2) its rapid convergence behavior on operators with clusters of eigenvalues (useful for low rank structures)
Thet being said, practically speaking, even if I know my operator is positive semi definite, I often find minres out performing cg. There's a nice paper comparing that, "CG versus MINRES: An Empirical Comparison".
- stabbles 1 year ago"minres outperforming cg" likely depends on the stopping criterion, since different norms are used.
- trostaft 1 year agoYes, to (grossly) summarize the conclusion of the paper: minres can outperform CG on the backwards error ||r_k|| / ||x_k|| whereas CG can outperform minres on the absolute error ||x^* - x_k|| and the energy norm ||x^* - x_k||_A.
- trostaft 1 year ago
- stabbles 1 year ago
- fastneutron 1 year agoShewchuk’s work on mesh generation is nothing short of a masterpiece. I will always direct people to the source of his Triangle code as an example of what good, literate C code should look like. His Berkeley page is here: https://people.eecs.berkeley.edu/~jrs/
- apengwin 1 year agoWarmly remember taking his computational geometry in undergrad. It was the most engaging and mathematically creative class I took in college.
- apengwin 1 year ago
- mnw21cam 1 year agoI cited this in my doctoral thesis. I'm not sure the title is accurate though. It doesn't manage to remove the "this bit is magic, just do the exact incantations and it'll work out" feel from it.
- aqme28 1 year agoImportant to note that this method only works on Hermitian (usually AKA symmetric) and positive-definite matrices, both of which are often pretty big qualifiers.
- dataflow 1 year agoDid positive definite not imply Hermitian? I feel like I'm forgetting my linear algebra.
Edit: Yup, Wikipedia agrees "this condition implies that M is Hermitian"; see their counterexample with a complex vector: https://en.wikipedia.org/wiki/Definite_matrix#Consistency_be...
Note: Crucially, this is specific to the field of complex numbers (hence the discussion of Hermitian vs. just symmetry). For the field of real numbers, PSD does not imply symmetry, though that's commonly assumed for convenience.
- necroforest 1 year agokind of. you can decompose an arbitrary matrix into symmetric and antisymmetric components: R = S + A. Since A = -A^H (anti-symmetric), for any vector x, <x, Ax> = -<x, Ax> => <x, Ax> = 0. So for any matrix where <x, Rx> > 0, you can add an arbitrary anti-symmetric matrix and keep the same induced quadratic form. So people typically enforce symmetry in their definitions because it is the only part that contributes to the quadratic form and is "nicer" to work with (always diagonalizable, positive eigenvalues, etc.)
This should generalize easily to the complex/Hermitian case.
- dataflow 1 year agoThanks! But I think you might've missed a subtlety here:
> This should generalize easily to the complex/Hermitian case.
This doesn't seem to be true, in that it's actually impossible to have a non-Hermitian matrix C such that x†Cx > 0 over the complex numbers for all x. Whereas over the real numbers, with a matrix R, you can have x'Rx > 0 such that R is asymmetric.
The subtlety here is that x itself can be complex in the complex case, which further constraints C to be Hermitian - see the Wikipedia link I posted above.
In other words, "complex definiteness" is actually a stronger condition than "real definiteness", even for matrices without an imaginary part.
- dataflow 1 year ago
- necroforest 1 year ago
- dataflow 1 year ago
- hazrmard 1 year agoThank you! I first came across Conjugate Gradient when reviewing the paper on Neural Ordinary Differential Equations. It was quite challenging to parse through that math. This helps.
- gh02t 1 year agoHah, my professor was using this as a reference in my numerical methods class circa 2010. It's a great one, highly recommended.