替换 Maple 中的 Square-Expression
Replace Square-Expression in Maple
给定一个像
这样的 maple 表达式
f := (y + 5)^2 + x^2
如何用自定义函数替换所有出现的平方函数?我想要的结果是
square(y + 5) + square(x)
我试过
subs({x^2 = square(x)}, f)
但是,这只会替换 x^2
表达式。我当然也可以明确列出 (y + 5)
术语,但我想替换任何出现的 (.)^2
而不明确列出所有内容。
如何在 Maple 中执行此操作?
您可以使用 subsindets
或 applyrule
来完成此操作。
expression:=(y-5)^2+3+sin(((z-1/3)^2/(t-(y-s)^2)))+F(f(17+p^2)^2);
/ 2 \
| / 1\ |
| |z - -| | / 2\
2 | \ 3/ | | / 2 \ |
expression := (y - 5) + 3 + sin|------------| + F\f\p + 17/ /
| 2|
\t - (y - s) /
applyrule(_a::anything^2=square(_a), expression);
/ / 1\ \
| square|z - -| |
| \ 3/ |
square(y - 5) + 3 + sin|-----------------| + F(square(f(square(p) + 17)))
\t - square(y - s)/
subsindets(expression, '`^`'(anything,2), u->square(op(1,u)));
/ / 1\ \
| square|z - -| |
| \ 3/ |
square(y - 5) + 3 + sin|-----------------| + F(square(f(square(p) + 17)))
\t - square(y - s)/
给定一个像
这样的 maple 表达式f := (y + 5)^2 + x^2
如何用自定义函数替换所有出现的平方函数?我想要的结果是
square(y + 5) + square(x)
我试过
subs({x^2 = square(x)}, f)
但是,这只会替换 x^2
表达式。我当然也可以明确列出 (y + 5)
术语,但我想替换任何出现的 (.)^2
而不明确列出所有内容。
如何在 Maple 中执行此操作?
您可以使用 subsindets
或 applyrule
来完成此操作。
expression:=(y-5)^2+3+sin(((z-1/3)^2/(t-(y-s)^2)))+F(f(17+p^2)^2);
/ 2 \
| / 1\ |
| |z - -| | / 2\
2 | \ 3/ | | / 2 \ |
expression := (y - 5) + 3 + sin|------------| + F\f\p + 17/ /
| 2|
\t - (y - s) /
applyrule(_a::anything^2=square(_a), expression);
/ / 1\ \
| square|z - -| |
| \ 3/ |
square(y - 5) + 3 + sin|-----------------| + F(square(f(square(p) + 17)))
\t - square(y - s)/
subsindets(expression, '`^`'(anything,2), u->square(op(1,u)));
/ / 1\ \
| square|z - -| |
| \ 3/ |
square(y - 5) + 3 + sin|-----------------| + F(square(f(square(p) + 17)))
\t - square(y - s)/