Hello,
I have a question that is not directly related to R ... but I try to do it in R ;-) :


I would like to generate a matrix Q satisfying (for a given Z, X and W) the two following conditions:

t(Q)%*%Q=Z  (1)
XQ=W (2)

where:
Q is m rows and r columns
X is p rows and m columns
D is p rows and r columns
C is r rows and r columns
with m>p,r


e.g: m=6, p=2 r=3

Z=matrix(c(1,.2,.5,.2,1,.45,.5,.45,1),3,3)
X=matrix(c(.1,.3,.5,.6,.2,.1,.8,1,.4,.2,.2,.9),2,6)
W=matrix(c(0,.8,.4,.6,.2,0),2,3)

#Create a matrix satisfying (1) is easy:

A=matrix(runif(18),6,3)
Q1=svd(A)$u%*%chol(Z)


#For the second condition (2), a solution is given by

Q2=A%*%ginv(X%*%A)%*%W





I do not know how to create a matrix Q that satisfies the two conditions. I have try to construct an iterative procedure without success (no convergence):

eps=10
i=0
while(eps>.5)
{
Q1=svd(Q2)$u%*%chol(Z)
Q2=Q1%*%ginv(X%*%Q1)%*%W
eps=sum(abs(Q1-Q2))
cat(i,":",eps,"\n")
i=i+1
}

Perhaps someone could have any idea to solve the problem, or a reference on this kind of question or the email of another list where I should ask this question.

Thanks in advance,

Sincerely.

Stéphane DRAY
--------------------------------------------------------------------------------------------------


Département des Sciences Biologiques
Université de Montréal, C.P. 6128, succursale centre-ville
Montréal, Québec H3C 3J7, Canada

Tel : 514 343 6111 poste 1233
E-mail : [EMAIL PROTECTED]
--------------------------------------------------------------------------------------------------


Web                                          http://www.steph280.freesurf.fr/

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to