[R] B %*% t(B) = R , then solve for B
Doran, Harold
HDoran at air.org
Tue Apr 12 18:10:46 CEST 2011
I gave you a solution for the triangular matrix. Can you explain why that is not what you need?
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Shawn Koppenhoefer
> Sent: Tuesday, April 12, 2011 11:37 AM
> To: r-help at r-project.org
> Subject: Re: [R] B %*% t(B) = R , then solve for B
> Importance: High
>
> BTW,
> The same solution can be found using SVD (Singular Value Decomposition)
>
> example,
>
> ## Define the matrix that we want to decompose into the product of a
> matrix and its transform
> M<-matrix(c(0.6098601, 0.2557882, 0.1857773,
> 0.2557882, 0.5127065, -0.1384238,
> 0.1857773, -0.1384238, 0.9351089 ),
> nrow=3, ncol=3, byrow=TRUE)
>
> ## Compute the singular-value decomposition, and construct F from its pieces
> SVD=svd(M, nu=3, nv=3)
> U=SVD$u
> D=diag(SVD$d)
> V=SVD$v
> U %*% D %*% t(V)
> F = U %*% sqrt(diag(SVD$d))
>
> ## Test to see of the product of F with its transpose is equal to M
> F %*% t(F) #
> [,1] [,2] [,3]
> [1,] 0.6098601 0.2557882 0.1857773
> [2,] 0.2557882 0.5127065 -0.1384238
> [3,] 0.1857773 -0.1384238 0.9351089
>
>
> /Shawn
>
>
> p.s.
> HOWEVER I would still like to find a solution that gives me a diagonal
> matrix for F.
> For example, I would like this result:,
>
> > F
> [,1] [,2] [,3]
> [1,] 0.781 0.000 0.000
> [2,] 0.328 0.637 0.000
> [3,] 0.238 -0.341 0.873
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list