[R] B %*% t(B) = R , then solve for B

Spencer Graves spencer.graves at prodsyse.com
Tue Apr 12 17:50:22 CEST 2011


For non-square matrices, see qr and svd.


Spencer


On 4/12/2011 8:43 AM, Doran, Harold wrote:
> There are easier solutions. Suppose you have a matrix A, such as:
>
> ### Use the info from lm() help
> ctl<- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
> trt<- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
> group<- gl(2,10,20, labels=c("Ctl","Trt"))
> weight<- c(ctl, trt)
> lm.D9<- lm(weight ~ group)
>
> A<- model.matrix(lm.D9)
>
>> L<- chol(crossprod(A))
>> all.equal(crossprod(L), crossprod(A))
> [1] TRUE
>
> I think this answers your remaining two questions below as ewll.
>
>
>> -----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:11 AM
>> To: r-help at r-project.org
>> Subject: Re: [R] B %*% t(B) = R , then solve for B
>> Importance: High
>>
>> Hello.
>>
>> I found a solution that may interest others.
>>
>> Recall that my problem was how to use R to decompose a matrix into the
>> product of a matrix and its transpose. or, symbolically:
>>
>>       For known matrix M (3x3 matrix) and unknown matrix F and its
>> transpose t(F)
>>       where  F * t(F) = M
>>       determine F
>>
>> The solution using R seems to be :
>>
>>       U=eigen(M)$vectors
>>       D=diag(x=eigen(M)$values)
>>       F=U %*% sqrt(D)
>>
>> But now I have two new questions:
>> 1. How can I find a solution where F is a triangular matrix.
>> 2. How can I find solutions to non-square matrices?
>>
>> /shawn
>>
>>
>>
>> p.s. Here's a numerical example that demonstrates the above.
>>
>>   >  M
>>             [,1]       [,2]       [,3]
>> [1,] 0.6098601  0.2557882  0.1857773
>> [2,] 0.2557882  0.5127065 -0.1384238
>> [3,] 0.1857773 -0.1384238  0.9351089
>>
>>   >  U=eigen(M)$vectors
>>   >  D=diag(x=eigen(M)$values)
>>   >  F=U %*% sqrt(D)
>>
>>   >  *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
>>
>>
>>
>>
>> 	[[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.
> ______________________________________________
> 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.
>


-- 
Spencer Graves, PE, PhD
President and Chief Operating Officer
Structure Inspection and Monitoring, Inc.
751 Emerson Ct.
San José, CA 95126
ph:  408-655-4567



More information about the R-help mailing list