跳转到内容

模组: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)=n!
实作方式
参考#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Γ(z)=z+γz2+(γ22−π212)z3+⋯
      an=a2an−1−∑j=2n−1(−1)jζ(j)an−jn−1[1]
    • 两侧橘红色部分是利用中间蓝色代Γ函数的递回关系式定义,并用For回圈实作
      Γ(x+1)=xΓ(x)
      Γ(x−1)=Γ(x)x−1
    • 上下的绿色部分则是使用Robert H. Windschitl (2002) 所提出的公式近似
      Γ(z)≈2πz(zezsinh⁡1z+1810z6)z[2]
    • 最后黄色部分则是使用带有斯特灵级数的斯特灵公式近似
      n!=2πn(ne)n(1+112n+1288n2−13951840n3−5712488320n4+⋯).[3]
      展开至前16项 (来源:(OEIS数列A001163)、(OEIS数列A001164))
    • 而背景透明标记 (灰白相间) 部分则为超出浮点数可储存范围,会溢位或出现inf或nan
    • 最左边土黄色则是可能出现低于设计的精确度小数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.