千里马:如何更换变量以简化方程式?

问题描述 投票:0回答:1
(%i1)   r: sqrt(x^2+y^2+z^2);
(r) sqrt(z^2+y^2+x^2)
(%i2)   dx: diff(r,x);
(dx)    x/sqrt(z^2+y^2+x^2)

我只是展示一个简单的代码,因为我的代码冗长而复杂。

我想简化dx并得到结果是x/r而不是x/sqrt(z^2+y^2+x^2)

但是,我找不到有用的命令。

有人可以帮我解决这个问题吗?

maxima
1个回答
1
投票

在这种特定情况下,您可以使用subst,尽管ratsubst可能在更多情况下有用。

(%i1) linel:65;
(%o1)                          65
(%i2) r: sqrt(x^2+y^2+z^2);
                             2    2    2
(%o2)                  sqrt(z  + y  + x )
(%i3) diff (r, x);
                               x
(%o3)                  ------------------
                             2    2    2
                       sqrt(z  + y  + x )

(%i5) subst (r = 'r, %o3);
                                x
(%o5)                           -
                                r
(%i6) ratsubst ('r, r, %o3);
                                x
(%o6)                           -
                                r

请注意,单引号会阻止评估,因此'r是符号r而不是r(即sqrt(x^2 + y^2 + z^2))的值。

© www.soinside.com 2019 - 2024. All rights reserved.