5.7 数学函数速览

Julia 预定义了非常丰富的数学函数。一些常用的函数如下:

  • 数值类型转换: 主要有T(x)convert(T, x)。其中,T代表目的类型,x代表源值。
  • 数值特殊性判断:isequalisfiniteisinfisnan
  • 舍入: 有四舍五入的round(T, x)、向正无穷舍入的ceil(T, x)、向负无穷舍入的floor(T, x),以及总是向0舍入的trunc(T, x)
  • 除法:cld(x, y)fld(x, y)div(x, y),它们分别会将商向正无穷、负无穷和0做舍入。其中的x代表被除数,y代表除数。另外,与之相关的还有取余函数rem(x, y)和取模函数mod(x, y),等等。
  • 公约数与公倍数: 函数gcd(x, y...)用于求取最大正公约数,而函数lcm(x, y...)则用于求取最小正公倍数。圆括号中的...的意思是,除了xy,函数还允许传入更多的数值。但要注意,这里的数值都应该是整数。
  • 符号获取: 函数sign(x)signbit(x)都用于获取一个数值的符号。但不同的是,前者对于正整数、0和负整数会分别返回10-1,而后者会分别返回falsefalsetrue
  • 绝对值获取: 用于获取绝对值的函数是abs(x)。一个相关的函数是,用于求平方的abs2(x)
  • 求根: 函数sqrt(x)用于求取x的平方根,而函数cbrt(x)则用于求取x的立方根。
  • 求指数: 函数exp(x)会求取x的自然指数。另外还有expm1(x),为接近0x计算exp(x)-1
  • 求对数: log(x)会求取x的自然对数,log(b, x)会求以b为底的x的对数,而log2(x)log10(x)则会分别以210为底求对数。另外还有log1p(x),为接近0x计算log(1+x)

除了以上函数之外,Julia 的Base包中还定义了很多三角函数和双曲函数,比如sincosatanhacoth等等。另外,在SpecialFunctions.jl里还有许多特殊的数学函数。不过这个包就需要我们手动下载了。