Julia 编程 - 有理数和复数

在本章中,我们将讨论有理数和复数。

有理数

Julia 借助有理数类型表示整数的精确比率。 让我们在后续章节中了解 Julia 中的有理数 −

构造有理数

在 Julia REPL 中,有理数是使用运算符 // 构造的。 下面给出的是相同的示例 −

julia> 4//5
4//5

您还可以按如下方式提取标准化分子和分母 −

julia> numerator(8//9)
8

julia> denominator(8//9)
9

转换为浮点数

将有理数转换为浮点数非常容易。 看看下面的例子 −

julia> float(2//3)
0.6666666666666666
Converting rational to floating-point numbers does not loose the following identity for any integral values of A and B. For example:

julia> A = 20; B = 30;

julia> isequal(float(A//B), A/B)
true

复数

众所周知,全局常数 im 表示 -1 的主平方根,它与复数绑定。 Julia 中的这种绑定足以为复数提供方便的语法,因为 Julia 允许数字文字与作为系数的标识符进行对比。

julia> 2+3im
2 + 3im

执行标准算术运算

我们可以对复数执行所有标准算术运算。 下面给出示例 −

julia> (2 + 3im)*(1 - 2im)
8 - 1im

julia> (2 + 3im)/(1 - 2im)
-0.8 + 1.4im

julia> (2 + 3im)+(1 - 2im)
3 + 1im

julia> (2 + 3im)-(1 - 2im)
1 + 5im

julia> (2 + 3im)^2
-5 + 12im

julia> (2 + 3im)^2.6
-23.375430842463754 + 15.527174176755075im

julia> 2(2 + 3im)
4 + 6im

julia> 2(2 + 3im)^-2.0
-0.059171597633136105 - 0.14201183431952663im

组合不同的操作数

Julia 中的提升机制确保组合不同类型的运算符可以在复数上正常工作。 让我们借助以下示例来理解它 −

julia> 2(2 + 3im)
4 + 6im

julia> (2 + 3im)-1
1 + 3im

julia> (2 + 3im)+0.7
2.7 + 3.0im

julia> (2 + 3im)-0.7im
2.0 + 2.3im

julia> 0.89(2 + 3im)
1.78 + 2.67im

julia> (2 + 3im)/2
1.0 + 1.5im

julia> (2 + 3im)/(1-3im)
-0.7000000000000001 + 0.8999999999999999im

julia> 3im^3
0 - 3im

julia> 1+2/5im
1.0 - 0.4im

操作复数值的函数

在 Julia 中,我们还可以借助标准函数来操作复数的值。 下面给出了一些相同的例子 −

julia> real(4+7im) #复数的实部
4

julia> imag(4+7im) #复数的虚部
7

julia> conj(4+7im) #复数的共轭
4 - 7im

julia> abs(4+7im) #复数的绝对值
8.06225774829855

julia> abs2(4+7im) #绝对值的平方
65

julia> angle(4+7im) #相位角(弧度)
1.0516502125483738

让我们在下面的示例中看看复数的初等函数的使用 −

julia> sqrt(7im) #虚部的平方根
1.8708286933869707 + 1.8708286933869707im

julia> sqrt(4+7im) #复数的平方根
2.455835677350843 + 1.4251767869809258im

julia> cos(4+7im) #复数的余弦
-358.40393224005317 + 414.96701031076253im

julia> exp(4+7im) #复数的指数
41.16166839296141 + 35.87025288661357im

julia> sinh(4+7im) #复数的双曲正弦值
20.573930095756726 + 17.941143007955223im