2016-09-21 54 views
1

对不起,如果这是一个新手问题,但我找不到任何文档或其他stackoverflow问题。我想查看在求解表达式或等式中调用的所有最大值函数的整个堆栈跟踪。我尝试了跟踪,回溯和调试模式。看着不同的显示和打印功能,但没有工作。在MAXIMA中,我如何获得整个调用堆栈?

例1:

(%i1) is(equal((a+b)^2, a^2+b^2+2*a*b)); 
(%o1) true 

例2:

(%i2) trace(factor); 
(%o2) [factor] 
(%i3) trace_options(factor, info); 
(%o3) [info] 
(%i4) factor((x^2 - 7*x + 10)/(x - 5)); 
1 Enter ?factor [(x^2-7*x+10)/(x-5)] -> true 
1 Exit ?factor x-2 -> true 
(%o4) x-2 

我想看看中间步骤千里马执行及其结果在这些溶液或conclusions.Info的推导上细微级调用甚至更好。

感谢, RB

回答

0

正如你可以跟踪builtins-list.txt列出的所有功能,一个黑客:

l: read_list("builtins-list.txt") $ 
for e in l do errcatch(apply('trace, [e])) $ 
untrace(bfloatp) $ /* to limit output */ 
is(equal((a+b)^2, a^2+b^2+2*a*b)) $ 

回报:

(%i5) is(equal((a+b)^2, a^2+b^2+2*a*b)) $ 
          2 2 2 
1 Enter is [is(equal((a + b) , a + b + 2 a b))] 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [b + a] 
1 Exit ratp false 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [b + a] 
1 Exit ratp false 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [a] 
1 Exit ratp false 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [b] 
1 Exit ratp false 
         2 
1 Enter setp [(b + a) ] 
1 Exit setp false 
        2   2 
1 Enter subvarp [b + 2 a b + a ] 
1 Exit subvarp false 
        2   2 
1 Enter subvarp [b + 2 a b + a ] 
1 Exit subvarp false 
         2 2   2 
1 Enter ratsimp [(b + a) - b - 2 a b - a ] 
         2 2   2 
    1 Enter ratp [(b + a) - b - 2 a b - a ] 
    1 Exit ratp false 
           2 2   2 
    1 Enter totaldisrep [(b + a) - b - 2 a b - a ] 
          2 2   2 
    1 Exit totaldisrep (b + a) - b - 2 a b - a 
    1 Enter ratdisrep [0] 
    1 Enter ratp [0] 
    1 Exit ratp true 
    1 Exit ratdisrep 0 
1 Exit ratsimp 0 
1 Enter facts [] 
1 Exit facts [] 
1 Enter niceindices [0] 
1 Exit niceindices 0 
1 Enter constantp [0] 
    1 Enter numberp [0] 
    1 Enter ratnump [0] 
    1 Exit ratnump true 
    1 Exit numberp true 
1 Exit constantp true 
1 Enter rectform [0] 
1 Exit rectform 0 
1 Enter sign [0] 
1 Exit sign zero 
1 Exit is true 
1 Enter concat [, %o, 5] 
1 Exit concat %o5 
1 Enter concat [, %i, 5] 
1 Exit concat %i5 
1 Enter concat [, %i, 6] 
1 Exit concat %i6 
+0

感谢。这适用于我的目的。我猜测并添加了几个函数的痕迹,但没有导致我想要的。然而,我期待的最大值要么是(1)将(a + b)^ 2展开成a^2 + b^2 + 2 * a * b(或)(2)因子a^2 + b^2 + 2 * a * b到(a + b)^ 2,然后比较lhs和rhs以找到它们的相等性。似乎ratexpand()和factor()根本不被调用,totaldisrep&ratdisrep被鼠标调用,并且总之lhs和rhs是相等的。但是,感谢这个黑客,它让我了解了我应该关注哪些功能。 – BReddy

相关问题