saur12ab
(Sandu Ursu)
March 11, 2017, 3:48pm
1
To my knowledge, \mathbb{R} \subset \mathbb{C} and not vice-versa.
Then I don’t understand why I get more real-valued solutions with Reals, than with Complexes:
$Assumptions =
a > 0 && a \[Element] Reals && b \[Element] Reals &&
t \[Element] Reals && t >= 0 && c1 \[Element] Reals &&
c2 \[Element] Reals && c \[Element] Reals && B \[Element] Reals &&
c2 > 0 && c1 < 0
Solve[Log[Abs[(B - c2)/(B - c1)]] == (a t - c) (c2 - c1), B, Reals] // Simplify
Solve[Log[Abs[(B - c2)/(B - c1)]] == (a t - c) (c2 - c1), B, Complexes] // Simplify
In the complex domain Solve has problems with Abs:
Solve[Abs[z] == 1, z, Complexes]
saur12ab
(Sandu Ursu)
March 12, 2017, 3:30am
3
Should I view this as a bug or as a property?
I think it is an intrinsic limitation of Solve, which is meant mainly for polynomial or analytic functions, and Abs is not analytic. The solution set of Abs[z]==1 in the complex plane cannot be expressed as simple substitution rules. The set of solutions to Abs[z]==1 is handled correctly by Reduce in an implicit way, though.
saur12ab
(Sandu Ursu)
March 12, 2017, 9:08am
5
But, it should give me at least the same solutions as the ones obtained when solving over Reals, no?
I agree, it would be better that way. Infinitely many complex solutions would be missed anyway.
In cases like these, Mathematica ought to issue a warning that the solution set is not complete.