我无法找到如何执行此操作:
x=a+b
y=c+d
z=x*y
我希望输出为
z=ac+ad+bc+bd
不
z=xy
答案 0 :(得分:7)
喜欢这个吗?
(%i1) x: a+b;
(%o1) b + a
(%i2) y: c+d;
(%o2) d + c
(%i3) z: x*y;
(%o3) (b + a) (d + c)
(%i4) z: expand (z);
(%o4) b d + a d + b c + a c
(%i5)
最大值的分配是通过:,而不是=(用于检查相等性)
答案 1 :(得分:2)
实际上,要获得他要求的输出而不分配很多变量, 你可以这样做:
(%i1) z = x*y, x = a+b, y = c+d, expand;
(%o1) z = b d + a d + b c + a c
答案 2 :(得分:1)
这是一个老问题,但我认为规范的解决方案是subst()函数