我仍然是一个极大的新手,所以请多多包涵。我正在尝试编写自己的公式来计算矩阵的伴随(我知道 maxima 已经内置了一个,但我正在尝试自己的学习练习)。到目前为止,我有(对于 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 经验,我试图在不接触任何代码的情况下摆脱这个问题)。