我想开发一个表达式,如| a + b + c | ^ 2。我试过命令"扩大"但它不起作用。 (它没有模数工作)
答案 0 :(得分:0)
问题是expand
无法识别a
,b
和c
是正还是负。所以,你明确说明expand
将按照应有的方式运作。
restart:
A:=abs(a+b+c)^2;
assume(a>0,b>0,c>0):expand(A);
A ^ 2 + 2 * A * B + 2 * A * C + B ^ 2 + 2 * B * C + C ^ 2
如果
assume(a>0,b>0,c<0):
然后使用
expand(simplify(A))
现在,让我们取三个复数,然后取其模数平方,
B:=abs((a1+b1*I)+(a2+b2*I)+(a3+b3*I))^2;
再次出现与上述相同的问题。
assume(a1>0,b1<0,a2>0,b2<0,a3<0,b3>0):expand(simplify(B));
A1 ^ 2 + 2 * A1 * A2 + 2 * A1 * A3 + A2 ^ 2 + 2 * A2 * A3 + A3 ^ 2 + B1 ^ 2 + 2 * B1 * B2 + 2 * B1 * B3 + B2 ^ 2 + 2 * B2 * B3 + B3 ^ 2
最后,为a's
和b's
分配一些随机值并找出模数,
subs(a1=1,a2=1,a3=1,b1=1,b2=2,b3=3,B);