使用 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

要訪問或編輯以前的命令,請使用 ↑ (向上)鍵,該鍵移動到歷史記錄中的最後一項。在 ↓ 歷史上移動到下一個專案。該 ← 和 → 鍵可用於移動和進行編輯一條線。

朱莉婭有一些內建的數學常數,包括 epi(或π)。

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

在某些情況下可以使用 Rationals 完成精確算術:

julia> 1//10 + 2//10
3//10