在 Maxima 中仍然显示向量的同时防止计算两个向量的总和

Prevent evaluation of the sum of two vectors while still displaying the vectors in Maxima

我正在尝试在 Maxima 中实现以下目标(准确地说:我正在为使用 Maxima 的 Moodle 使用 STACK):

v1:matrix([1],[0],[0]);
v2:matrix([0],[1],[0]);
v3:r*v1+s*v2;

我现在希望不对 v3 中的求和求和,同时仍要替换之前定义的向量 v1 和 v2,即对于我的输出,我想要类似

的内容
   [1]   [0]
 r*[0]+s*[1]
   [0]   [0]

虽然我可以使用

来抑制总和的计算
v3:'(r*v1+s*v2)

这导致

rv1+sv2

有办法实现吗?

如果有帮助:

 [r] [0]
 [0]+[s]
 [0] [0]

输出也可以。

v1:matrix([1],[0],[0]);
v2:matrix([0],[1],[0]);
simp:false$
v3:r*v1+s*v2;
simp:true$

这在 Maxima 中会很好,在 STACK 中似乎由于某种原因

simp:true$

不能使用,因为它还会再次简化所有内容。所以我只是把所有我不想简化的东西都移到了代码的底部。堆栈中的符号也是

simp:false;

因为不能使用 $。

矩阵运算由许多标志控制——doallmxops 等等。 ?? domx?? dosc?? dot 将找到其中的大部分或全部。

在这种情况下,您要做的是禁止将矩阵相加——为此 doallmxops: falsedomxmxops: false 具有预期的效果。

最好只设置这些标志来获得结果,而不是完全禁用简化,这将产生非常广泛且可能意想不到的效果。