s-news
[Top] [All Lists]

RE: [S] rank of a matrix with SVD is good?

To: s-news@wubios.wustl.edu
Subject: RE: [S] rank of a matrix with SVD is good?
From: Agin.Patrick@hydro.qc.ca
Date: Fri, 29 Sep 2000 13:14:02 -0400
Sender: owner-s-news@wubios.wustl.edu

Thank you to Fernando Quintana, Bruce Mcullough, Lane Bishop and Bill
Dunlap.
You were right, the matrix is invertible and solve(as.matrix(X)) does the
work.

Bill, I use Splus 4.5 and data.class(X) and class(X) return "data.frame". I
thought that X was a matrix since is.matrix(X) returns T.

Patrick

> ----------
> From:         Bishop, Lane[SMTP:lane.bishop@honeywell.com]
> Sent:         Friday, September 29, 2000 12:56 PM
> To:   s-news@wubios.wustl.edu
> Cc:   'Agin.Patrick@hydro.qc.ca'
> Subject:      RE: [S] rank of a matrix with SVD is good?
> 
> 
> I suspect your "matrix" X may really be a datasheet or something that
> doesn't really have exact matrix attributes.  The same thing happen to me
> when I imported your data as a datasheet.  This worked:
> 
> solve(as.matrix(X))
> 
>   - Lane
> 
> -----Original Message-----
> From: Agin.Patrick@hydro.qc.ca [mailto:Agin.Patrick@hydro.qc.ca]
> Sent: Friday, September 29, 2000 11:59 AM
> To: s-news@wubios.wustl.edu
> Subject: [S] rank of a matrix with SVD is good?
> 
> 
> 
> 
>       Hi everyone,
> 
>       Is the Singular Value Decomposition a good way to calculate the rank
> of a square matrix?
> 
>       I have the following problem: my matrix X (10x10) seems to be
> singular and thus not invertible. Yet, I count the number of positive
> singular values (greater say than a *tolerance* small number) and the
> result
> is 10. 
> 
>       For interested readers, my matrix X is:
> 
>       2.30   0.19  -1.62    -1.04   1.39 -1.07   -2.19  3.00 -0.94    0.24
>       0.23  -1.03  -0.58    -0.36   0.18 -1.87   -1.72  0.50 -0.94    1.36
>       2.47  -0.64   1.88    -0.33   0.71 -1.34   -0.38  1.41  0.43   -0.72
>       -0.78   2.77  -0.23     1.38  -1.09 -2.93   -1.66 -0.64  2.86  -0.72
>       0.42   1.56   0.24     1.73   0.92 -1.10   -0.30 -0.54  1.51   -0.72
>       -0.10  -0.54   1.01    -1.81   0.28 -1.06    0.10  0.34 -0.17   0.09
>       -0.76  -0.15   0.87    -0.24   0.77 -2.97   -0.62 -0.22  0.18
> -0.72
>       0.07  -0.92  -0.09    -1.71   0.40 -1.75   -0.97  2.72 -0.96    1.03
>       -0.70  -0.82  -1.12     0.01  -0.74 -2.91   -0.53 -0.60 -0.46
> -0.72
>       -0.28  -0.83  -0.76    -2.79  -0.69 -3.15   -0.32  1.12  1.50
> -0.72
> 
>       ...the singular values are:
> 
>       >svd.Matrix(X)$values
>        [1] 8.1520312 6.9315984 4.6502211 3.7656658 2.9517747 2.0639984
> 1.5499911 1.0316472 0.8151062 0.3240471
> 
>       ...and the result of solve(.) is:
> 
>       > solve(X)
>       Error in solve.qr: No data to interpret as logical value: if(a$rank
> < (p <- da[2])) stop("apparently singular matrix")
> 
>       Somebody can help?
>       Patrick
> 
> 
> -----------------------------------------------------------------------
> This message was distributed by s-news@wubios.wustl.edu.  To unsubscribe
> send e-mail to s-news-request@wubios.wustl.edu with the BODY of the
> message:  unsubscribe s-news
> -----------------------------------------------------------------------
> This message was distributed by s-news@wubios.wustl.edu.  To unsubscribe
> send e-mail to s-news-request@wubios.wustl.edu with the BODY of the
> message:  unsubscribe s-news
> 
-----------------------------------------------------------------------
This message was distributed by s-news@wubios.wustl.edu.  To unsubscribe
send e-mail to s-news-request@wubios.wustl.edu with the BODY of the
message:  unsubscribe s-news

<Prev in Thread] Current Thread [Next in Thread>