0

我有以下問題。在Mathematica中定義兩個簡單的函數,比如foo[x_]:= xbar[y_]:=y,我預計表達式foo[x]^(-bar[y])-(1/foo[x])^(bar[y])將被評估爲零。但是,我發現(奇怪的是)Mathematica堅持讓這件事「以象徵的方式」,而不願意簡化。嘗試了很多事情來克服這種行爲,但他們都失敗了。任何幫助非常感謝:)簡化Mathematica中的符號表達式

回答

0

你必須告訴Mathematica的是x> 0:

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

0 
+0

'富[X] ^( - 酒吧[Y]) - (1 /富[X])^( bar [y])/。 {y - > 1/2,x - > -1/2}' – ssch

+0

是的,好的,但它不是一個非常通用的解決方案。例如,爲什麼它對'x> 0'有效,但是如果我假設'x <0',它不會有效?更一般地說,如果我有一個非常複雜的功能,我不想浪費時間嘗試所有可能的假設組合。試着用其他愚蠢的例子(例如a ^( - b)* c ^(b)),你很快會意識到(爲了獲得預期的行爲),你需要假設一些非常具體的東西。這是爲什麼?是否有一種(更一般的)「強制執行」的方式? –

+0

這是因爲簡化它對於x <0在一般意義上是無效的。 Mathematica知道它,沒有任何價值或假設,只會簡化最普遍規則所允許的一切。 – FJRA