Julia 复数型

Julia 复数型,复数与有理数类型一样,也是一个二元数,在高等数学与信号处理中经常涉及。Julia也内置了复数型,并提供了各种常用的运算。

复数同样是一个参数化的类型,其原型为:

Complex{T <: Real} <: Number

其中,Number是抽象类型,表示Complex是数值类型的一种;而{T<:Real}表示实部虚部的类型T可以是Real类型的任一种,包括各种浮点型整数型有理数Rational型无理数AbstractIrrational型(Irrational的父类型)等。

特别地,当T取Float16、Float32及Float64时,对应的复数型分别为Complex{Float16}Complex{Float32}Complex{Float64}。为了方便,Julia为它们提供了别名,即ComplexF16ComplexF32ComplexF64

在创建Complex数值对象时,也可以像整型、浮点型、有理数型那样以字面值的方式提供,格式为“实部+虚部im”。为了避免歧义,其中的虚部标识采用了im,对应于数学中的虚部单位i,例如:

julia> 1 + 2im
1 + 2im

如上所示,虚部可由数值紧跟im构成。

若没有提供虚部值,会默认为1,例如:

julia> 1+im
1+im

若不提供实部,则会默认为0,例如:

julia> 2im
0 + 2im

但如果使用变量提供虚部值,则需将变量与虚部单位明确的采用乘号表示出来,例如:
Julia 复数型

但是这种用乘号表示的复数并不推荐,因为很容易与常规的乘法冲突,所以建议使用函数complex()构造复数,例如:

julia> complex(a, b)
1 + 2im

该函数创建的Complex类型会由Julia自动确定。

当然也可以使用复数类型声明的构造方法创建Complex类型,例如:

julia> ComplexF32(1.0, 2.0)
1.0f0 + 2.0f0im

这种方式可以限定创建对象的类型。
正如类型的声明所述,除了整型与浮点型外,其他类型的实数也是可用于创建Complex对象的,例如:

julia> using Base.MathConstants
julia> complex(γ, π)
0.5772156649015329 + 3.141592653589793im

julia> typeof(ans)
Complex{Float64}    # 无理数Irrational型变成了浮点型

julia> complex(1//2, 2//3)
1//2 + 2//3*im

julia> typeof(ans)
Complex{Rational{Int64}}

在数学上,复数有着各种操作,比如求共轭,取绝对值,算模的值或相位角等,这些操作在Julia中也都可以实现,如表所示。
Julia 复数型

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!