I have the following problem in Mathematica:
values = {b -> 1, c -> 0};
Solutions := Solve[x^2 + b*x + c == 0, x]
x1 := x /. Solutions[[1]];
x2 := x /. Solutions[[2]];
"Solution 1"
x1
"Solution 2"
x2
"Choose ~preferred~ Solution, which is -1 when using values"
If[Module[{list = values}, ReplaceRepeated[x1 == -1, list]], x = x1, x = x2]
"~Preferred~ Solution"
x
When I evaluate it the first time,everything works:
Solution 1
1/2 (-b - Sqrt[b^2 - 4 c])
Solution 2
1/2 (-b + Sqrt[b^2 - 4 c])
Choose ~preferred~ Solution, which is -1 when using values
1/2 (-b - Sqrt[b^2 - 4 c])
But by evaluate it a second time several errors occurs:
Solution 1
General::ivar: 1/2 (-b-Sqrt[b^2-4 c]) is not a valid variable. >>
General::ivar: 1/2 (-b-Sqrt[b^2-4 c]) is not a valid variable. >>
ReplaceAll::reps: {1/2 b (-b-Sqrt[Plus[<<2>>]])+1/4 (-b-Power[<<2>>])^2+c==0} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. >>
1/2 (-b - Sqrt[b^2 - 4 c]) /.
1/2 b (-b - Sqrt[b^2 - 4 c]) + 1/4 (-b - Sqrt[b^2 - 4 c])^2 + c == 0
"Solution 2"
...
It seems to me, that the ReplaceRepeated in the if condition work global although it is a Module environment. Can anybody help? How I solve this problem?