Mengumpulkan kekuatan istilah yang sama

Aug 20 2020

Cara mengumpulkan kekuatan umum yang muncul di fungsi berikut menggunakan MATHEMATICA, seperti jika saya masukan

(4 m^6)/((m - n)^2 (m + n)^4 (2m+n)^4) 

maka hasilnya akan ditampilkan sebagai

((2 m^3)/((m - n) (m + n)^2 (2m+n)^2))^2

Sunting: Secara umum, jika ada banyak suku dengan pangkat berbeda baik pada pembilang maupun penyebutnya maka yang dibutuhkan adalah PBT dari semua pangkat suku di pembilang dan penyebut. Misalnya jika kita memiliki pengikut

(a1^(n1)a2^(n2)a3^(n3)a4^(n4)...a^(nn))/(b1^(m1)b2^(m2)b3^(m3)b4^(m4)...bm^(mm))

Apa yang bisa dianggap sebagai kekuatan bersama adalah

GCD(n1,n2,...,nn,m1,m2,m3....mm)

Jawaban

3 BobHanlon Aug 20 2020 at 06:12
expr = (4 m^6)/((m - n)^2 (m + n)^4 (2 m + n)^4);

Formulir yang Anda minta akan secara otomatis disederhanakan ke ekspresi aslinya.

((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) *&)

Untuk mempertahankan formulir yang diminta, Anda perlu mencegah penyederhanaan otomatis

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) *)

EDIT:

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 *)

EDIT 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)]