octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Backslash inversion vs inv-function


From: Rolf Fabian
Subject: Backslash inversion vs inv-function
Date: Fri, 18 Jan 2008 02:54:29 -0800 (PST)

Because of its underlying algorithm, I expected that 
inversion of a (nonsingular) square matrix should
be faster using backslash operator  'y2 = x\eye(n)'
instead of Octave's  builtin 'y1 = inv(x)'  function.

Thus I conducted  dimension n - depending tests
using random matrices input in order to sched
some light on this issue.

octave-3.0.0.exe:48> n=5; x=randn(n); tic; y1 = inv(x); toc,
                                      tic; y2 = x\eye(n); toc, 
max(max(abs(y1-y2)))

             Elapsed time is sec.
   n         inv(x)          x\eye(n)   Speed Gain Fac   max(max(abs(result
difference)))
   5         0.05531     0.000258        214              1.1102e-016
  10         0.06063     0.000313       194              4.4409e-016
  25         0.05705     0.000705         81              6.9944e-015
  50         0.05889     0.002197         27              1.2212e-015
 100        0.07195     0.01153          6.2              1.8952e-015
 150        0.08721     0.03425          2.6              2.2649e-014
 200        0.1271       0.06117         2.1               3.9413e-015
 300        0.2892       0.1991           1.5               8.5820e-014
 400        0.6255       0.609             1.03             8.9484e-014
 500        1.176         1.263             0.93            2.2163e-014
 600        2.05           2.197            0.93             7.0499e-015
 700        3.228         3.458            0.93             2.4092e-014
 800        4.855         5.137            0.95             2.2243e-014
 900        6.873         7.272            0.95             3.0781e-014
1000       9.506         9.988            0.95             2.8283e-014

I've done this on a relative old laptop 
(Windows XP, SP2, Intel III Mobile CPU 933 MHz 512 MB RAM)
so do not wonder about absolute performance times.

>From the the table above it can be seen that the results confirm my
expectations.
Up to about 400x400 sized matrices the speed gain (column 4) can be
enormous.
Consequently replacing 'inv(x)' in existing code by 'x\eye(n)' might be an
option and should be considered.

Unfortunately the maximal absolute difference between the two results
also increases with dimension n. Does anybody know which algorithm
is considered to be the more precise ?

Rolf Fabian

< r dot fabian at jacobs-university dot de>

-----
Rolf Fabian
<r dot fabian at jacobs-university dot de>

-- 
View this message in context: 
http://www.nabble.com/Backslash-inversion-vs-inv-function-tp14948079p14948079.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]