1
Maximaに1/4 * x/sqrt(2) * x^2/2;
というような用語があるとします。 出力として(これ以上の変更なし)、x^3/2^(7/2)
となります。 できるだけ平方根を使用して出力形式をx^3/(8*sqrt(2))
に強制するにはどうすればよいですか?最大値で平方根の使用法を簡略化する方法
Maximaに1/4 * x/sqrt(2) * x^2/2;
というような用語があるとします。 出力として(これ以上の変更なし)、x^3/2^(7/2)
となります。 できるだけ平方根を使用して出力形式をx^3/(8*sqrt(2))
に強制するにはどうすればよいですか?最大値で平方根の使用法を簡略化する方法
(%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」関数を使用します。また、box
とrembox
関数を考慮するか、sq2
を未定義のままにしておくこともできます。
sqrt(2)の例でうまく動作します。すべてのsqrt(int)に汎用的なアプローチがありますか? – Nico