以下是MACSYMA表达式
eq1: a*x - b*y = 0;
eq2: c*x +d*z = 0;
eq3: y+z = 0;
subst([eq1,eq2],[eq3]);
取消普通 x 后,我期望结果为
a/b = c/d
。
但是我没有得到预期的结果。和 MACSYMfl 也无法从左右两侧取消常用术语。
如何解决这个问题?
IIUC,你想要的是求解 y 的 eq1,z 的 eq2,并将这些值代入 eq3。如果我用手做,我会得到
(%i14) solve(a*x-b*y=0,y);
a x
(%o14) [y = ---]
b
(%i15) solve(c*x+d*z=0,z);
c x
(%o15) [z = - ---]
d
(%i16) %o14+%o15;
a x c x
(%o16) [z + y = --- - ---]
b d
由于
z+y = 0
,a*x/b-c*x/d
为零,这会产生你的
想要的a/b=c/d
。
执行此操作的一种方法是使用
eliminate
:
(%i24) eliminate([eq1,eq2,eq3],[y,z]);
(%o24) [- (b c - a d) x]
将其设置为零会使
b*c-a*d
为零,这相当于
你所期望的a/b=c/d
。