模組:Complex Number/Functions/doc

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

本模組定義了一些可供Module:Complex_Number系列模組使用的擴充函數。

使用條件

要能使用此函數,必須先輸入一個數字類別資料結構以及其專用的math程式庫

使用方法

  1. 初始化任何符合此擴充函數庫使用條件的數學庫
    • local 自訂函數庫名稱 = require("Module:Complex Number").函數庫名稱.init()
      Module:Complex Number的cmath為例:
      local cmath = require("Module:Complex Number").cmath.init()
  2. 初始化本擴充函數庫
    • 自訂函數庫名稱 = require("Module:Complex Number/Functions")._init(自訂函數庫名稱, 函數庫對應的數字建構函式)
      以上述之Module:Complex Number的cmath為例:
      cmath = require("Module:Complex Number/Functions")._init(cmath, cmath.constructor)
  3. 使用擴充函數庫中的函數
    例如:
    print(cmath.factorial(5), cmath.sec(cmath.pi/4))
    輸出:120    1.4142135623731

模組中的函數

三角函數擴充

擴充了原本未定義的三角函數
如sec(正割)、 csc(餘割)、 sech(雙曲正割)、 csch(雙曲餘割)、 asec(反正割)、 acsc(反餘割)、asech(反雙曲正割)、 acsch(反雙曲餘割)、 gd(古德曼函數) 、 cogd(餘古德曼函數)、 arcgd(反古德曼函數)
功能
輸入一個複數x,回傳其指定三角函數的值

range(x,min,max)

功能
只取函數的某一段
若x位於min,max區間內,則回傳x,否則回傳NaN

統計函

定義了一些統計函數
如minimum(最小值)、 maximum(最大值)、 average(平均值)、 geoaverage(幾何平均值)、 var(變異數)、 σ(標準差
功能
輸入一系列數字,回傳其指定的統計值

diff(function, x0)

功能
輸入一個函數,計算該函數在x=x0導數
實作方式
數值微分#高階方法

integral(a, b, function, step)

功能
輸入一個函數,計算從a到b的定積分,並以step為求黎曼和的間距
實作方式
en:Boole's_rule

limit(x0, way, function)

功能
輸入一個函數,計算從way方向向x0逼近的極限。
其中,way=1為右極限、way=-1為左極限、way=0為不分方向的極限,若左極不等於右極回傳NaN

條件式

常數條件輸入
if(條件, 為真時, 為假時)、ifelse(條件1, 條件1為真, 條件2, 條件2為真, ... ,皆為假)
代表條件在傳入函數時已經完成計算
函數條件輸入
iff(條件函數, 為真時, 為假時)、ifelsef(條件函數1, 條件1為真, 條件函數2, 條件2為真, ... ,皆為假)
代表條件在傳入函數時尚未計算,判斷的當下才計算。所傳入的函數需要是無參數函數,若有參數也只會被忽略。用於定義遞迴下的條件

factorial(x)

功能
輸入一個複數x,回傳其階乘
即factorial(x) 
實作方式
參考#gamma(x)

binomial(n,k)

功能
計算二項式係數
也可以理解為從n個元素中取出k個元素的方法數

gcd(a,b,c,...)

功能
計算a,b,c,....等數字的最大公因數,支援複數。
實作方式
輾轉相除法

lcm(a,b,c,...)

功能
計算a,b,c,....等數字的最小公倍數,支援複數。
實作方式
最小公倍數#計算方法

gamma(x)

功能
輸入一個複數x,回傳其Γ函數
 
伽瑪函數的實作方式
精確度
有效數字14位
運算效率
平均一次運算耗時約0.3582毫秒(3.6×10−4 s、一秒可計算2,700+次),測試於2018年11月19日 (一) 06:39 (UTC)2022年4月12日 (二) 17:54 (UTC)
實作方式
  • 共分成4個部分
    • 中間藍色部分是利用從零展開倒數伽瑪函數泰勒級數定義
      展開至前30項
       
       [1]
    • 兩側橘紅色部分是利用中間藍色代Γ函數遞迴關係式定義,並用For迴圈實作
       
       
    • 上下的綠色部分則是使用Robert H. Windschitl (2002) 所提出的公式近似
       [2]
    • 最後黃色部分則是使用帶有斯特靈級數的斯特靈公式近似
       [3]
      展開至前16項 (來源:(OEIS數列A001163)、(OEIS數列A001164))
    • 而背景透明標記 (灰白相間) 部分則為超出浮點數可儲存範圍,會溢位或出現infnan
    • 最左邊土黃色則是可能出現低於設計的精確度小數12位而回傳0

參考文獻

  1. ^ Wrench, J.W. (1968). Concerning two series for the gamma function. Mathematics of Computation, 22, 617–626. and
    Wrench, J.W. (1973). Erratum: Concerning two series for the gamma function. Mathematics of Computation, 27, 681–682.
  2. ^ Viktor T. Toth. "Programmable Calculators: Calculators and the Gamma Function". 2006. (原始內容存檔於2007-02-23). 
  3. ^ F. W. J. Olver, A. B. Olde Daalhuis, D. W. Lozier, B. I. Schneider, R. F. Boisvert, C. W. Clark, B. R. Miller, and B. V. Saunders, eds. NIST Digital Library of Mathematical Functions.