如何知道 Complex 的结果有一个或多个实根

How to know the result of Complex has one or more real roots

我想用Complex来计算minus pow

因为使用 Math.Pow 的 $(-10)^(1/3)$ 将获得 NAN。

但是当我使用Complex.Pow时,我可以得到结果。

        Complex c = Complex.Pow(-10, 1.0/3);
        var r = c.Magnitude;//2.1544346900318843

但实际结果是-2.1544346900318843.

我不知道 Magnitude is Abs 的结果是肯定的。

我无法在 pow 的所有结果中添加 -1* 可以使结果为正。

(-10)^(2/3) 应该得到阳性结果。

如何判断结果为正,判断是否有真解?

参见:

--

编辑

(-10)^(2/3)

    Imaginary   4.0197338438308483  double
    Magnitude   4.6415888336127784  double
    Phase   2.0943951023931953  double
    Real    -2.3207944168063883 double

(-10)^(1/3)

    Imaginary   1.8657951723620641  double
    Magnitude   2.1544346900318843  double
    Phase   1.0471975511965976  double
    Real    1.0772173450159421  double

如何计算,见:https://en.wikipedia.org/wiki/De_Moivre%27s_formula

对于我来说,这进入数学领域有点过头了,但是幅度总是正的,因为它是一个绝对值。在复数的上下文中,幅度本身没有任何意义,因为在这种情况下,它在半径 r=2.1544... 的圆上包含无限数量的点。

相反,您需要同时使用幅值和自变量(角度),或者您可以使用实部和虚部。

如果角度在-90°和90°之间(0°在实轴上,逆时针方向),则实分量为正,对于0°和180°之间的角度,虚分量为正

在复数中,任何数都有三个立方根。
对于负数(负实部,无虚部),三个根是这样排列的

                                       X1  
                                      /  
                                     /  
                                    /  
                                   /
                    X2------------0  
                                   \  
                                    \  
                                     \  
                                      \  
                                       X3  

它们都具有相同的量级,实际上是距(0,0)==0+i0的距离。
X1和X3的实部相同,是X2实部的一半
X1和X3的虚部绝对值相同,符号不同
X2 没有虚部。 X2 的实部减去幅值。

所以,X2 的负实部不是量级。
根据定义,幅度对于所有根都是正的。

请注意,三个根的平方也不一定有正实部。
特别是第一个根的平方(X1),是数学正方向上的第一个,从正实轴开始。
没有虚部的复数的平方为正且没有虚部,但对于虚部非零的复数则不然。

                                 X1^2
                                   \  
                                    \  
                                     \  
                                      \  
                                       0------------X2^2  
                                      /  
                                     /  
                                    /  
                                   /
                                 X3^2

没有为完整数字定义属性 "positive"。它仅针对虚部和实部这两个部分中的每一个进行定义。
复数的大小总是 >=0。但是幅度不一定与复数的平方(或平方根)相同。 每个复数都有两个平方根。由于它们相隔 180°,其中一个始终具有负实部,另一个始终为正实部,或两者均为零。

是否存在一个或多个虚部为零且实部为正的根(这似乎是您说 "positive" 时的意思)是您必须通过检查每个根来检查的内容。您可以通过获得第一个根的所有幂 1..N-1(这是 X^(1/N) 的结果)来做到这一点。至少我不知道那个的捷径。
请注意(正如评论让我意识到的那样)计算出的数字不是根,但它们具有相同的相位,因此可以进行判断。

有两种典型的复数表示方式——笛卡尔形式或极坐标形式。

Cartesian Form
  c = real + imaginary * i
Polar Form
  c = r * exp(i * theta)

这里的 r 是幅度 (c.Magnitude),是与角度 (c.Phase) 一起描述复平面中的一个点的一个分量。

复数集没有定义排序。您可以询问实部是否为正。或者,您可以询问虚部是否为正数。

c.Real > 0
c.Imaginary > 0