# How to solve this system of equations?

I want to solve the following system of equations:

$$\begin{cases} 1+\sqrt{2 x+y+1}=4 (2 x+y)^2+\sqrt{6 x+3 y},\\ (x+1) \sqrt{2 x^2-x+4}+8 x^2+4 x y=4. \end{cases}$$ I tried

````Reduce[{    1 + Sqrt[2 x + y + 1] == 4 (2 x + y)^2 + Sqrt[6 x + 3 y],
        (x + 1) Sqrt[2 x^2 - x + 4] + 8 x^2 + 4 x  y == 4 },    
        {x, y}, Reals]
````

I also tried with `Solve` and `NSolve`, but the evaluation exhausted my patience. I know the given system has $\left(\frac{1}{2};-\frac{1}{2}\right)$ as the only real solution. How do I tell Mathematica to get that solution ?

-

1
Did you try it in a new session? I get the result instantly – rm -rf♦ Mar 16 at 16:07
@rm-rf I think the problem is only visible in version < 9. – Jens Mar 16 at 16:11
In earlier versions one can do `NSolve[system,vars]` and postprocess to remove the complex-valued solutions. – Daniel Lichtblau Mar 16 at 20:49

## 3 Answers

This is something that differs dramatically between Mathematica version 8 and 9. In 8, it is indeed impossibly slow. In version 9, the result is returned instantly.

If you know there's only one solution you need, then it's often a good idea to not use `Reduce` because it will try to find all solutions and therefore spend a lot of time looking for a proof that it found them all. Instead, just do this:

````FindInstance[{1 + Sqrt[2 x + y + 1] == 
   4 (2 x + y)^2 + Sqrt[6 x + 3 y], (x + 1) Sqrt[2 x^2 - x + 4] + 
    8 x^2 + 4 x y == 4}, {x, y}, Reals]

(* ==> {{x -> 1/2, y -> -(1/2)}} *)
````

This is usually much faster than `Reduce` or `Solve`.

-

Confirming that `Mathematica 9` can easily solve this system unlike `ver. 7 & 8` I'm going to suggest how to deal with it in earlier versions.

1. there are many many complex solutions so the restriction of the domain to `Reals` is important to get the only one real solution.
2. since the system appears to be difficult for `Mathematica 7 & 8` one should consider a simple transformation of the original variables.

There are terms `2 x + y, 6 x + 3 y, 8 x^2 + 4 x y` so one can conclude it should be a good idea to introduce a new variable `z == 2x + y`, now we have :

````system1 = { 1 + Sqrt[2 x + y + 1] == 4 (2 x + y)^2 + Sqrt[6 x + 3 y],
           (x + 1) Sqrt[2 x^2 - x + 4] + 8 x^2 + 4 x y == 4} /. {y -> z - 2 x}//Simplify
````
```` { 1 + Sqrt[1 + z] == Sqrt[3] Sqrt[z] + 4 z^2, 
   8 x^2 + (1 + x) Sqrt[4 - x + 2 x^2] + 4 x (-2 x + z) == 4}
````

and this system appears to be much easier to solve :

````Reduce[system1, {x}, Reals]
````
````z == 1/2 && x == 1/2
````

We can use as well `Reduce[system1, {z, x}, Reals]` to get the solutions instantly unlike in this case `Reduce[system1, {x, z}, Reals]` i.e. when the specified variables to be found are in the reversed order.

We can use also `Solve` eliminating one variable :

````Solve[system1, {x}, {z}, Reals]
Solve[system1, {z}, {x}, Reals]
````
````{{x -> 1/2}}
{{z -> 1/2}} 
````
-
````  {eq1, eq2} = {1 + Sqrt[2 x + y + 1] ==  4 (2 x + y)^2 + Sqrt[6 x + 3 y],
     (x + 1) Sqrt[2 x^2 - x + 4] + 8 x^2 + 4 x y == 4};

Select[y /. (Join @@ Solve[# == 0] & /@ 
     GroebnerBasis[Subtract @@@ {eq1, eq2}, {x, y}]), # == Re[#] &] // Union
Solve[eq1 /. y -> -1/2, x, Reals]
````
-
lang-mma
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 1, "mathjax_display_tex": 1, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.8692876696586609, "perplexity_flag": "middle"}