max(a, b) を含む数式を単純化するために Maxima を使用しようとしています。
z = min(x1, x2)とd = abs(x1 - x2)を定義したとすると、恒等式x1 * x2 = z*(z+d)とx1 + x2 = 2*z + dが続きます。
たとえば、次の式を使用します。
(2*z^3+(−3*x2−3*x1)*z^2+6*x1*x2*z)/6
上記の ID を手動で適用すると、次のように単純化できます。
z^3 / 3 + (z^2 * d) / 2
マキシマでは、素朴に試しています
subst(min(x1, x2), v, ((6*v*x1−3*v^2)*x2−3*v^2*x1+2*v^3)/6), ratsimp
長い表情を演出します。
式の奥深くに埋め込まれたx1 * x2およびx1 + x2の出現を Maxima に見つけさせるにはどうすればよいでしょうか? たとえば、さまざまな形式のtellimp、let、letsimpを試しました。
let(x1*x2, z * (z+d))
また
let(K * x1*x2, K * z * (z + d), K, integer)
また
matchdeclare(R, true)
let(R * x1*x2 * z, R * z * (z+d))
Maxima に手動で到達できる素敵な短い式を生成させるにはどうすればよいでしょうか? もっと大きな式で作業する必要があります。