Maximaには外積を与える関数が存在しないので定義しておく
縦3行の行列にしか対応していないが、まぁ基本的にはそれしかやらないので。
cross(x, y) :=
[x[2]*y[3] - x[3]*y[2],
x[3]*y[1] - x[1]*y[3],
x[1]*y[2] - x[2]*y[1]];
・12/16追記
cross(x, y) :=
matrix([x[2]*y[3] - x[3]*y[2]],
[x[3]*y[1] - x[1]*y[3]],
[x[1]*y[2] - x[2]*y[1]]);
matrixにしといたほうがいいかなと思っただけ