/* Create inverse of a 3x3 matrix */ /* matrix ([1, 2, 3], [9, 18, 30], [12, 48, 60])$ */ matA : matrix([2, 4, 1], [3, 1, 4], [4, 3, 2])$ matA . ident(3); matA . invert(matA); adjoint(matA); invert(matA); /* create destination matrix */ [isize, jsize] : matrix_size(matA)$ matAns : zeromatrix(jsize, isize)$ /* create adjoint/adjugate matrix */ for x : 1 thru isize do for y : 1 thru jsize do ( matTemp : minor(matA, x, y), /* co-factor */ matAns[y, x] : (-1) ^ (x+y) * determinant(matTemp) )$ matAns; matAdet : row(matA, 1) . col(matAns, 1)$ (ident(3) / matAdet) . matAns;