使用 REPL 作为计算器
Julia REPL 是一款出色的计算器。我们可以从一些简单的操作开始:
julia> 1 + 1
2
julia> 8 * 8
64
julia> 9 ^ 2
81
ans
变量包含上次计算的结果:
julia> 4 + 9
13
julia> ans + 9
22
我们可以使用赋值 =
运算符定义我们自己的变量:
julia> x = 10
10
julia> y = 20
20
julia> x + y
30
Julia 对数字文字有隐式乘法,这使得一些计算编写得更快:
julia> 10x
100
julia> 2(x + y)
60
如果我们犯了一个错误并做了一些不允许的事情,那么 Julia REPL 会抛出错误,通常会提供有关如何解决问题的有用提示:
julia> 1 ^ -1
ERROR: DomainError:
Cannot raise an integer x to a negative power -n.
Make x a float by adding a zero decimal (e.g. 2.0^-n instead of 2^-n), or write
1/x^n, float(x)^-n, or (x//1)^-n.
in power_by_squaring at ./intfuncs.jl:82
in ^ at ./intfuncs.jl:106
julia> 1.0 ^ -1
1.0
要访问或编辑以前的命令,请使用 ↑ (向上)键,该键移动到历史记录中的最后一项。在 ↓ 历史上移动到下一个项目。该 ← 和 → 键可用于移动和进行编辑一条线。
朱莉娅有一些内置的数学常数,包括 e
和 pi
(或π
)。
julia> e
e = 2.7182818284590...
julia> pi
π = 3.1415926535897...
julia> 3π
9.42477796076938
按:我们可以快速地使用他们的 LaTeX 的代码类型像π
字符 \ ,然后 p 和 i,然后点击 Tab 键来代替刚才输入与π
的\pi
。这适用于其他希腊字母和其他 unicode 符号。
我们可以使用 Julia 的任何内置数学函数,范围从简单到相当强大:
julia> cos(π)
-1.0
julia> besselh(1, 1, 1)
0.44005058574493355 - 0.7812128213002889im
使用 im
作为虚构单元支持复数:
julia> abs(3 + 4im)
5.0
有些函数不会返回复杂的结果,除非你给它一个复杂的输入,即使输入是真的:
julia> sqrt(-1)
ERROR: DomainError:
sqrt will only return a complex result if called with a complex argument. Try
sqrt(complex(x)).
in sqrt at math.jl:146
julia> sqrt(-1+0im)
0.0 + 1.0im
julia> sqrt(complex(-1))
0.0 + 1.0im
使用//
有理除法运算符可以对有理数进行精确运算:
julia> 1//3 + 1//3
2//3
有关 Julia 支持哪种算术运算符的更多信息,请参阅算术主题。
处理机器精度
请注意,机器整数的大小受到限制,如果结果太大而无法存储,则会溢出 :
julia> 2^62
4611686018427387904
julia> 2^63
-9223372036854775808
这可以通过在计算中使用任意精度整数来防止:
julia> big"2"^62
4611686018427387904
julia> big"2"^63
9223372036854775808
机器浮点的精度也有限:
julia> 0.1 + 0.2
0.30000000000000004
再次使用 big
可以获得更多(但仍然有限)的精度:
julia> big"0.1" + big"0.2"
3.000000000000000000000000000000000000000000000000000000000000000000000000000017e-01
在某些情况下可以使用 Rational
s 完成精确算术:
julia> 1//10 + 2//10
3//10