Julia 中的复数
Julia 内置支持复数类型 Complex{T}
,其中 T
为实数类型(如 Float64
、Int32
)。复数可以通过字面量或构造函数创建:
z1 = 3 + 4im # 字面量创建,`im`表示虚数单位
z2 = Complex(3, 4) # 构造函数创建
复数运算支持算术操作(加减乘除)、共轭(conj(z)
)、模(abs(z)
)和相位角(angle(z)
):
z = 1 + 2im
real(z) # 实部 → 1
imag(z) # 虚部 → 2
abs(z) # 模 → √5
angle(z) # 相位角(弧度)→ ≈1.107
Julia 中的有理数
有理数类型 Rational{T}
表示分数,通过 //
运算符或构造函数创建:
r1 = 3 // 4 # 字面量形式
r2 = Rational(3, 4) # 构造函数
有理数自动约分,支持算术运算和比较:
numerator(r1) # 分子 → 3
denominator(r1) # 分母 → 4
float(r1) # 转换为浮点数 → 0.75
类型提升与转换
复数和有理数参与混合运算时,Julia 会自动进行类型提升:
1 + 2im + 1.5 # 提升为 `Complex{Float64}`
1 // 2 + 0.5 # 提升为 `Float64`
显式转换可通过构造函数实现:
Complex(1.0, 2.0) # 显式指定类型
Rational(1.5) # 浮点数转有理数(需可精确表示)
性能优化
为提升性能,Julia 允许指定具体类型参数:
z::Complex{Float64} = 1.0 + 2.0im
r::Rational{Int32} = 3 // 4
数学函数支持
Julia 的数学函数(如 sqrt
、exp
)支持复数输入,有理数运算保持精确性:
sqrt(-1 + 0im) # → 0.0 + 1.0im
1 // 3 + 1 // 6 # → 1 // 2