跳至內容

模組:Complex Number/Calculate/doc

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

此頁面為 Module:Complex Number/Calculate 的說明文件

使用方法

項目 語法 說明 範例
數字的表達
實數
+或-實數值、
科學記號
+或-實數值e+或-科學記號值、
含單位的數
+或-實數值單位或
含常數單位
任何數值表達式  ⋅  常數或單位的表達式
數字的表達可分為實數表達、科學記號和含單位的數。
  • 實數表達即一般的實數;
  • 科學記號為一實數緊接著一個 e 和一個整數,例如實數值e整數值則代表實數值×10整數值;
  • 另一個表達方式為一個實數值緊接著一個複變單位或角度單位,例如2i表示兩倍的虛數單位。此表達式不能與科學記號一同使用。能使用的單位包括i、j、k、°和π。其餘需使用 ⋅ 運算子來表達。
  • +2.735→2.735
  • -2735e-3→-2.735
  • 2.735i→2.735i
  • -180°→-3.1415926535898
四則運算與冪運算 運算式 運算符 運算式 依序以中綴表示法表達運算式即可。 2+3*5^2→77
函數 函數 ( 參數1, 參數2 ...) 調用現有函數。所有函數都至少要傳入一個參數。 factorial(5)→120
多組運算 運算式1 ; 運算式2 僅會顯示最後一組運算的結果 2+3;2*3→6
變數定義 變數名稱 ← 運算式 給特定名稱的變數賦值。需特別注意所有變數的範圍(Scope)皆相同(可想像所有變數皆為全域變數),包括函數中的參數,因此若函數外層已經定義了變數x則函數內部需避免使用同名變數x。 x←5;x→5
函數定義 函數名稱 : 參數1, 參數2 ...↦ 函數運算式 ; 函數的語法為以名稱起始並以冒號區隔函數名稱與定義(函數名稱可留空,但冒號不能省去),整個語法要以分號(;)結尾。位於映射符號(↦)前方為函數的變數或參數,後方為函數主體定義,即 f : x ↦ f (x) ; 。函數可以有多個變數,但僅能有單個輸出,即ℂn↦ℂ或ℝn↦ℝ。同時函數語法不建議寫成嵌套結構,即不建議將函數定義內包含另一個函數的定義,但可以分開定義再行組合;此外,函數定義內不能包含分號,因為分號會視為函數的結尾。 f:x↦x^2+1;(0);f(5) →26
運算符優先序調整 (運算式 要優先計算的運算符 運算式) 運算符 運算式 使用括號來令特定運算優先進行。
  • 2+3*5→17
  •  ( 2+3 ) *5→25

運算符

