# Tag Info

9

The Susyno and LieART Mathematica packages can do this. I know best the first one (I wrote it), so let me use it as an example in this answer. Assuming that you have installed and loaded the package in a Mathematica session, your example ($\mathbf{10}\times\mathbf{27}$ in $SU(3)$) is computed as follows: ReduceRepProduct[SU3, {{3, 0}, {2, 2}}] This ...

4

In addition to using Solve one can augment the matrix by a row containing the modulus in each position and use HermiteDecomposition. Any zero row (modulo the modulus) in the resulting HNF corresponds to a null vector in the conversion matrix. i1 = IntervalDifferenceMatrix[{{0}, {1}, {4}}]; i2 = Append[i1, ConstantArray[12, 3]]; {uu, hnf} = ...

2

For square matrices: You can try this: RandomMatrix[rank_, m_] := Sum[TensorProduct @@ RandomReal[{-1, 1}, {2, m}], {i, rank}]; It returns a pseudorandom m-by-m matrix with rank rank. Example usage: MatrixRank@RandomMatrix[5, 10] (*5*) Rectangular matrices For rectangular matrices, try this: RandomMatrix[rank_, m_, n_] := Sum[RandomReal[{-1, ...

1

I think LUDecomposition should be able to do this. Using code from help in Mathematica docs: a = {{1, 2, 3}, {2, 3, 4}, {-1, 0, 2}}; {lu, p, c} = LUDecomposition[a] (u = lu SparseArray[{i_, j_} /; j >= i -> 1, {3, 3}]) // MatrixForm If you want all pivots to be +1, this can now be easily done. d = Position[Diagonal[u], -1] (u[[First@#]] = ...

1

You can do it as Assuming[ {s0 > 0, s1 > 0, s2 > 0, s3 > 0, s4 > 0, s5 > 0, s6 > 0, s7 > 0, s8 > 0}, Inverse[{{s0, s1, s2}, {s3, s4, s5}, {s6, s7, s8}}]]  For instance, If you get $s0=-1$, then you will get the error \$Assumptions::fas: Warning: one or more assumptions evaluated to False.. Also you can determine the condition ...

Only top voted, non community-wiki answers of a minimum length are eligible