千里马:如何替换变量来简化方程?
Maxima: How to replace the variables to simplify the equation?
(%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)
。
但是,我找不到有用的命令。
有人可以帮我解决这个问题吗?
在这种特定情况下,您可以使用 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)
)。
(%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)
。
但是,我找不到有用的命令。
有人可以帮我解决这个问题吗?
在这种特定情况下,您可以使用 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)
)。