We can rationalize to make everything exact, clear denominators, and compute a Groebner basis (slow, but it works) over the rational function field involving the parameters (non-variables, that is).
polys = Numerator[
Together[
Rationalize[
Map[First, {eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8, eq9,
eq10}]]]];
vars = {Ly, Lq, LA, gA, gB, r, g1, g2, g3, p};
Timing[
gb = GroebnerBasis[polys, vars,
CoefficientDomain -> RationalFunctions];]
(* Out[190]= {726.063, Null} *)
It's not small...
In[191]:= LeafCount[gb]
(* Out[191]= 4567713 *)
Structure is convenient however. First polynomial is cubic in p
, the rest are each linear in a unique variable and quaratic in p
. So each of the three solutions for p
will produce one value for each remaining variable.
In[192]:= Length[gb]
(* Out[192]= 10 *)
In[198]:= Map[Intersection[Variables[#], vars] &, gb]
(* Out[198]= {{p}, {g3, p}, {g2, p}, {g1, p}, {p, r}, {gB, p}, {gA,
p}, {LA, p}, {Lq, p}, {Ly, p}} *)
In[199]:= Exponent[gb[[1]], p]
(* Out[199]= 3 *)
All this aside, I would actually recommend a numeric approach wherein NSolve
is invoked for inputs where the parameters all have numeric instantiations. This is less prone to numeric issues resulting from trying to numerically instantiate within a massive symbolic solution of the sort that Solve
might provide from the Groebner basis.
--- edit ---
I should mention that adding Sort->True
to the GroebnerBasis
computation brings it down to 160 seconds on the same machine, with a result that is around 1/9 the size (measured by LeafCount
). So it's not entirely hopeless to do this symbolically.
--- end edit ---
Solve[{eq1, eq4, eq5}, {r, g1, g3}]
$\endgroup$