2

sqrt(a^2+2*a+1)のように簡単に書き直すことができます|a+1|。これをマキシマでやりたいのですが、うまくいきません。sqrt(a^2)は自動的に に簡略化されますが、|a|そうでsqrt(a^2+2*a+1)はありません。そしてradcan(sqrt(a^2+2*a+1))を与えますがa+1、これは正しくありません。Maximaで正しい単純化を行う方法はありますか?

4

1 に答える 1

1

うん。基本的には、Maxima に、平方根の内部を因数分解するのを少し難しくするように指示するだけです。例えば:

(%i1) x: sqrt(a^2 + 2*a + 1);
                                    2
(%o1)                         sqrt(a  + 2 a + 1)
(%i2) factor(a^2 + 2*a + 1);
                                          2
(%o2)                              (a + 1)
(%i3) map (factor, x);
(%o3)                             abs(a + 1)
(%i4) 

maphere は、 の各引数に関数をfactor適用する必要があることを意味しますsqrt。何が起こるかというと、あなたがsqrt((a+1)^2)途中で現れるということで、これは自動的に に単純化されabs(a+1)ます。

からの答えradcanは のいくつかの値に対して正しいことに注意してくださいa。私が理解しているように、これがradcan保証するすべてです: 「うーん! このクレイジーな式について考えるもっと簡単な方法はありますか?」に答えるのに役立ちますが、「うーん、この変数の変数がわからない」には特に役に立ちません。もっと簡単な形はありますか?」

于 2012-07-31T14:34:49.290 に答える