0

다음과 같은 문제가 있습니다. Mathematica에서 두 개의 간단한 함수, 예를 들어 foo[x_]:= xbar[y_]:=y을 정의하면 표현식 foo[x]^(-bar[y])-(1/foo[x])^(bar[y])은 0으로 평가됩니다. 그러나 Mathematica가이 것을 "상징적 인 방식으로"유지하면서 전혀 단순화하려고하지 않는다고 주장한 것은 이상한 일입니다. 이 행동을 극복하기 위해 많은 것을 시도했지만 모두 실패했습니다. 어떤 도움이 많이 감사합니다 :)Mathematica에서 심볼릭 표현을 단순화합니다.

답변

0

당신은 그 X> 0 티카 말할 필요 : [X]^

Simplify[foo[x]^(-bar[y]) - (1/foo[x])^(bar[y]), x > 0] 

0 
+0

'foo는 (- 바 [Y]) - (1/foo는 [X])^(bar [y]) /. {y -> 1/2, x -> -1/2} ' – ssch

+0

네, 그래요.하지만 정말 일반적인 해결책은 아닙니다. 예를 들어, 왜'x> 0'에서 작동 하나,'x <0'으로 가정하면되지 않을까요? 더 일반적으로, 만약 내가 매우 복잡한 함수를 가지고 있다면, 나는 가정의 모든 가능한 조합을 시도하는 낭비 시간을 원하지 않을 것이다. 바보 같은 다른 예 (예 : a^(- b) * c^(b))로 시도하면 예상되는 동작을 얻으려면 매우 구체적인 것을 가정해야한다는 것을 곧 깨닫게 될 것입니다. 왜 그런가요? 단순한 이유를 "강요하는"(좀 더 일반적인) 방법이 있습니까? –

+0

x <0에 대한 단순화가 일반적으로 유효하지 않기 때문입니다. Mathematica는 그것을 알고 있으며, 값이나 가정없이 모든 것을 단순화합니다. 가장 일반적인 규칙에 의해 허용됩니다. – FJRA