2016-07-27 9 views

答えて

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

トピックを復活させるには、実際にはある程度まであります。加算式で式を展開し、数式を2つの袋B1とB2に分割し、残りの項を含むxとB2を含むB1とし、Bを新しい未知の変数、例えばαと交換する。解は、B1とB1の項の和です。 –