2017-03-28 4 views
1

Maximaに1/4 * x/sqrt(2) * x^2/2;というような用語があるとします。 出力として(これ以上の変更なし)、x^3/2^(7/2)となります。 できるだけ平方根を使用して出力形式をx^3/(8*sqrt(2))に強制するにはどうすればよいですか?最大値で平方根の使用法を簡略化する方法

答えて

0
(%i1) sq2: " "(sqrt(2))$ 
(%i2) matchdeclare(n, lambda([n], oddp(n) and n#1))$ 
(%i3) defrule(r_sq2, 2^(n/2), sq2*2^((n-1)/2))  $ 
(%i4) e: 1/4 * x/sqrt(2) * x^2/2; 
             3 
             x 
(%o4)        ---- 
             7/2 
            2 
(%i5) apply1(e, r_sq2); 
              3 
            (sqrt(2)) x 
(%o5)       ------------- 
             16 

ルールはsqrt(2)を挿入するのに役立ちます。この例では、単純化を防ぐために「null」関数を使用します。また、boxrembox関数を考慮するか、sq2を未定義のままにしておくこともできます。

+0

sqrt(2)の例でうまく動作します。すべてのsqrt(int)に汎用的なアプローチがありますか? – Nico

関連する問題