如何使“ at()”函数对表达式求值?

时间:2019-06-14 09:24:11

标签: maxima wxmaxima

我尝试了函数“ at”,其中包含一些函数,然后将输出提供给某个变量。 Maxima成功地对表达式进行了区分,但是随后“ at”失败了,输出为“ at(-一些成功完成的函数-,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上,我没有相同的问题。

1 个答案:

答案 0 :(得分:1)

我得到以下输出。 %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相当容易。如果您想走那条路,我可以提供帮助。