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