1、直接用Mathematica给出Sqrt[所鼙艘疯z]的显式实部和虚部,是行不通的,即使严格指定a和b是实数,也不行:Sqrt[a + b I] // ReI罪焐芡拂mRefine[ReIm[Sqrt[a + b I]], Element[{a, b}, Reals]]
2、假设Sqrt[z]=x+y*I,其中x和y是实数,那么必有:z=(x+y*I)^2展开,有:(x + y*I)^2 // Expand
3、注意了:a+b*I=x^2 - y^2+ 2*I*x*y等式两边的实部和虚部应该分别相等,这就确定一个方程组。解这个方程耘资诡拨组:sol=Solve[{x^2 - y^2 == a, 2 x y == b}, {x, y}] // FullSimplify
4、得到四组解,但是注意到x必须是实数。.而当a和b都是非零实数的时候,Sqrt[a - Sqrt[a^2 + b^2]]不是实数。因此可以把前两个解排除:sol=S泠贾高框olve[{x^2 - y^2 == a, 2 x y == b}, {x, y}][[3;;]] // FullSimplify
5、这样,复数的二次开方Sqrt[z],得到两个不同的复数,它们的实部和虚部,分别如下:sol// Values
6、这两个点是关于原点对称的:
7、读者可能会有疑问:Sqrt[z]对应两个复数,那么-Sqrt[z]也对应两个复数。如此一来,岂不是有四个复数了?其实,还是两个,因为Sqrt[z]和-Sqrt[z]也关于原点对称啊。