[Numpy-discussion] Solving Ax = b: inverse vs cholesky factorization

Joon groups.and.lists@gmail....
Mon Nov 8 14:00:48 CST 2010


On Mon, 08 Nov 2010 13:23:46 -0600, Pauli Virtanen <pav@iki.fi> wrote:

> Mon, 08 Nov 2010 13:17:11 -0600, Joon wrote:
>> I was wondering when it is better to store cholesky factor and use it to
>> solve Ax = b, instead of storing the inverse of A. (A is a symmetric,
>> positive-definite matrix.)
>>
>> Even in the repeated case, if I have the inverse of A (invA) stored,
>> then I can solve Ax = b_i, i = 1, ... , n, by x = dot(invA, b_i). Is
>> dot(invA, b_i) slower than cho_solve(cho_factor, b_i)?
>
> Not necessarily slower, but it contains more numerical error.
>
> http://www.johndcook.com/blog/2010/01/19/dont-invert-that-matrix/
>
>> I heard calculating the inverse is not recommended, but my understanding
>> is that numpy.linalg.inv actually solves Ax = I instead of literally
>> calculating the inverse of A. It would be great if I can get some
>> intuition about this.
>
> That's the same thing as computing the inverse matrix.
>

Another question is, is it better to do cho_solve(cho_factor(A), b) than  
solve(A, b)?

Thank you,
Joon
--


More information about the NumPy-Discussion mailing list