Problem with "globalsolve:true"



On 2/8/08, Helge Hansen <hansen at akb-antriebstechnik.de> wrote:

> Does anybody understand why K2 in the following script is not solved global?
> What am I doing wrong? In my opinion the last line should be:
> M(z)=z*A-(q*z^2)/2
>
> (%i1) M(z)::=K2+A*z-q*z^2/2;
> (%o1) M(z)::=K2+A*z+((-q)*z^2)/2
>
> (%i2) globalsolve:true$
>
> (%i3) solve([M(z)=0,z=0],[K2,z]);

Well, M(z) = 0 is not a linear equation, so solve ignores globalsolve.
The documentation for globalsolve states that, although globalsolve
is a mess anyway so it is impossible to be entirely clear about it.

My advice is to ignore globalsolve and find another way.
Maybe subst(K2=0, M(z)) or ev(M(z), K2=0) yields the expected result.

I think the Maxima developers should consider cutting out globalsolve.
Its implementation is a mess, and even if it worked right, it would
make a mess for the user by causing assignments.

best

Robert Dodier