如何知道 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
对于我来说,这进入数学领域有点过头了,但是幅度总是正的,因为它是一个绝对值。在复数的上下文中,幅度本身没有任何意义,因为在这种情况下,它在半径 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
我想用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
对于我来说,这进入数学领域有点过头了,但是幅度总是正的,因为它是一个绝对值。在复数的上下文中,幅度本身没有任何意义,因为在这种情况下,它在半径 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