2
$\begingroup$

Let

    A={{729, -243, 243, 243, 243, 243}, {-243, 729, 243, 243, 243, 
  243}, {243, 243, 729, -243, 243, 243}, {243, 243, -243, 729, 243, 
  243}, {243, 243, 243, 243, 729, -243}, {243, 243, 243, 243, -243, 
  729}}

Could anyone please help me use Mathematica to find a $6\times 4$ matrix B, such that $BB^{T}=A$? Many thanks.

$\endgroup$
2
$\begingroup$

You can use the singular value decomposition to do this. Writing {u,w,v} = SingularValueDecomposition[A] gives you the decomposition of $UWV^T = A$. Furthermore, because $A$ is symmetric $U=V$. Now notice that $W$ is diagonal with the last two entries $0$. This lets us write $B=U_{1:4}\sqrt{W_{1:4,1:4}}$, where $U_{1:4}$ is the first 4 columns of the $U$ matrix, $W_{1:4,1:4}$ is upper-left $4\times 4$ submatrix of $W$, and the square root is applied entry-wise.

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ In fact, precisely because $A$ is symmetric, one can just use Eigensystem[] instead: {vals, vecs} = MapAt[Orthogonalize, Eigensystem[A], {2}]; With[{pos = Position[vals, x_ /; x != 0]}, B = Transpose[Extract[vecs, pos]].DiagonalMatrix[Sqrt[Extract[vals, pos]]]]; $\endgroup$ – J. M.'s technical difficulties Apr 18 at 3:36
  • $\begingroup$ dskeletov, thank you very much for your answer on the method. $\endgroup$ – Rosary Apr 18 at 11:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.