Path: news.mathworks.com!newsfeed-00.mathworks.com!newsfeed2.dallas1.level3.net!news.level3.com!postnews.google.com!p36g2000vbn.googlegroups.com!not-for-mail
From: Rune Allnor <allnor@tele.ntnu.no>
Newsgroups: comp.soft-sys.matlab
Subject: Re: inverse matrix inv pinv linfactor ginv
Date: Sun, 4 Oct 2009 07:24:16 -0700 (PDT)
Organization: http://groups.google.com
Lines: 39
Message-ID: <0d69cf8a-2563-4458-b112-401524512d0d@p36g2000vbn.googlegroups.com>
References: <ha8r6f$pf7$1@fred.mathworks.com> <6ed887e5-8dc1-4d0d-8d96-ef4ac3c7b5c7@j19g2000vbp.googlegroups.com> 
	<haaa2d$61b$1@fred.mathworks.com>
NNTP-Posting-Host: 77.16.78.69
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
X-Trace: posting.google.com 1254666256 18528 127.0.0.1 (4 Oct 2009 14:24:16 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sun, 4 Oct 2009 14:24:16 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: p36g2000vbn.googlegroups.com; posting-host=77.16.78.69; 
	posting-account=VAp5gAkAAAAmkCze5hvZtMeedpZWNthI
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; 
	Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; 
	.NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322),gzip(gfe),gzip(gfe)
Xref: news.mathworks.com comp.soft-sys.matlab:574808


On 4 Okt, 16:05, "Bruno Luong" <b.lu...@fogale.findmycountry> wrote:
> Rune Allnor <all...@tele.ntnu.no> wrote in message <6ed887e5-8dc1-4d0d-8d96-ef4ac3c7b...@j19g2000vbp.googlegroups.com>...
> > On 4 Okt, 02:45, "leo nidas" <bleonida...@yahoo.gr> wrote:
>
> > PINV does this, with the TOL argument that you
> > as user have to provide in advance - I suspect this
> > is an absolute tolerance. I would prefer a relative
> > tolerance, like
>
> Using PINV has two drawbacks:
> 1. It call for an expansive SVD

First come up with something that actually works,
only then criticize speed.

> 2. It does not work on sparse matrix

Were there any sparse matrices in this thread?

> > PINV does this, with the TOL argument that you
> > as user have to provide in advance - I suspect this
> > is an absolute tolerance.
>
> Correct.
>
> >I would prefer a relative
> > tolerance, like
>
> > RTOL = eps('double')*max(diag(S));
>
> No big deal, just pass input TOL as the desired relative tolerance multiplied by norm/normest of the input matrix (which is the largest s(i,i)).

...which requires an equally expensive SVD to compute the
norm before one calls the SVD to compute the PINV...

Get a grip!

Rune