繁体   English   中英

无限乘法的奇异规则

[英]Strange rules for complex multiplication with Infinity

在MATLAB中遵循矛盾的结果有什么解释吗?

>> Inf*0
ans =
   NaN

>> Inf*(0+1i)
ans =
            0 +        Infi

是一个错误还是对此有任何解释?

更新

有趣的是,MATLAB,Maple和Mathematica都给出相同的结果。 但是编程语言遵循不同的哲学。 例如,检查C99附件G 5.1.6。 FORTRAN也一样。 备受推崇的GNU MPC库也提供了NaN + Inf * i。

我的结论是,对于复杂的操作,我们可能需要更好的统一语义,对于复杂的无穷大,可能需要单独的概念。

这不是矛盾的行为,因为0+1i是一个数字,尽管很复杂。 因此, Inf不会分发。 并且由于0+1i的大小不为0 ,因此将其乘以Inf具有定义的行为; 在这种情况下无限大。 显然,算术是这样的,即无穷大仅是显式复杂的,但它致力于研究复杂平面中的无穷大,这本身就是一个有趣的讨论

如果将数字更改为零幅度的数字,则将具有相同的(真实)行为:

>> Inf*(1+0i)   % Real with magnitude 1
ans =
   Inf

>> Inf*(0+1i)   % Imaginary with magnitude 1
ans =
   0.0000 +    Infi

>> Inf*(1/sqrt(2)+1i/sqrt(2))  % Complex with magnitude 1
ans =
      Inf +    Infi

>> Inf*(0+0i)  % Imaginary with magnitude 0
ans =
   NaN

Inf分别乘以00i也会产生NaN

>> Inf*0+Inf*0i
ans =
   NaN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM