วิธีแก้สมการเมทริกซ์ประเภทนี้ที่เกี่ยวข้องกับอันดับ
Aug 20 2020
ฉันเห็นโพสต์ที่นี่เพื่อแก้สมการความสัมพันธ์อันดับของเมทริกซ์:
symbolicMatrixRank[mat_, assumptions_] := Assuming[assumptions,
Simplify @ Total @ Map[
Boole @ Simplify @ Reduce[ConditionalExpression[#, $Assumptions] != 0]&,
SingularValueList[mat]
]
];
adj[m_](*adjoint matrix*):=
Map[Reverse, Minors[Transpose[m], Length[m] - 1], {0, 1}]*
Table[(-1)^(i + j), {i, Length[m]}, {j, Length[m]}]
Reduce[symbolicMatrixRank[adj[{{a, b, b}, {b, a, b}, {b, b, a}}],
Element[a, Reals] && Element[b, Reals]] == 1]
ฟังก์ชั่นที่กำหนดเองsymbolicMatrixRank
ของSjoerd Smitนั้นยอดเยี่ยมมาก แต่ฉันพบว่าสมการเมทริกซ์ต่อไปนี้ไม่สามารถแก้ไขได้ด้วยวิธีการข้างต้น:
Reduce[symbolicMatrixRank[{{a, 2*b}, {b, 2*c}, {c, 2*a}},
Element[a, Reals] && Element[b, Reals] && Element[c, Reals]] ==
symbolicMatrixRank[{{a, 2*b, -3*c}, {b, 2*c, -3*a}, {c,
2*a, -3*b}},
Element[a, Reals] && Element[b, Reals] && Element[c, Reals]] ==
2]
ฉันจะปรับปรุงโค้ดด้านบนเพื่อแก้สมการเมทริกซ์ได้อย่างไร
หมายเหตุ:คำถามต่อไปนี้มาจากคำถามที่ 10 ของการสอบเข้าทางคณิตศาสตร์ระดับบัณฑิตศึกษาภาษาจีนประจำปี 2546 (ชุดแรก)
a + b + c = 0
คำตอบอ้างอิงของคำถามนี้
คำตอบ
1 SjoerdSmit Aug 24 2020 at 17:33
ฉันจัดการเพื่อให้ได้สิ่งนี้มาโดยเพียงแค่ยุ่งกับค่าเอกพจน์จนกระทั่งการผสมผสานReduce
และSimplify
ให้ผลลัพธ์ที่ชัดเจน:
mat1 = {{a, 2*b}, {b, 2*c}, {c, 2*a}}
mat2 = {{a, 2*b, -3*c}, {b, 2*c, -3*a}, {c, 2*a, -3*b}}
assumptions = {a, b, c} \[Element] Reals
rank1 = Assuming[assumptions,
Total[
Boole @ Simplify @ Reduce @ Reduce[# != 0 && assumptions] & /@ SingularValueList[mat1]
]
]
rank2 = Assuming[assumptions,
Total[
Boole @ Simplify @ Reduce @ Reduce[# != 0 && assumptions] & /@ SingularValueList[mat2]
]
]
Simplify[Reduce[assumptions && rank1 == rank2], Assumptions -> assumptions]
(c! = 0 && ((a == c && b == c) || a + b + c == 0)) || (a + b == 0 && c == 0)