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-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Shawn Koppenhoefer > Sent: Tuesday, April 12, 2011 11:11 AM > To: r-help@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@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@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.