2016-07-27 16 views
2

在下面的表達式中,X是可變的並且一個bÇķ是不確定的常數。在Maxima中有沒有函數簡化常量?簡化常數

實例,

  • X^2 - 2A + B + C變爲x^2 + K
  • 2^X + A/B + C^2成爲2^X + K

回答

3

它沒有特定的功能,但我認爲你可以通過freeof創建一些東西。例如:

(%i12) merge_constants (expr, var, newconst) := 
     block ([freeof_var : sublist (args (expr), lambda ([e1], freeof (var, e1)))], 
      expr - apply ("+", freeof_var) + newconst) $ 
(%i13) merge_constants (x^2 - 2*a + b + c, x, k); 
            2 
(%o13)        x + k 
(%i14) merge_constants (2^x + a/b + c^2, x, k); 
            x 
(%o14)        2 + k 
(%i15) merge_constants (sin(u) + u*cos(v) + v^2 + tan(w), u, m); 
(%o15)      u cos(v) + sin(u) + m 

此功能merge_constants只是第一次嘗試。我確信有辦法改進它。例如。返回freeof_var值以查看newconst替代的內容。無論如何,我希望這是有用的。

+0

好,適用於代數表達式。 –

+0

復興這個話題,其實有一定的意義。用加性術語展開表達式,將公式拆分成兩個包B1和B2,如B1包含x和B2,其餘包含其餘項,然後將B交換爲新的未知變量,如alpha。解決方案是B1加上術語的總和。 –