Collecte des puissances communes des termes
Comment collecter les puissances communes apparaissant dans la fonction suivante en utilisant MATHEMATICA, de sorte que si je saisis
(4 m^6)/((m - n)^2 (m + n)^4 (2m+n)^4)
alors la sortie doit être affichée comme
((2 m^3)/((m - n) (m + n)^2 (2m+n)^2))^2
Edit : En général, s'il existe de nombreux termes avec des puissances différentes à la fois au numérateur et au dénominateur, ce qui est requis est le PGCD de toutes les puissances des termes à la fois au numérateur et au dénominateur. Par exemple si nous avons suit
(a1^(n1)a2^(n2)a3^(n3)a4^(n4)...a^(nn))/(b1^(m1)b2^(m2)b3^(m3)b4^(m4)...bm^(mm))
Ce que l'on pourrait considérer comme le pouvoir commun est le
GCD(n1,n2,...,nn,m1,m2,m3....mm)
Réponses
expr = (4 m^6)/((m - n)^2 (m + n)^4 (2 m + n)^4);
Le formulaire que vous avez demandé sera automatiquement simplifié à l'expression d'origine.
((2 m^3)/((m - n) (m + n)^2 (2 m + n)^2))^2
(* (4 m^6)/((m - n)^2 (m + n)^4 (2 m + n)^4) *&)
Pour conserver le formulaire demandé, vous devez empêcher la simplification automatique
expr2 = Module[{$a}, Inactive[Power][ ($a /. Solve[expr == $a^2, $a][[-1]]), 2]]

expr2 // Activate
(* (4 m^6)/((m - n)^2 (m + n)^4 (2 m + n)^4) *)
ÉDITER:
expr = (a1^3 a2^6 a3^9 a4^6 a5^6)/(b1^3 b2^12 b3^15 b4^9 b5^6);
gcd = GCD @@ Cases[expr, x_^p_. :> p, 1]
(* 3 *)
Inactive[Power][(expr /. x_^p_ :> x^(p/gcd)), gcd]

(% // Activate) === expr
(* True *)
ÉDITION 2 :
format[expr_] := Module[{coef, gcd},
coef = expr /. {a_Integer r_ :> a, r_ :> 1};
gcd = GCD @@
Cases[expr/coef, (a : _Integer : 1) x_^p_. :> p, 1];
Inactive[Power][
(expr/(coef^(1/gcd)) /. x_^p_ :> x^(p/gcd)), gcd]]
format[(4 m^6)/((m - n)^2 (m + n)^4 (2 m + n)^4)]

format[(a1^3 a2^6 a3^9 a4^6 a5^6)/(b1^3 b2^12 b3^15 b4^9 b5^6)]
