top | item 37109275

Introduction to the Conjugate Gradient Method Without Agonizing Pain (1994) [pdf]

71 points| chmike | 2 years ago |cs.cmu.edu

15 comments

order

trostaft|2 years ago

I 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|2 years ago

"minres outperforming cg" likely depends on the stopping criterion, since different norms are used.

fastneutron|2 years ago

Shewchuk’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|2 years ago

Warmly remember taking his computational geometry in undergrad. It was the most engaging and mathematically creative class I took in college.

mnw21cam|2 years ago

I 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|2 years ago

Important 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|2 years ago

Did 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.

hazrmard|2 years ago

Thank 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|2 years ago

Hah, my professor was using this as a reference in my numerical methods class circa 2010. It's a great one, highly recommended.