พิจารณาสมการเมทริกซ์อย่างง่ายนี้:
from sympy import *
c_a, s_a = symbols('c_a s_a')
k_1, k_2, k_3, k_4, k_5, k_6 = symbols('k_1 k_2 k_3 k_4 k_5 k_6')
x,y,z = symbols('x y z')
equation = Eq(MatrixSymbol('R',4,4), Matrix([
[ c_a*k_1 - k_1 + 1, -c_a*k_4 + k_4 - s_a*z, -c_a*k_5 + k_5 + s_a*y, 0],
[-c_a*k_4 + k_4 + s_a*z, c_a*k_2 - k_2 + 1, -c_a*k_6 + k_6 - s_a*x, 0],
[-c_a*k_5 + k_5 - s_a*y, -c_a*k_6 + k_6 + s_a*x, c_a*k_3 - k_3 + 1, 0],
[ 0, 0, 0, c_a + s_a]]))
ฉันพยายามลดความซับซ้อนมาระยะหนึ่งแล้วโดยไม่ประสบความสำเร็จ... อย่างที่คุณเห็นว่ามีการแยกตัวประกอบที่เป็นไปได้มากมาย (เช่น: k_1*(c_a-1), k_4(1-c_a), ...
) ฉันได้ลองใช้วิธีการที่มีอยู่หลายวิธีแล้วที่ Sympy ต้องลดความซับซ้อนของ https://docs.sympy.org/latest/tutorial/simplification.html แต่ไม่มีโชค... ปัจจัย, ลดความซับซ้อน, รวบรวม, Applyfuncs(factor), simplifiy(force=True) เป็นต้น
ฉันเป็นมือใหม่ที่มีความเห็นอกเห็นใจ ดังนั้นอาจมีวิธีที่ชัดเจนในการทำให้สมการประเภทนี้ง่ายขึ้น หากเป็นเช่นนั้น ทำอย่างไร
นอกจากนี้ ฉันแค่สนใจที่จะทำให้ rhs
ของสมการง่ายขึ้น ไม่ใช่ lhs
เป็นไปได้ไหมที่จะลดความซับซ้อนของสิ่งใดสิ่งหนึ่งหรือทั้งสองอย่าง?