千里马:如何按符号显示变量

时间:2014-07-01 11:45:27

标签: maxima

抱歉(可能太多)基本问题。 我有支持

b:2;
c:3;
a:b+c;

有没有办法显示a定义,即显示b+c而不是5

1 个答案:

答案 0 :(得分:3)

正如您所说的那样,不,因为在作业完成后,ab + c没有任何关联(仅限于已分配的数值)。

但是,您可以重新解决问题,以便恢复作业的右侧。例如:

kill (a, b, c); /* remove any existing values */
b : 2;
c : 3;
a : '(b + c);
  => c + b
''a;
  => 5
a;
  => c + b

kill (a, b, c);
a : b + c;
  => c + b
b : 2;
c : 3;
''a;
  => 5
a;
  => c + b

在这两种情况下,b + c在分配给a时未被数字值替代,无论是通过阻止评估(第一个示例)还是通过在b和{{之前分配1}}给出数值。最后,这是另一种避免将数值赋给cb的方法:

c

我认为最后一个使用kill (a, b, c); a : b + c; => c + b subst ([b = 2, c = 3], a); => 5 a; => c + b 的方法更可取,因为其他方法使用引用引用运算符subst,这有点过于微妙,因此具有可能令人惊讶的效果