私はまだマキシマの初心者なので、我慢してください。行列の随伴を計算するための独自の式を書こうとしています (maxima には既に 1 つの組み込み式があることは知っていますが、学習演習として自分で試していました)。これまでのところ(3x3マトリックスの場合):
/* cofactor of some submatrix of the matrix, by deleting row i and column j */
cof(i, j, M) := determinant(submatrix(i, M, j));
/* for 3 x 3 matrix */
C3(M) := matrix( [cof(1,1,M), cof(1,2,M), cof(1,3)],
[cof(2,1,M), cof(2,2,M), cof(2,3)],
[cof(3,1,M), cof(3,2,M), cof(3,3)] );
/* function for calculating adjoint sign for x at position i, j */
adj_f(i, j, x) := -1^(i+j) * x;
/* adjugate for a 3x3 matrix M */
adj3(M) := matrixmap(lambda([i,j,x], adj_f(i,j,x), transpose(C3(M))));
これがおそらく最善の方法ではないことはわかっています。ただし、matrixmap または fullmapl を使用するときに i および j 要素にアクセスする方法があるかどうか疑問に思っていましたか?
(私は wxMaxima を使用していますが、Lisp の経験はあまりありません。コードに触れずにこれを回避しようとしていました)。