在千里马,我有一个类似的公式:
eq : c0*a + d0*a + c1*b - c2*p - c4*q = c5*r
是否有命令允许我到达:
(c0 + d0)*a + c1*b = c2*p + c4*q + c5*r
简而言之,我想选择哪些变量在左侧或右侧结束,我想写它,这样我只选择了一个变量(在这种情况下是a,b,p,q) ,r)。
答案 0 :(得分:2)
或许coefmatrix
对此很有用。
(%i1) display2d : false $
(%i2) eq : c0*a + d0*a + c1*b - c2*p - c4*q = c5*r $
(%i3) vars : [a, b, p, q, r] $
(%i4) coeffs : coefmatrix ([eq], vars);
(%o4) matrix([d0+c0,c1,-c2,-c4,-c5])
(%i5) coeffs . vars;
(%o5) (-c5*r)-c4*q-c2*p+a*(c0+d0)+b*c1
请注意,coefmatrix
的两个参数都必须是列表。