wrong result from function solve



I haven't looked at your equations all that carefully,  but maybe the following is relevant:

Pasting an approximate solution into an equation yields the so-called residual.  A "small" residual does not imply an accurate solution: for
example,

(%i1) eq : (x-1)^10000 = 0;
(%o1) (x-1)^10000=0

(%i2) subst(x=1.99,eq);
(%o2) 2.248774849816094*10^-44=0

The residual (2.248774849816094*10^-44) is small, but 1.99 is not close to any solution of  (x-1)^10000 = 0.

A large residual does not imply an inaccurate answer; for example, 

   (%i3) eq : (x-1)^(1/10000)=0;
   (%o3) (x-1)^(1/10000)=0

   (%i4) subst(x=1.000000000000001,eq);
  (%o4) 0.996562500229301=0

Here 1.000000000000001 is close to a solution of   (x-1)^(1/10000)=0 but the residual  0.9965... isn't small.

Of course,  "large" and  "small"  have no definite meaning.  The standard advice is to consult a good numerical analysis text for details. 
Specifically for this, I don't have a good book in mind. 

--bw