Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Patrick Roland <patrick.rolande@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Why is Mata much slower than MATLAB at matrix inversion? |
Date | Fri, 20 Jul 2012 11:50:44 -0700 |
luinv() takes about 15 times longer than MATLAB's inverse function. Maybe I'm being naive, but why wouldn't all serious matrix languages invert matrices at roughly the same speed? Don't they use the same linear algebra routines? Another curiosity is that the luinv() is more general and faster. Why would anyone want to use cholinv()? On Fri, Jul 20, 2012 at 9:17 AM, Richard Herron <richard.c.herron@gmail.com> wrote: > Patrick, -cholinv()- requires a symmetric positive definite matrix, > but I don't think you M matrix is PD. Try -luinv()-. > > Although for most use cases your matrix will be symmetric, right? Then > you should use -invsym()- or a solve function. > > Richard Herron > > > On Thu, Jul 19, 2012 at 9:22 PM, Patrick Roland > <patrick.rolande@gmail.com> > wrote: >> >> I'm comparing two code snippets. In Mata: >> >> mata >> timer_on(1) >> M = rnormal(2000,2000,0,1) >> J = cholinv(M) >> timer_off(1) >> timer() >> end >> >> In MATLAB: >> >> tic; >> M = normrnd(0,1,2000,2000); >> J = inv(M); >> toc; >> >> I find that MATLAB is about 20 times faster (1.5 seconds vs 30 >> seconds). Is there something I'm missing here, or is MATLAB just much >> faster at matrix inversion? I'd much prefer to use Mata because of >> integration with Stata, but if the speed difference is going to be on >> this order then MATLAB is more attractive. >> >> >> Any input here is appreciated. >> * >> * For searches and help try: >> * http://www.stata.com/help.cgi?search >> * http://www.stata.com/support/statalist/faq >> * http://www.ats.ucla.edu/stat/stata/ > * > * For searches and help try: > * http://www.stata.com/help.cgi?search > * http://www.stata.com/support/statalist/faq > * http://www.ats.ucla.edu/stat/stata/ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/