2016-08-16 75 views
1

我想爲一個符號定義一個規則,比如說:「a」,例如:$ a^3 = b a^2 + c a + d $並強制楓樹將所有我的包含$ a $的表達式包含一個僅包含$ a $的冪的表達式,直到平方。我曾嘗試過「applyrule」,但即使是$ a^4 $ maple似乎也無法做到這一點。有沒有辦法強制這種簡化規則?爲楓樹設置簡化規則

回答

0
simplify(a^4, {a^3 = b*a^2+c*a+d}); 

這就是所謂的 「簡化同方的關係。」圍繞第二個參數的大括號是必不可少的。

1

您可以使用簡化與,這意味着使用simplify命令與出現在特定形式的可選參數中的規則。

例如,

restart; 

rule:=a^3=b*a^2+c*a+d: 

simplify(a^2, {rule}); 

              2 
              a 

simplify(a^3, {rule}); 

            2 
            a b + a c + d 

simplify(a^4, {rule}); 

           2  2 
          (b + c) a + (b c + d) a + b d 

我們可以證明前面的結果的使用algsubs正確性。請注意,algsubs可能會應用不止一次,以實現這一點。

algsubs(rule, a^4); 

            3  2 
            a b + a c + a d 

algsubs(rule, %); 

           2  2 
          (b + c) a + (b c + d) a + b d 

ans1 := simplify(a^7, {rule}): 

ans2 := algsubs(rule, algsubs(rule, algsubs(rule, algsubs(rule, a^7)))): 

normal(ans1 - ans2); 

              0 

注意,有側面的關係簡單化也可以是在不表達工作只是多項式(在這種情況下,這將是更難利用algsubs得到同樣的效果)。

expr := sin(a^4) + a^3 + sqrt(a^7); 

             4  3  7 1/2 
          expr := sin(a) + a + (a) 

simplify(expr, {rule}): 

lprint(%); 

       b*a^2+c*a+d+sin((b^2+c)*a^2+(b*c+d)*a+b*d)+ 
       ((b^5+4*b^3*c+3*b^2*d+3*b*c^2+2*c*d)*a^2+ 
       (b^4*c+b^3*d+3*b^2*c^2+4*b*c*d+c^3+d^2)* 
       a+d*(b^4+3*b^2*c+2*b*d+c^2))^(1/2)