2016-09-21 51 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

相關問題