This is an interesting case. First, here is a more minimal example. While Simplify
does not eliminate T:
Simplify[(1 + 2 a^2 (a + b)) T == 0, T != 0]
(* (1 + 2 a^2 (a + b)) T == 0 *)
FullSimplify
does the job in this case:
FullSimplify[(1 + 2 a^2 (a + b)) T == 0, T != 0]
(* 1 + 2 a^2 (a + b) == 0 *)
Simplify
does work for much more complicated cases such as
Simplify[(1 + 2 a^2 (a + b) + x^1/3 - Coth[Gamma[42^z] I]) T == 0, T != 0]
(* 3 + 6 a^3 + 6 a^2 b + x + 3 I Cot[Gamma[42^z]] == 0 *)
So the complexity by itself is not the issue.
Now, to a possible solution to your problem. In the MMA documentation for ComplexityFunction
the "Properties & Relations" section contains the complexity function Simplify
uses by default to assess the complexity of a term. You may modify this function such that any appearance of T is extremely expensive:
SimplifyCountX[p_] := Which[
p===T, 10^6,
Head[p]===Symbol, 1,
IntegerQ[p], If[p==0,1,Floor[N[Log[2,Abs[p]]/Log[2,10]]]+If[p>0,1,2]],
Head[p]===Rational, SimplifyCountX[Numerator[p]]+SimplifyCountX[Denominator[p]]+1,
Head[p]===Complex, SimplifyCountX[Re[p]]+SimplifyCountX[Im[p]]+1,
NumberQ[p], 2,
True, SimplifyCountX[Head[p]]+If[Length[p]==0,0,Plus@@(SimplifyCountX/@(List@@p))]
]
The first case within Which[...]
is the modification. Everything else is like in the documentation.
Using this complexity function things should at least improve for you:
Simplify[(1 + 2 a^2 (a + b)) T == 0, T != 0, ComplexityFunction -> SimplifyCountX]
(* 1 + 2 a^3 + 2 a^2 b == 0 *)
I also tested this with more complicated functions, and it seems to work.
To make sure if it worked, use
FreeQ[..., T]
on the simplified expression.
Simplify
with a different complexity function (e.g.ComplexityFunction -> (StringLength[ToString[#1]] &)
, you can get the T factored out, at the expense of some other reorganization of your equation. See also (92686). $\endgroup$ – MarcoB Jun 26 '17 at 14:12equation/.T->1
. Have fun! $\endgroup$ – Alexei Boulbitch Jun 26 '17 at 14:15Reduce
to see possible solutions. IfT==0
is one of them, it suggests (but does not guarantee) that you can factor it out.Reduce[tt (b + e (c - 1) (1 + Tanh[a])) == 0, tt]
= ` (* b == -(-1 + c) e (1 + Tanh[a]) || tt == 0 *)`. $\endgroup$ – MikeY Jun 26 '17 at 14:15