2

これを行う方法を見つけるのに苦労しています:

x=a+b
y=c+d
z=x*y

出力を

z=ac+ad+bc+bd

いいえ

z=xy
4

3 に答える 3

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) 

maxima での割り当ては、= ではなく : によって行われます (これは等しいかどうかのチェックに使用されます)。

于 2011-05-27T09:49:00.400 に答える
2

実際、多くの変数を割り当てずに彼が要求している出力を取得するには、次のようにするだけです。

(%i1) z = x*y, x = a+b, y = c+d, expand;
(%o1) z = b d + a d + b c + a c
于 2013-07-18T17:54:30.763 に答える
1

これは古い質問ですが、私の意見では標準的な解決策は subst() 関数です

于 2013-10-04T17:18:58.703 に答える