語法 名稱 元數 說明 優先 範例 效果 math輸出
基礎算術
+
2
計算兩數之和
9
7 + 3
10
7+3
-
2
計算兩數之差
9
7 - 3
4
7−3
*
2
計算兩數之乘積
10
7 * 3
21
7×3
×
2
計算兩數之乘積
10
7 × 3
21
7×3
/
2
計算兩數相除之商
10
7 / 3
2.3333333333333
7÷3
÷
2
計算兩數相除之商
10
7 ÷ 3
2.3333333333333
7÷3
%
2
計算兩數相除之餘數
10
7 % 3
1
^
2
計算兩數之冪運算
12
7 ^ 3
343
73
e
2
當e左鄰一實數、右鄰一整數時,則為科學記號,以256e-3為例,其代表的結果為256×10−3。要注意的是左邊的數必為單一實數、右邊的數必為整數,可為負數,且中間不能有空格。
∞
12.3e4
123000
12.3×104
()
1
改變運算優先順序
∞
2*(2+3)
10
2×(2+3)
數論
+
1
表達一正數
14
+7
7
7
-
1
計算一數的相反數
14
-7
-7
−7
%
2
計算兩數相除之餘數
10
7 % 3
1
布爾代數
&
2
兩邏輯是否皆為真
5
(1=1) & (1=2)
0
(1=1)∧(1=2)
↑
2
兩邏輯是否不全為真
5
(1=1) ↑ (1=2)
1
(1=1)↑(1=2)
|
2
兩邏輯是否有一者為真
4
(1=1) | (1=2)
1
(1=1)∨(1=2)
↓
2
兩邏輯是否全為假
4
(1=1) ↓ (1=2)
0
(1=1)↓(1=2)
⊕
2
兩邏輯是否相異
4
(1=1) ⊕ (1=2)
1
(1=1)⊕(1=2)
⇔
2
兩邏輯是否相同
4
(1=1) ⇔ (1=2)
0
(1=1)↔(1=2)
~
1
邏輯否定
13
~(1=2)
1
¬(1=2)
and
2
邏輯且的字母模式。使用時須與前後文各間隔至少一個空格
5
(1=1) and (1=2)
0
(1=1)∧(1=2)
nand
2
邏輯與非的字母模式。使用時須與前後文各間隔至少一個空格
5
(1=1) nand (1=2)
1
(1=1)↑(1=2)
or
2
邏輯或的字母模式。使用時須與前後文各間隔至少一個空格
4
(1=1) or (1=2)
1
(1=1)∨(1=2)
nor
2
邏輯或非的字母模式。使用時須與前後文各間隔至少一個空格
4
(1=1) nor (1=2)
0
(1=1)↓(1=2)
xor
2
邏輯異或的字母模式。使用時須與前後文各間隔至少一個空格
4
(1=1) xor (1=2)
1
(1=1)⊕(1=2)
xnor
2
邏輯若且唯若的字母模式。使用時須與前後文各間隔至少一個空格
4
(1=1) xnor (1=2)
0
(1=1)↔(1=2)
not
1
邏輯非的字母模式。使用時須與前後文各間隔至少一個空格
13
not (1=2)
1
¬(1=2)
數值修約
round
2
round 的運算子模式,會將一數四捨五入到指定的位數。使用時須與前後文各間隔至少一個空格
8
π round 6
3.141593
round⁡(π,6)
代數
⋅
2
表達一數的係數
10
2⋅π
6.2831853071796
2π
←
2
給予變數數值
7
x ← 7;x
7
x=def7;x
↦
2
給予函數定義
12
:x,y↦x^2+y^2;(5,2)
29
((x,y)↦(x2+y2))←(5,2)
:
構成函數
2
冒號(:)為定義函數時區隔函數的名稱與函數的主體,而冒號(:)與分號(;)的區間構成一個函數的定義。在冒號左邊的內容為函數的名稱,在冒號右邊的內容為函數的內容。若函數沒有名稱也需要輸寫冒號。
7
f:x↦x^2;(5)
25
(f:x↦(x2))←5
,
2
產生數組供多元函數使用
1
7, 3
7, 3
7,3
複變
*
1
計算一數的共軛複數
14
*(7+3i)
7-3i
7+3i‾
i
1
表達純虛數
∞
3i
3i
3i
二元關係
>
2
比較兩數大小
6
7 > 3
1
7>3
<
2
比較兩數大小
6
7 < 3
0
7<3
≥
2
比較兩數大小
6
7 ≥ 3
1
7≥3
≤
2
比較兩數大小
6
7 ≤ 3
0
7≤3
=
2
兩數是否相等
3
7 = 3
0
7=3
≠
2
兩數是否不相等
3
7 ≠ 3
1
7≠3
技術性
;
2
分隔兩運算式,結果將取最後一個分號後的結果
1
7 ; 3
3
7;3
return
1
返回數值。需注意return後方必須跟著一個數值或表達式,否則會變成未定義行為而出現預期外的結果。
2
return 7;8
7
return7;8
三角函數
°
1
用於表示角度單位的符號。
10
180°
3.1415926535898
180∘
π
1
表示圓周率。
10
3π
9.4247779607694
3π
註:另有>=、<=、==(相等判斷)、~=(不相等判斷)、!=(不相等判斷)、@=(數值指派)、+=(相加指派)、-=(相減指派)、*=(相乘指派)、/=(相除指派)、^=(冪指派)、&=(邏輯與指派)、|=(邏輯或指派)可供使用,其會自動替換為上表中對應的運算元。指派運算元須注意等號左邊必須是一個單一變數詞語,不可以是括弧或函數變換的結果。

常數和數值

語法 名稱 別名 說明 數值 math輸出
e 自然底數 自然對數函數的底數 2.718281828459 e
i 虛數單位 表達純虛數 i i
j 四元數單位j 表達純四元數虛數j j j
k 四元數單位k 表達純四元數虛數k k k
nan 非數 用於表示數學上未定義的數值,或計算發生錯誤的數值。 nan NaN
nil 空值 null 空值。在math模式下顯示為空白,用於表達或傳遞無參數的函數之參數。請注意,由於此值為空值,因此請勿將此值參與運算,以免發生錯誤。 nil
° 角度單位 用於表示角度單位的符號。 0.017453292519943 ∘
π 圓周率 pi 表示圓周率。 3.1415926535898 π
ω 艾森斯坦整數單位 表達艾森斯坦整數單位。 -0.5+0.86602540378444i

