3

How can one simplify an expression by assuming that one of the variables is equal to zero? For instance, while Simplify[%,a>0] gives the desired output, Simplify[%,a=0] produces the following error:

$Assumptions::bass: 0 is not a well-formed assumption. >>
user001
  • 1,397
  • 3
  • 14
  • 19

2 Answers2

15

In Simplify[%,a>0] the symbol > is a logical operator. In Simplify[%,a=0] the symbol = is not a logical operator. You must use the logical operator Equal, so Simplify[%,a==0] works fine! Example:

(a + b)^2 // Expand

a^2 + 2 a b + b^2

Simplify[%, a == 0] 

gives

b^2

the right answer.

:-)

Orleo

István Zachar
  • 47,032
  • 20
  • 143
  • 291
Orleo
  • 301
  • 1
  • 3
8

You can use /. (ReplaceAll) :

% /. a->0

Simplify[%,a=0] produces an error ( this expression a = 0 cannot be used as an assumption) because it means just setting the value zero to the variable a, in another form Set[ a, 0], see Set.

In some cases, when there are more variables which depends on another ones you may need the repeated replacement for applying rules repeatedly until the expression no longer changes, then you would rather use ReplaceRepeated, (//.) e.g. :

% //. {a -> b + 1, b -> 2}
Artes
  • 57,212
  • 12
  • 157
  • 245