# How FindInstance can find all the solutions over a given range of parameters

sol3 = {h2, h1, d, t, b, c} /.FindInstance[(h2^2 ((1 + d*Sin[t]^2)))/(16 \[Pi]^2) b == 1.14 && (h1*h2 (d (Sin[2 t])))/(2*16 \[Pi]^2) c == 0.1 &&
10^4 < b < 10^6 && 10^4 < c < 10^6 && 0 <= d <= 1 && 0 <= t <= \[Pi]/2 && 0.01 < h2 < 1 && 0.1 < h1 < 1, {h2, h1, d, t,b, c}, Reals, 10,WorkingPrecision -> 10,Method -> "ZengDecision" -> True]


I want to find out all the solutions over the range given above for h1, h2, b and c. But here I just asked for 10 solutions it settles down the lower limit of b and c. But if I changed the range for a and b , from $$(10^3,10^6)$$ to $$(10^2,10^6)$$, I even lost these solutions, then it shows error. But still the new range covers the old range. So why it fails to give solutions?

Your expression produces errors (FindInstance::nsmet, ReplaceAll::reps) with v12 on my Mac

\$Version

(* "12.0.0 for Mac OS X x86 (64-bit) (April 7, 2019)" *)


However, using exact numbers in the expression provides three solutions -- near the lower bounds for b and c

sol3 = {h2, h1, d, t, b, c} /. FindInstance[
(h2^2 ((1 + d*Sin[t]^2)))/(16 π^2) b == 57/50 &&
(h1*h2 (d (Sin[2 t])))/(2*16 π^2) c == 1/10 &&
10^4 < b < 10^6 && 10^4 < c < 10^6 && 0 <= d <= 1 &&
0 <= t <= π/2 && 1/100 < h2 < 1 && 1/10 < h1 < 1,
{h2, h1, d, t, b, c}, Reals, 10,
WorkingPrecision -> 10,
Method -> "ZengDecision" -> True]


Extending the range of b and c produces 18 solutions but does not include the original 3 solutions. Again, the found solutions are near the lower bound for b and c. Presumably, the search starts near the lower bounds and is timing out before getting far from the lower bounds.

sol3rev = {h2, h1, d, t, b, c} /. FindInstance[
(h2^2 ((1 + d*Sin[t]^2)))/(16 π^2) b == 57/50 &&
(h1*h2 (d (Sin[2 t])))/(2*16 π^2) c == 1/10 &&
10^2 < b < 10^6 && 10^2 < c < 10^6 && 0 <= d <= 1 &&
0 <= t <= π/2 && 1/100 < h2 < 1 && 1/10 < h1 < 1,
{h2, h1, d, t, b, c}, Reals, 20,
WorkingPrecision -> 10,
Method -> "ZengDecision" -> True]


• That is the problem, it settles down at lower bound. Please any suggestions on how to scan for other solutions – Immy Salam Aug 27 at 14:13
• @ImmySalam - break the intervals into small intervals and use FindInstance or Reduce on each of the smaller intervals. This is likely to take a long time for computation. – Bob Hanlon Aug 27 at 14:24