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

Joon groups.and.lists@gmail....
Mon Nov 8 13:38:45 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.
>

Oh I see. So I guess in invA = solve(Ax, I) and then x = dot(invA, b)  
case, there are more places where numerical errors occur, than just x =  
solve(Ax, b) case.

Thank you,
Joon



--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20101108/14a97488/attachment-0001.html 


More information about the NumPy-Discussion mailing list