如何使 "at()" 函数计算 en 表达式?

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

我尝试了 "at" 函数,其中包含一些函数,然后将输出提供给某个变量。 Maxima 成功对表达式进行微分,但随后 "at" 失败,输出为 "at( --some successfully done function--, z=l)=0"。我需要 "at" 才能正常工作,将结果提供给变量。

(%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    

因此,当我不将 at 的结果提供给其他变量时,这很好,但是当我尝试这样做时 - 即使进行了额外的评估,它也会失败。这是如何运作的?这也在 Linux 上进行了尝试。 Windows 我没有遇到同样的问题。

我得到以下输出。 %o3 不是您要找的吗?

(%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

我正在 MacOS 上使用 Maxima 5.42.2。 build_info(); 在您的 Linux 系统上报告了什么?一些 Linux 发行版打包了一个古老版本的 Maxima;也许你可以获得更新的版本。在 Linux 系统上从源 tarball 构建 Maxima 实际上非常容易;如果你想走那条路,我可以帮你。