gpt4 book ai didi

matlab - 无穷大复数乘法的奇怪规则

转载 作者:行者123 更新时间:2023-12-02 08:24:48 26 4
gpt4 key购买 nike

在 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 具有定义的行为;在这种情况下无限大。显然,该算法使得无穷大仅显式复杂,但它深入研究了复平面中的无穷大,即 interesting discussion。靠自己。

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

>> 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

关于matlab - 无穷大复数乘法的奇怪规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com