svdbip2                package:concor                R Documentation

_S_V_D _f_o_r _b_i_p_a_r_t_i_t_i_o_n_e_d _m_a_t_r_i_x _x

_D_e_s_c_r_i_p_t_i_o_n:

     SVD for bipartitioned matrix x. r successive Solutions. As SVDBIP,
     but with another algorithm and another initialisation

_U_s_a_g_e:

     svdbip2(x,K,H,r)

_A_r_g_u_m_e_n_t_s:

       x: is a p x q matrix

       K: is a row vector which contains the numbers pk, k=1,...,kx, of
          the partition of x with kx row blocks : sum_k p_k=p

       H: is a row vector which contains the numbers qh, h=1,...,ky, of
          the partition of x with ky column blocks : sum q_h=q

       r: is the wanted number of successive solutions

_D_e_t_a_i_l_s:

     The first solution calculates kx+ky normed vectors: kx vectors
     uk[:,1] of Rpk associated to ky vectors vh[,1]'s of Rqh, by
     maximizing sum_k sum_h (u_k[,1]'*x_{kh}*v_h[,1])^2, with kx+ky
     norm constraints.  A value (u_k[,1]'*x_{kh}*v_h[,1])^2 measures
     the relative link between R^{p_k} and R^{q_h} associated to the
     block xkh.

     The second solution is obtained from the same criterion, but after
     replacing each xhk by xkh-xkh*vh*vh'-uk*uk'xkh+uk*uk'xkh*vh*vh'. 
     And so on for the successive solutions 1,2,...,r .  The biggest
     number of solutions may be r=inf(pk,qh), when the xkh's are
     supposed with full rank; then rmax=min([min(K),min(H)]).

     When K=p (or H=q, with t(x)), svdcp function is better.  When H=q
     and K=p, it is the usual svd (with squared singular values).

     Convergence of algorithm may be not global. So the below proposed
     initialisation of the algorithm may be not very suitable for some
     data sets.  Several different random initialisations with normed
     vectors might be considered and the best result then choosen

_V_a_l_u_e:

     list with following components 

       u: is a p x r matrix of kx row blocks uk (pk x r); uk'*uk =
          Identity

       v: is a q x r matrix of ky row blocks vh (qh x r); vh'*vh =
          Identity

      s2: is a kx x ky x r array; with r fixed, each matrix contains
          kxky values (u_h'*x_{kh}*v_k)^2, the partial (squared)
          singular values relative to x_{kh}

_R_e_f_e_r_e_n_c_e_s:

     Kissita G., Analyse canonique generalisee avec tableau de
     reference generalisee. Thesis, Ceremade Paris 9 Dauphine (2003)

_E_x_a_m_p_l_e_s:

     x<-matrix(runif(200),10,20)
     s2<-svdbip2(x,c(3,4,3),c(5,5,10),3);s2$s2
     s1<-svdbip(x,c(3,4,3),c(5,5,10),3);s1$s2

