# Why Solve and Simplify give different results? [closed]

I want to solve the following equation

y == (1/(1/4 + y) - 1/(3/4 - y))/((1/4 + y) + 1/(3/4 - y))


I tried

Simplify[y == (1/(1/4 + y) - 1/(3/4 - y))/((1/4 + y) + 1/(3/4 - y)), y]


which gave me

Solve[0.166667]

Then I tried

Solve[y == (1/(1/4 + y) - 1/(3/4 - y))/((1/4 + y) + 1/(3/4 - y)), y]


which gave me

{{y -> 1.70683179538858}, {y -> -0.82623525169495 + 0.902601424800742I}, {y -> -0.82623525169495 - 0.902601424800742I}, {y -> 0.195638708001323}}

I guess Simplify deletes potential roots, but Solve and Simplify didn't even have an overlap in the roots.

Any idea?

-

## closed as too localized by whuber, m_goldberg, Sjoerd C. de Vries, Artes, SzabolcsMar 15 '13 at 21:35

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

Check the syntax of Simplify. You're assuming y. Also check that y has not been defined. I do not get the same output as you. Further, Simplify will not yield solutions. Perhaps you want Reduce? – Michael E2 Mar 15 '13 at 17:15
That's a creative syntax you used with Simplify :) Simplify is not for solving equations, please check the docs for how it's supposed to be used and for the correct syntax. – Szabolcs Mar 15 '13 at 17:16
What I actually get from Simplify is True == (32 - 128 True)/(19 + 84 True + 16 True^2 - 64 True^3). The reason for this is that the second argument of Simplify is an assumption. Assuming y means assuming that y === True for Mathematica. This is meaningful when y is part of a logical expression such as x && (y || z). – Szabolcs Mar 15 '13 at 21:34

Please read the documentation of Simplify. I clearly states, that it only simplifies expression:

performs a sequence of algebraic and other transformations on expr, and returns the simplest form it finds.

When you want to solve your equation your first thought should be Solve or Reduce and in some other cases maybe NSolve or FindRoot, depending on what your problem is and what you try to achieve.

Reduce tries to solve your equation analytically and gives you additionally required conditions for a solution. Therefore, this should be your first try

Reduce[y == (1/(1/4 + y) - 1/(3/4 - y))/((1/4 + y) + 1/(3/4 - y)), y]
(*
y == Root[32 - 147 #1 - 84 #1^2 - 16 #1^3 + 64 #1^4 &, 1] ||
y == Root[32 - 147 #1 - 84 #1^2 - 16 #1^3 + 64 #1^4 &, 2] ||
y == Root[32 - 147 #1 - 84 #1^2 - 16 #1^3 + 64 #1^4 &, 3] ||
y == Root[32 - 147 #1 - 84 #1^2 - 16 #1^3 + 64 #1^4 &, 4]
*)


You see your equation has 4 solutions which are the roots of the polynomial $$32 - 147 y - 84 y^2 - 16 y^3 + 64 y^4.$$ You can verify that by subtracting y on both sides of your equation

0 == (1/(1/4 + y) - 1/(3/4 - y))/((1/4 + y) + 1/(3/4 - y)) - y


If you use Together on this equation you get $$0=\frac{-64 y^4+16 y^3+84 y^2+147 y-32}{(4 y+1) \left(16 y^2-8 y-19\right)}$$ and you see that the exact same polynomial appears in the numerator. To get numeric values of your solutions you can apply N to the Root expressions or you use Solve like you did in the first place

Reduce[y == (1/(1/4 + y) - 1/(3/4 - y))/((1/4 + y) + 1/(3/4 - y)), y] // N
(*
y == 0.195639 ||
y == 1.70683 ||
y == -0.826235 - 0.902601 I ||
y == -0.826235 + 0.902601 I
*)

-
This is really great answer, thanks a lot! – user31321 Mar 17 '13 at 9:06
But if simplify returns the simplest form it finds, then at least the simplest solution should be included in the whole set of solutions found by solve? – user31321 Mar 17 '13 at 9:09
@user31321 But Simplify does not solve an equation. From your above form 0=f(y), what you try to achieve is an explicit solution in y, e.g. y=0.19. Simplify does not provide you that. – halirutan Mar 17 '13 at 11:32