Mathematica处理复数问题的基本方法
1、平面上,一个向量对应复平面上一个复数,比如,给出向量{a,b},对应的复数就是:
x = {a, b};
X = x[[1]] + I x[[2]]

2、对于给定的复数,可以分别给出实部和虚部:
Re[5 + 3 I]
Im[5 + 3 I]

3、ReIm就是把Re和Im的功能组合起来了:
ReIm[5 + 3 I]

4、给出一个特定复数的共轭复数:
Conjugate[5 + 6 I]

5、求复数的模长,用Abs或Norm:
Abs[5 + 12 I]
Norm[5 + 12 I]

6、如果是待定复数,当如何处理呢?比如,求a+b I的实部和虚部、共轭复数、模长:
ReIm[a + b I]
Conjugate[a + b I]
Norm[a + b I]
Abs[a + b I]
结果,Mathematica把a和b当成复数来对待了。

7、如果提前约定a和b都是实数,或许就会好一点:
Assuming[(a \[Element] Reals && b \[Element] Reals), ReIm[a + b I]]
Assuming[(a \[Element] Reals && b \[Element] Reals),
Conjugate[a + b I]]
Assuming[(a \[Element] Reals && b \[Element] Reals), Abs[a + b I]]
Assuming[(a \[Element] Reals && b \[Element] Reals), Norm[a + b I]]
然而没什么用,这是怎么回事?

8、网友BeerRabbit-Math-SH 告诉我,用Refine就可以解决这个问题,这个方法是对的:
Refine[ReIm[a + b I], (a \[Element] Reals && b \[Element] Reals)]
Refine[Conjugate[a + b I], (a \[Element] Reals && b \[Element] Reals)]
Refine[Abs[a + b I], (a \[Element] Reals && b \[Element] Reals)]
Refine[Norm[a + b I], (a \[Element] Reals && b \[Element] Reals)]
但是要注意,Abs在这里失效了。
