# NSolve claims there are no solutions in Reals but finds them without restriction to Reals

When trying to answer this question I've discovered what looks like a bug in NSolve introduced in version 11.1.0.

$Version  "11.1.0 for Microsoft Windows (64-bit) (March 13, 2017)"  With setup Clear[dBeta, solnEquation, solnFun]; dBeta[k_Integer, x_, var1_] = Derivative[k, 0][Beta[#1, #2, 2] &][x, var1]; solnEquation[var1_, var2_, x_] = Sum[Binomial[5, k]*dBeta[k, x, var1]*var2^k, {k, 0, 5}]; equation[var1_, var2_, x_] := solnEquation[var1, var2, x] == Beta[2, 2];  Solve is able to find two solutions for var1 = 2, var2 = 1/10: sol = Solve[equation[2, 1/10, x] && 0 < x < 1, x, Reals]; equation[2, 1/10, x] /. Normal@sol // N  Solve::incs: Warning: Solve was unable to prove that the solution set found is complete. {True, True}  While NSolve claims that there are no solutions in the real domain: NSolve[equation[2, 1/10, x] && 0 < x < 1, x, Reals]  {}  But without this restriction it finds two solutions in the real domain: NSolve[equation[2, 1/10, x] && 0 < x < 1, x] equation[2, 1/10, x] /. %  {{x -> 0.328152}, {x -> 0.741041}} {True, True}  In version 11.0.1 NSolve gives correct answer for the real domain: $Version

"11.0.1 for Microsoft Windows (64-bit) (September 20, 2016)"

NSolve[equation[2, 1/10, x] && 0 < x < 1, x, Reals]

{{x -> 0.3281517106189123}, {x -> 0.7410414526199698}}


Is it a bug in version 11.1.0?

## 1 Answer

A possible cure for your problem is to use FunctionExpand[] to ensure that the incomplete beta function is expanded to the actual polynomial it represents. Thus:

NSolve[FunctionExpand[equation[2, 1/10, x]] && 0 < x < 1, x, Reals]
{{x -> 0.3281517106189123}, {x -> 0.7410414526199698}}

• Should we tag this as a bug? – Alexey Popkov Mar 18 '17 at 20:00
• It's certainly a regression. – J. M. is away Mar 18 '17 at 20:03