2016-07-27 5 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로 분할하여 나머지 용어가 포함 된 B1과 B2를 포함하는 B1로 변환 한 다음 B를 새로운 알 수없는 변수 인 alpha라고 말합니다. 해답은 알파와 B1의 용어의 합입니다. –