您可以通过查看Maple中可以计算缩减行梯形形式(RREF)的一些过程来获得一些提示。
其中一个最简单的例子,在开始和结束时没有太多的错误,是现在已弃用的linalg包中的gaussjord命令。
interface(verboseproc=3): print(linalg[gaussjord]);
周围代码更加模糊的是新版LinearAlgebra包的LUDecomposition命令中的一个版本。看到程序的哪一部分计算RREF有点棘手,因此如果使用 showstat 命令。例如,使用Maple 17中的行号,
showstat
showstat(LinearAlgebra:-LUDecomposition,228..339);
在代码中 LUDecomposition ,关键位是计算矩阵的循环 mU (高斯消除得到行梯形形式),然后循环进一步计算矩阵 mR (进一步减少前导非零入口右侧的行)以获得最终的RREF。如果你只是想要RREF那么就没有必要将行减少分成两个这样的子任务,你就不会对它感兴趣了。 mL 和 mU 件。
LUDecomposition
mU
mR
mL
如果您一次减少整行,那么您可以尝试使用 LinearAlgebra:-RowOperation 而不是一些内循环。该命令可以交换行,或者将一行的多个添加到另一行,或者缩放单行。
LinearAlgebra:-RowOperation
您还可以在网上搜索“伪代码”和“RREF”。