Julia 无穷值

Julia 无穷值,在数学理论中,常规浮点数仅仅是实数集合的一部分,而非全部,还有两个我们无法忽略的边界值,即正无穷大和负无穷大。无穷值在数学上是有意义的,在区间表达或求极限值时经常会遇到。最为常见的情况是除数为零,此时在数学中便对应于无穷值,但在C++、Java等常见的语言中会报出异常,甚至会导致程序陡然崩溃。

但在Julia中,无穷值是正常的浮点数,有着常规浮点数同样的地位,也是浮点型的实例对象,同样可以参与各种计算。所以,除零计算在Julia是正常的操作,不会有任何问题。按照浮点型的不同,Julia分别定义了三对无穷值,具体如表所示。
Julia 无穷值

在64位系统中,Inf等价于Inf64而-Inf等价于-Inf64值

需要明确的是,不论是正无穷大还是负无穷小,Julia中定义的无穷值都不是一种类型,而是浮点型的数值常量。可以通过typemin()typemax()函数查看无穷值在浮点数集合中所处的位置,例如:

julia> typemin(Float64)
-Inf

julia> typemax(Float32)
Inf32

julia> typemin(Float16)
-Inf16

可见它们与前文定义的常规浮点型同处于实数轴上,而且是对应着浮点类型表达范围的极限。

有了对无穷值的支持,Julia中的浮点运算就可以正常地使用除零操作了,例如:

julia> 1.2/0
Inf

julia> -1.2/0.0
-Inf

julia> Float32(9)/zero(Float16)
Inf32

julia> Float16(9)/zero(Float64)
Inf

julia> typeof(ans)
Float64

实际上,这种操作在数学中也是有意义的。

如果要获知某个变量或值是否是无穷值,可通过isfinite()isinf()函数进行判断,例如:
Julia 无穷值

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!