การรวบรวมอำนาจทั่วไปของคำศัพท์

Aug 20 2020

วิธีรวบรวมพลังทั่วไปที่ปรากฏในฟังก์ชันต่อไปนี้โดยใช้ MATHEMATICA เช่นนั้นหากฉันป้อนข้อมูล

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

จากนั้นผลลัพธ์ควรจะแสดงเป็น

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

แก้ไข: โดยทั่วไปหากมีหลายคำที่มีอำนาจต่างกันทั้งในตัวเศษและตัวส่วนสิ่งที่ต้องการคือ GCD ของพลังทั้งหมดของเงื่อนไขทั้งในตัวเศษและตัวส่วน ตัวอย่างเช่นถ้าเรามีดังต่อไปนี้

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

สิ่งที่สามารถนำมาเป็นพลังร่วมคือ

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

คำตอบ

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

แบบฟอร์มที่คุณร้องขอจะทำให้นิพจน์ดั้งเดิมง่ายขึ้นโดยอัตโนมัติ

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

ในการเก็บแบบฟอร์มที่ร้องขอคุณต้องป้องกันการทำให้เข้าใจง่ายโดยอัตโนมัติ

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

แก้ไข:

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

แก้ไข 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)]