Lisp error when using linsolve



On 5/13/06, Marcel T=FCnnissen <marcelteun at hotmail.com> wrote:
>
> (%i6) linsolve([e1, e2, e3, e4], [e, f, g, y]);
> Maxima encountered a Lisp error:
>
> CAR: 2 is not a LIST


Well, you shouldn't be using linsolve on a non-linear system.  But Maxima
should *never* give an internal error like "2 is not a LIST", even when user
input is incorrect.

The general routine to use here is solve (which calls algsys in this case).
Unfortunately, solve has a problem here, too, though there is a workaround:

eqs: [-y^2-2*e*y+f^2-e^2+1,-4*y^2-4*e*y+g^2-e^2+1] $
solve(eqs,[f,g,e,y]);

Maxima encountered a Lisp error:
 Error in MACSYMA-TOP-LEVEL [or a callee]: 0 is not of type LIST.
Automatically continuing.

eqs2: subst([f^2=fsq,g^2=gsq],eqs)$

solve(eqs2,[fsq,gsq,e,y]);
[[fsq = %r2^2+2*%r1*%r2+%r1^2-1,
  gsq = 4*%r2^2+4*%r1*%r2+%r1^2-1,
  e = %r1,
  y = %r2]]


Hope this helps.  Good luck,

        -s