Maxima has at least two alternative solve functions. The %solve function defined in the optional
to_poly_solver package can solve your equation.
(%i1) load("to_poly_solver")$
(%i2) sol : %solve(x = sqrt(x^2+1) - a,x);
(%o2) %union(%if((-%pi/2<parg((a^2+1)/a)) %and (parg((a^2+1)/a)<=%pi/2),[x=-(a^2-1)/(2*a)],%union()))
parg is the complex number argument that is in (-pi, pi]. We can substitute values for a to get
specific solutions:
(%i3) subst(a=42,sol);
(%o3) %union([x=-1763/84])
When a = -1, the solution set is empty:
(%i4) subst(a=-1,sol);
(%o4) %union()
When a = -1, squaring the equation makes the solution set larger. The to_poly_solver tries to expunge
spurious solutions (it's a bug if it doesn't).
--Barton
Author of to_poly_solver
http://www.unk.edu/uploadedFiles/facstaff/profiles/willisb/solve-talk(3).pdf
-----maxima-bounces at math.utexas.edu wrote: -----
>You?can?solve?it?"by?hand"?using?maxima.??Where?does?where?b?come?into?it?
>
>(%i1)?x=sqrt(x^2+1)-a;
>???????????????????????????????????????2
>(%o1)????????????????????????x?=?sqrt(x??+?1)?-?a
>(%i2)?%+a;
>???????????????????????????????????????????2
>(%o2)????????????????????????x?+?a?=?sqrt(x??+?1)
>(%i3)?lhs(%)^2=rhs(%)^2;
>??????????????????????????????????????2????2
>(%o3)??????????????????????????(x?+?a)??=?x??+?1
>(%i4)?expand(%);
>????????????????????????????2????????????2????2
>(%o4)??????????????????????x??+?2?a?x?+?a??=?x??+?1
>(%i5)?lhs(%)-rhs(%)=0;
>???????????????????????????????????????2
>(%o5)?????????????????????????2?a?x?+?a??-?1?=?0
>(%i6)?solve(%,x);
>????????????????????????????????????????2
>???????????????????????????????????????a??-?1
>(%o6)???????????????????????????[x?=?-?------]
>????????????????????????????????????????2?a
>
>_______________________________________________
>Maxima?mailing?list
>Maxima at math.utexas.edu
>http://www.math.utexas.edu/mailman/listinfo/maxima