The following solution is finite only if c is not zero:
c
Solve[x * c == 1, x] {{x -> 1/c}}
however, Solve[] does not return a ConditionalExpression. How could I enforce that? Thanks.
Solve[]
ConditionalExpression
Hi Thomas The coefficient c cannot be zero at the first place because if it is, then your equation you are trying to solve will not be valid as you get 0==1 That is why Solve[] assumed that c cannot be zero.
0==1
Hi Thomas,
Use Reduce
Reduce
Reduce[x*c == 1, x] (* c != 0 && x == 1/c *)
oh I see... but what about the following?
Solve[x * c == y, x] {{x -> y/c}}
this time, x=0 if y=0; when y!=0, x is only defined if c!=0. Again, no ConditionalExpression is returned?
x=0
y=0
y!=0
x
c!=0
as suggested by Robit below:
Reduce[x * c == y, x] (y == 0 && c == 0) || (c != 0 && x == y/c)
that said, I should always use Reduce rather than Solve ???
Solve
Use Reduce when you want the conditions, Solve when you want the generic solution.