Search code examples
maximawxmaxima

How to make "at()" function evaluate en expression?


I tried function "at" with some function inside it and then give the output to some variable. Maxima successfully differentiated the expression, but then "at" fails and the output is "at( --some successfully done function--, z=l)=0". I need "at" to work properly, to give the result to a variable.

(%i34)  a: 45*z^2*l-1; /*expression*/
eq1: at(diff(a, z, 1), z = l)=0; /*giving the meaning of the operations to eq1*/
at(diff(a, z, 1), z = l)=0; /*trying the same without giving the result to a variable*/
ev(eq1, eval); /*trying ev*/
(a) l*z^2* 45-1
(eq1)    at(2*l*z* 45,z=l)=0
(%o34)  2*l^2* 45=0
(%o35)  at(2*l*z* 45,z=l)=0    

So when I don't give the result of at to other variables, it's fine but when I try to - it fails even with additional evaluation. How does that work? And also this was tried on Linux. On Windows I don't have the same problem.


Solution

  • I get the following output. Isn't %o3 what you are looking for?

    (%i2) a: 45*z^2*l-1;
                                     2
    (%o2)                      45 l z  - 1
    (%i3) eq1: at(diff(a, z, 1), z = l)=0;
                                    2
    (%o3)                       90 l  = 0
    

    I am working w/ Maxima 5.42.2 on MacOS. What does build_info(); report on your Linux system? Some Linux distributions package an ancient version of Maxima; maybe you can get a newer version. It is actually pretty easy to build Maxima from a source tarball on a Linux system; I can help if you want to go down that road.