Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to solve a three-equation system, but I need to constrain two of the variables so that they can only take one of several discrete values that I would specify (this is a circuit design problem where I need to find a resistor that can have a continuous range of values and two standard capacitors). I attempted to use Solve[] using the logical OR operator || to constrain the two variables, but Mathematica tells me that the system is not a quantified system of equations and inequalities. Does anybody know of a solution to this?

Here's the code:

  (10*^3 == 1/(2*Pi*Sqrt[10000*r2*c1*c2])),
  (20 == 3*Sqrt [r2*c2]/Sqrt[10000*c1]),
  (3 == Sqrt[r2/10000]*Sqrt [c1*c2]/(c1 + c2)),
  (r2 > 5000),
  (c1 == (10*^-12) || (100*^-12) || (22*^-12) || (0.001*^-6) || \
    (0.01*^-6) || (0.1*^-6)),
  (c2 == (10*^-12) || (100*^-12) || (22*^-12) || (0.001*^-6) || \
    (0.01*^-6) || (0.1*^-6))},
 {r2, c1, c2}]
share|improve this question
x == (1 || 2) doesn't make sense (within Mathematica) but (x == 1) || (x == 2) does. You can omit the parentheses from the latter. If you use only exact numbers (i.e. there's no decimal point in them), then Reduce should theoretically work, but it's taking a very long time on my machine. – Szabolcs Apr 14 '14 at 17:38
The problem is that you have three equations, but for any particular choice of c1 and c2, you only have one variable to solve for: r2. Do you have any reason to believe that all three equations will be satisfied for some value of r2? The system looks overdetermined. – Szabolcs Apr 14 '14 at 17:45
If you specify that Reduce should solve for Reals (as I suspect it is what you expect), the result is False. I guess it means that the system is unsolvable. (With the constraints provided, that is) – Aisamu Apr 14 '14 at 17:59

This system of equations is overdetermined:

In[27]:= Solve[(10*^3 == 1/(2*Pi*Sqrt[10000*r2*c1*c2])) && (20 == 
    3*Sqrt[r2*c2]/Sqrt[10000*c1]) && (3 == 
    Sqrt[r2/10000]*Sqrt[c1*c2]/(c1 + c2)), {c1, c2, r2}, Reals]

Out[27]= {{c1 -> 3/(4000000000 π), c2 -> 11/(12000000000 π), r2 -> 4000000/11}}

Just using the first three equations you get a single solution. This solution doesn't match any of your additional constraints for the values of c1 and c2. Thus there's no solution that satisfies this complete set of equations.

That said, generally the correct syntax to specify a discrete set of values would be

x == 1 || x == 2

and not

x == (1 || 2)  (* wrong *)
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.