函數

語法 名稱 參數
數量
說明 範例 效果 math輸出
基礎算術
div
2
用於在math輸出時,以分數的形式顯示
div(7,3)
2.3333333333333
73
dot
2
計算兩數的內積。
dot(7,3)
21
7⋅3
pow
2
計算兩數之冪運算
pow(7,3)
343
73
數論
gcd
不定
計算多個數的最大公因數。
gcd(7,21)
7
gcd⁡(7,21)
lcm
不定
計算多個數的最小公倍數。
lcm(7,3,21)
21
lcm⁡(7,3,21)
digits
1
取得整數的位數個數
digits(7321)
4
divisor
2
取得某數的第n個正因數
divisor(6,1),divisor(6,2),divisor(6,3),divisor(6,4)
1, 2, 3, 6
primedivisor
2
取得某數的第n個質因數
primedivisor(210,1),primedivisor(210,2),primedivisor(210,3),primedivisor(210,4)
2, 3, 5, 7
divisorsigma
2
計算特定整數的除數函數
divisorsigma(1,6)
12
σ1(6)
eulerphi
1
取得小於等於n的正整數中與n互質的數的數目
eulerphi(8)
4
φ(8)
findnext
向後尋找
2
尋找下一個符合條件的整數
findnext(:x↦x % 6 = 0;,6)
12
findlast
向前尋找
2
尋找前一個符合條件的整數
findlast(:x↦x % 6 = 0;,10)
6
初等函數
abs
1
計算一數與原點的歐幾里得距離
abs(-3)
3
|−3|
log
1
log(e)
1
ln⁡e
log
2
log(2,16)
4
log216
sgn
1
sgn(-7)
-1
sgn⁡(−7)
sqrt
1
計算一數的主平方根值
sqrt(16)
4
16
inverse
1
inverse(7)
0.14285714285714
7−1
exp
1
exp(π⋅i)
-1
eπi
數值修約
floor
1
向下取整
floor(7.3)
7
⌊7.3⌋
ceil
1
向上取整
ceil(7.3)
8
⌈7.3⌉
round
3
對一數進行四捨五入。第一參數為欲四捨五入的數字;第二參數為欲四捨五入的位數;第三參數為當數值修約底數非十進制時的底數。
round(π,6)
3.141593
round⁡(π,6)
trunc
2
對一數取截尾函數。第一參數為欲截尾的數字;第二參數為欲截尾的位數。
trunc(π,6)
3.141592
trunc⁡(π,6)
特殊函數
binomial
2
計算二項式係數。亦可以被理解為從n個相異元素中取出k個元素的方法數。
binomial(7,3)
35
(73)
factorial
1
計算一數的階乘
factorial(7)
5040
7!
gamma
1
計算一數的Γ函數
gamma(7)
720
Γ(7)
LambertW
2
計算一數的朗伯W函數
LambertW(1)
0.56714329040978
W(1)
代數
norm
2
計算一數或向量的範數
norm(3+4i,2)
5
‖3+4i‖2
summation
3
計算以函數表達之數列的總和。第一參數為數列首項;第二參數為數列末項;第三參數為用以表達數列的函數
summation(1,5,:x↦x^2;)
55
∑x=15x2
product
3
計算以函數表達之數列的連乘積。第一參數為數列首項;第二參數為數列末項;第三參數為用以表達數列的函數
product(1,5,:it↦it;)
120
∏i=15i
<不定>
不定
調用自行定義的函數,這些函數通常是ℂn↦ℂ或ℝn↦ℝ。以f:x↦x^2;;f(5)為例,其中f:x↦x^2;定義了函數f(x)=x2,並調用了函數f。函數的語法為以名稱起始並以冒號區隔函數名稱與定義(函數名稱可留空,但冒號不能省去),整個語法要以分號(;)結尾。位於映射符號(↦)前方為函數的變數或參數,後方為函數主體定義。函數可以有多個變數,但僅能有單個輸出;同時函數語法不建議使用嵌套結構,即不建議將函數定義內包含另一個函數的定義,但可以分開定義再行組合;此外,函數定義內不能包含分號,因為分號會被視為函數結尾。
f:x↦x^2;,f(5)
f, 25
f:x↦(x2);f(5)
ele
1
取得特定代數空間(如四元數)的第n個單位元,如ele(2)即e₂=j
ele(2)
j
e2
微積分
limit
3
計算一函數在x=x₀的極限。需注意此運算為估計,運算精度約僅有7位有效數字。第一參數為x₀;第二參數為逼近方向,1表示右極限、-1表示左極限、0表示一般的極限,此時若極限不存在則返回nan;第三參數為欲求極限的函數。
limit(0,1,:x↦div(x,x);)
1
limx→0+xx
diff
2
計算一函數在x=x₀的導數。需注意此運算為估計,運算精度約僅有7位有效數字。第一參數為欲求導數x=x₀的函數;第二參數為x₀。
diff(cos,div(2⋅pi,3))
-0.86602540379001
dcosdx|x=2π3
integral
4
計算一函數在從a到b的定積分∫abf(x)dx。需注意此運算為估計,運算精度約僅有7位有效數字,且積分範圍(a和b的距離)越大,精確度會越低。第一參數為a、第一參數為b、第三參數為欲求定積分的函數、第四參數為取樣數,若未填寫則使用預設值2000。
integral(0,π,:x↦sin(x);)
2
∫0πsin⁡xdx
複變
re
1
取得一數的實數部分。
re(7+3i)
7
Re⁡(7+3i)
im
1
取得一數的虛數部分
im(7+3i)
3
Im⁡(7+3i)
nonRealPart
1
取得一數的非實數部分
nonRealPart(7+3i+2j+k)
3i+2j+k
scalarPartQuaternion
1
取得四元數的純量部分
scalarPartQuaternion(7+3i+2j+k)
7
Scalar⁡(7+3i+2j+k)
vectorPartQuaternion
1
取得四元數的向量部分
vectorPartQuaternion(7+3i+2j+k)
3i+2j+k
Vector⁡(7+3i+2j+k)
arg
1
計算一複數的輻角
arg(3+7i)
1.1659045405098
arg⁡(3+7i)
cis
1
計算一數的純虛指數函數值
cis(π)
-1
cis⁡π
conjugate
1
conjugate(7+3i)
7-3i
7+3i‾
統計
average
不定
計算數組的算術平均數。
average(7,3,2,1)
3.25
average(7,3,2,1)
geoaverage
不定
計算數組的幾何平均數
geoaverage(7,3,2,1)
2.5457298950218
maximum
不定
計算數組的最大值
maximum(7,3,2,1)
7
max⁡(7,3,2,1)
minimum
不定
計算數組的最小值
minimum(7,3,2,1)
1
min⁡(7,3,2,1)
selectlist
不定
輸出數組中指定位置的元素。第一參數為要輸出的元素序號,第二參數之後為數組
selectlist(2,7,3,2,1)
3
σ
不定
計算數組的標準差
σ(7,3,2,1)
2.2776083947861
技術性
hide
隱藏運算式
不定
在math模式下隱藏指定運算式。本函數的結果為最後一個參數。可作為連續運算式的表達,所有已輸入的運算式皆會計算,但結果會隱藏。亦可用於自訂函數中的多運算式表達。
hide(y←5,x←7,x⋅y),5
35, 5
,5
exprs
一系列運算式
不定
在math模式時顯示所有運算式,運算結果為最後一則運算式。可作為連續運算式的表達,所有已輸入的運算式皆會計算。
exprs(y←5,x←7,x⋅y),5
35, 5
(y=def5,x=def7,xy),5
lastexpr
最後一則運算式
不定
在math模式時顯示最後一則運算式,運算結果也為最後一則運算式。可作為連續運算式的表達,所有已輸入的運算式皆會計算。
lastexpr(y←5,x←7,x⋅y),5
35, 5
xy,5
equalexpr
連續等式
不定
生成連續等式。
equalexpr(2+2,2*2)
4
2+2=2×2
call
呼叫函數
不定
呼叫一個函數。用於處理匿名函數或返回值是函數的情況。
call((:x,y↦sin(x)+cos(y);),π,0)
1
(x,y)↦(sin⁡x+cos⁡y)←(π,0)
<functionName>AtModule<ModulePageName>
不定
調用其他模塊的函數。須注意函數名稱必須是純英文、模組名稱也必須是純英文,不能有空格或其他符號。例如若需要呼叫Module:Element中的getAtomicWeight函數,則須表示為getAtomicWeightAtModuleElement。
getAtomicWeightAtModuleElement(10)
20.1797
range
指定範圍
3
指定一範圍,當一數落在該範圍外則視為非數(NaN)。第一參數為要判定的數,第二和第三參數分別為範圍的最小和最大值。
range(7,1,5),range(4,1,5)
nan, 4
if
3
指定特定條件下時的運算式。第一參數為條件、第二參數為條件為真時的運算式、第三參數為條件為假時的運算式。
if(3>2,1,0)
1
{1,if 3>20,otherwise
iff
函數型條件運算式
3
同if,不過參數可以是函數,條件成立時才會呼叫。
iff(3>2,:nil↦1;,:nil↦2;)
1
{1,if 3>22,otherwise
ifelse
條件運算式 if...else
不定
類似if,用法為ifelse(條件1, 條件1為真的結果, 條件2, 條件2為真的結果, ... , 條件n, 條件n為真的結果, 條件皆為假的結果)
ifelse(3>2,10,3<2,20,30)
10
{10,if 3>220,if 3<230,otherwise
ifelsef
函數型條件運算式 if...else
不定
同ifelse,不過參數可以是函數,條件成立時才會呼叫。
ifelsef(3>2,:nil↦10;,3<2,:nil↦20;,:nil↦30;)
10
{10,if 3>220,if 3<230,otherwise
random
2
取一個隨機數。若無指定參數,或參數中包含非數(NaN),則取0-1之間的隨機實數;若指定了參數1,則取1到參數1之間的隨機數;若指定了參數1與參數2,則取參數1到參數2之間的隨機數
random(1,10)
10
randomseed
設定隨機種子碼
1
將隨機數的種子碼設定為輸入的參數,並返回實際設定的種子碼。若輸入的參數非實數則用當前時間隨機產生種子碼。
randomseed(10)
10
三角函數
sin
1
計算一數的正弦值
sin(π)
0
sin⁡π
cos
1
計算一數的餘弦值
cos(π)
-1
cos⁡π
tan
1
計算一數的正切值
tan(π)
0
tan⁡π
cot
1
計算一數的餘切值
cot(div(π,2))
0
cot⁡π2
sec
1
計算一數的正割值
sec(π)
-1
sec⁡π
csc
1
計算一數的餘割值
csc(div(π,2))
1
csc⁡π2
asin
1
計算一數的反正弦值
asin(1)
1.5707963267949
arcsin⁡1
acos
1
計算一數的反餘弦值
acos(1)
0
arccos⁡1
atan
1
計算一數的反正切值
atan(1)
0.78539816339745
arctan⁡1
acot
1
計算一數的反餘切值
acot(1)
0.78539816339745
arccot⁡1
asec
1
計算一數的反正割值
asec(1)
0
arcsec⁡1
acsc
1
計算一數的反餘割值
acsc(1)
1.5707963267949
arccsc⁡1
sinh
1
計算一數的雙曲正弦值
sinh(π)
11.548739357258
sinh⁡π
cosh
1
計算一數的雙曲餘弦值
cosh(π)
11.591953275522
cosh⁡π
tanh
1
計算一數的雙曲正切值
tanh(π)
0.99627207622075
tanh⁡π
coth
1
計算一數的雙曲餘切值
coth(π)
1.0037418731973
coth⁡π
sech
1
計算一數的雙曲正割值
sech(π)
0.086266738334054
sech⁡π
csch
1
計算一數的雙曲餘割值
csch(π)
0.086589537530047
csch⁡π
asinh
1
計算一數的雙曲反正弦值
asinh(1)
0.88137358701954
arcsinh⁡1
acosh
1
計算一數的雙曲反餘弦值
acosh(1)
0
arccosh⁡1
atanh
1
計算一數的雙曲反正切值
atanh(0.5)
0.54930614433405
arctanh⁡0.5
acoth
1
計算一數的雙曲反餘切值
acoth(1.5)
0.80471895621705
arccoth⁡1.5
asech
1
計算一數的雙曲反正割值
asech(1)
0
arcsech⁡1
acsch
1
計算一數的雙曲反餘割值
acsch(1)
0.88137358701954
arccsch⁡1
cis
1
計算一數的純虛指數函數值
cis(π)
-1
cis⁡π
gd
1
計算一數的古德曼函數值
gd(e)
1.4390113159637
gd⁡e
arcgd
1
計算一數的反古德曼函數值
arcgd(1)
1.2261911708835
arcgd⁡1
cogd
1
計算一數的餘古德曼函數值
cogd(π)
0.08648169656714
cogd⁡π