Julia 复数和有理数

Julia 中的复数

Julia 内置支持复数类型 Complex{T},其中 T 为实数类型(如 Float64Int32)。复数可以通过字面量或构造函数创建:

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 的数学函数(如 sqrtexp)支持复数输入,有理数运算保持精确性:

sqrt(-1 + 0im)  # → 0.0 + 1.0im
1 // 3 + 1 // 6 # → 1 // 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值