如何使 "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 实际上非常容易;如果你想走那条路,我可以帮你。
我尝试了 "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 实际上非常容易;如果你想走那条路,我可以帮你。