替换Maple中的Square-Expression

时间:2017-11-14 17:27:51

标签: symbolic-math maple

给出像

这样的枫树表情
f := (y + 5)^2 + x^2

如何使用自定义函数替换所有出现的square函数?我想要的结果是

square(y + 5) + square(x)

我试过像

这样的东西
subs({x^2 = square(x)}, f)

但是,这只会替换x^2表达式。我当然可以明确列出(y + 5)字词,但我想替换(.)^2的所有字符而不明确列出所有内容。

我如何在Maple中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用subsindetsapplyrule完成此操作。

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)/