【问题标题】:Force re-evaluation of maxima variable强制重新评估最大值变量
【发布时间】:2015-04-11 16:08:09
【问题描述】:

这可能非常简单,但我找不到让 Maxima 告诉我 c 现在是 8 而不是 3 的方法?有人可以帮忙吗?

(%i1) a:1;
(%o1)                                  1
(%i2) b:2;
(%o2)                                  2
(%i3) c:a+b;
(%o3)                                  3
(%i4) ''c;
(%o4)                                  3
(%i5) a:6;
(%o5)                                  6
(%i6) ''c;
(%o6)                                  3

非常感谢 汤姆

【问题讨论】:

    标签: maxima


    【解决方案1】:

    最简单的方法是在c 的定义中定义包含prevent evaluation (') 运算符。例如:

    (%i1) c : '(a+b);
    (%o1)                                                       b + a
    (%i2) a:1;
    (%o2)                                                         1
    (%i3) b:2;
    (%o3)                                                         2
    (%i4) ''c;
    (%o4)                                                         3
    (%i5) a:6;
    (%o5)                                                         6
    (%i6) ''c;
    (%o6)                                                         8
    

    请注意,您还可以对 a 和 b 的值进行后修复:

    (%i7) c, a:11, b:5;
    (%o7)                                                         16
    

    【讨论】:

    • 非常同意,虽然我会在第一行写c : '(a + b),因为在c : 'a + b中,变量b没有被引用。
    • @RobertDodier:感谢您的指正。下次随时进行编辑:-)。
    • @Thor 谢谢你。这听起来可能很奇怪,但是否有一个全局设置来阻止评估?即为所有表达式设置'?
    • @TomH:我不知道,但我不是 Maxima 专家。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2010-10-07
    • 2021-08-17
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    相关资源
    最近更新 更多