Maxima CAS:符号上限n的总和,在以后用ev()指定上限时不简化

时间:2014-02-18 01:13:38

标签: symbolic-math maxima symbolic-computation

以下两段最大代码应相同:

sum(x[i], i, 1, 2);
ev(%, x[1] = 5, x[2] = 3);

sum(x[i], i, 1, n);
ev(%, n = 2, x[1] = 5, x[2] = 3);

在第一种情况下,maxima知道要将表达式计算为8.在第二种情况下,它不会简化并且为i = 1到2留下x [i]的符号求和。

为什么maxima无法识别第二个表达式与第一个表达式相同?

如果没有对答案进行硬编码(如第一段代码中所述),在评估稍后指定上限的总和时,如何使用索引变量完全评估总和?

1 个答案:

答案 0 :(得分:1)

sum在noun form中(参见lisp表达式中的前导%)

(%i76) expr: sum(x[i], i, 1, n);
                                    n
                                   ====
                                   \
(%o76)                              >    x
                                   /      i
                                   ====
                                   i = 1
(%i77) :lisp $expr

((%SUM SIMP) (($X SIMP ARRAY) $I) $I 1 $N)

您需要告诉ev评估名词

(%i77) ev(expr, n = 2, x[1] = 5, x[2] = 3, nouns);
(%o77)                              x  + x
                                     2    1

并请求额外的评估后

(%i78) ev(expr, n = 2, x[1] = 5, x[2] = 3, nouns, eval);
(%o78)                                 8