Julia系列:编程初步数组
Julia作为主打数值计算的编程语言,对一些常用的计算函数提供了非常细致的支持,十分人性化,体验之后爱不释手。
在Juli中,用im
后缀表示虚部,1+2i可表示如下
1 + 2im
但相比之下,用函数complex(1,2)
来创建会更加高效,通过reim
可将复数转换为实数数组的形式。
Julia提供了一些复数中必备的函数
实部 | 虚部 | 模长 | 共轭 | 相位角 | 极坐标形式 |
---|---|---|---|---|---|
real |
imag |
abs |
conj |
angle |
cis , cispi |
其中,极坐标形式即 r exp ( i θ ) r\exp(i\theta) rexp(iθ),示例如下
z = complex(3,4)
cis(z) # -0.018132345070290157 + 0.002584703107599785im
cispi(z) # -3.4873373806476593e-6 + 0.0im
Julia中除了提供常见的+,-,*,/
运算符之外,对除法进行了扩充,包括除号除法÷
,以及从右向左除/
,当然也支持求余%
。这些运算符都可以当作函数使用,其中加法和乘法支持多个变量。
+(1,2,3) # 6
-(3,5) # -2
此外,Julia还提供了一些与除法相关的函数,
inv(x)
= one(x) / x
div(x,y)
= x/y
的整数部分fld(x,y)
= x/y
向下取整cld(x,y)
= x/y
向上取整mod(x,y), rem(x,y)
取余数mod2pi(x), rem2pi(x)
x / ( 2 π ) x/(2\pi) x/(2π)的余数Julia中乘方用^
表示
3^2 # 9
除了这些基础的运算,Julia还提供了两个复合计算函数
fma(x,y,z)
=x*y+z
muladd(A, y, z)
= A*y .+ z
Julia作为科学计算语言,对三角函数的实现本着宁多勿缺的原则,提供了弧度制三角函数、角度制三角函数,甚至还提供了 π \pi π的倍数的三角函数,并且实现了联合三角函数
类别 | 函数 |
---|---|
弧度制三角函数 | cos, sin, tan, sec, cec, cot, sincos |
角度制三角函数 | cosd, sind, tand, secd, cecd, cot, sincosd |
弧度制反三角函数 | acos, asin, atan, asec, acec, acot |
角度制反三角函数 | acosd, asind, atand, asecd, acecd, acotd |
双曲函数 | cosh, sinh, tanh, sech, cech, coth |
反双曲函数 | acosh, asinh, atanh, asech, acech, acoth |
π \pi π倍数 | cospi, sinpi, sincospi |
其中,sincos(x)=(sin(x), cos(x))
。
在Julia中,pi
即 π \pi π,且通过deg2rad
和rad2deg
可实现弧度和角度之间的转换,非常便捷。
下面做个简单的示例,注意输入参数为数组时,需要在函数后面加个.
using Plots
th = 0:0.1:2
plot(cospi.(th), sinpi.(th))
Julia中提供了下面一系列指数、对数以及取整函数
类别 | 函数 |
---|---|
幂函数 | exp , sqrt |
对数函数 | log10 , log2 , log(z) = ln z \ln z lnz, |
log(x,y) = log y x \log_yx logyx, log1p(x) = ln ( 1 + x ) \ln(1+x) ln(1+x) |
|
取整 | 向上ceil , 向下floor ,实值向下取整trunc |
isqrt(x) 相当于floor(sqrt(x)) |
示例如下
log(2.7) # 0.9932517730102834
log(2, 8) # 3.0
log2(8) # 3.0