I want to restrict the solutions to Solve to the positive reals. This is my code:

bet = 0.001; 
fc1 = (2/8)^2;
fc2 = ((3)/8)^2;   
N1p = N1*(1 - m) + N2*m;
N2p = N2*(1 - m) + N1*m;
b1 = 1 - bet*N1p - fc1;
b2 = 1 - bet*N2p - fc2;

Solve[{N1 == N1p*b1*2, N2 == N2p*b2*2 && N1>0 && 
N2> 0}, {N1, N2}]

I get the error

Solve::eqf: N2>0 is not a well-formed equation. >>.

Even when I try something much simpler like:

Solve[x^2 == 1 && x > 0, x]

which I got from [1]: Defining the domain of positive real numbers, I get the following error message:

Solve::eqf: x>0 is not a well-formed equation. >>

I am not sure what is going on. I am using version 7.0. Thanks in advance!:)

  • $\begingroup$ Hi! I tried your simple case in Mathematica 8 and Mathematica 10, and it worked in both cases. I also tried the complicated case in Mathematica 10, and it does not seem to complain (given that you rationalize the variable bet). The result is a conditional expression for values of m though, since you have not specified any assumptions for m. $\endgroup$ – andy269 Aug 17 '16 at 15:40
  • 1
    $\begingroup$ Quit kernel, try again? $\endgroup$ – Feyre Aug 17 '16 at 16:28
  • $\begingroup$ I retried the simple example and still got the same error.. Is it version 7.0 then? Perhaps it is time for an upgrade.. $\endgroup$ – MathJo Aug 18 '16 at 11:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.