Message Boards Message Boards


Solve[] not giving ConditionalExpression?

Posted 4 months ago
5 Replies
1 Total Likes

The following solution is finite only if c is not zero:

Solve[x * c == 1, x]
{{x -> 1/c}}

however, Solve[] does not return a ConditionalExpression. How could I enforce that? Thanks.

5 Replies

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.

Posted 4 months ago

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?

Posted 4 months ago

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 ???

Use Reduce when you want the conditions, Solve when you want the generic solution.

Posted 4 months ago

Hi Thomas,

Use Reduce

Reduce[x*c == 1, x]
(* c != 0 && x == 1/c *)
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract