(Translated by https://www.hiragana.jp/)
File:Lua Gamma Function in Chinese Wiki.svg - 维基百科,自由的百科全书 とべ转到内容ないよう

File:Lua Gamma Function in Chinese Wiki.svg

页面内容ないよう支持しじ其他语言。
這個文件來自維基共享資源
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん

原始げんしぶんけん(SVGぶんけん尺寸しゃくすん为539 × 482ぞうもとぶんけん大小だいしょう:10 KB)


摘要てきよう

描述
ちゅうぶん臺灣たいわん):w:zh:Module:Complex Number/FunctionsちゅうGamma Functionてき定義ていぎ方式ほうしき
  • ともぶんなり4部分ぶぶん
    • 中間ちゅうかん藍色あいいろ部分ぶぶん利用りようしたがえれい展開てんかいw:Reciprocal gamma functionまとたい勒級すう定義ていぎ
      展開てんかいいたりまえ30こう
      [1]
    • 兩側りょうがわたちばな紅色こうしょく部分ぶぶん利用りようちゅうあいだ藍色あいいろだいGamma Functionてきrecurrence relation定義ていぎようFor迴圈さく
    • 上下じょうげてき綠色みどりいろ部分ぶぶんそく使用しようRobert H. Windschitl (2002) しょ提出ていしゅつてき公式こうしき近似きんじ
      [2]
    • 最後さいご黃色おうしょく部分ぶぶんそく使用しようたいゆう斯特れい級數きゅうすうてき斯特れい公式こうしき近似きんじ
      [3]
      展開てんかいいたりまえ16こう ( らいみなもと : https://oeis.org/A001163 , https://oeis.org/A001164 )
    • 背景はいけい透明とうめい標記ひょうき (はいしろしょうあいだ) 部分ぶぶんそくためちょうぶく點數てんすうもうかそん範圍はんいかい出現しゅつげんinfあるnan
    • さいひだり邊土へんど黃色おうしょくそく可能かのう出現しゅつげんてい設計せっけいてきせい確度かくど小數しょうすう12而回でん0
にち
らいみなもと 自己じこてき作品さくひん
作者さくしゃ A2569875

许可协议

わがほん作品さくひん著作ちょさく权人,とく此采よう以下いか许可协议发表ほん作品さくひん
w:zh:知识共享
署名 相同方式共享
您可以自由じゆう
  • きょうとおる – 复制、发行并传播本はりもと作品さくひん
  • おさむあらためあらため作品さくひん
おもんみ遵守じゅんしゅれつ条件じょうけん
  • 署名しょめい – 您必须对作品さくひん进行署名しょめい提供ていきょう授权じょう款的链接,并说あかり原始げんし内容ないよう进行りょう更改こうかい。您可以用にんなん合理ごうりてき方式ほうしきらい署名しょめいただしとく以任なん方式ほうしき表明ひょうめい许可じん认可您或您的使用しよう
  • あいどう方式ほうしきどもとおる – 如果您再混合こんごう、转换あるものもと于本作品さくひん进行创作,您必须以与原よはらさき许可协议しょうどうあるあいけんようてき许可协议ぶん发您贡献てき作品さくひん

code

local Reciprocal_gamma_coeff = {1,0.577215664901532860607,-0.655878071520253881077,-0.0420026350340952355290,0.166538611382291489502,-0.0421977345555443367482,-0.00962197152787697356211,0.00721894324666309954240,-0.00116516759185906511211,-0.000215241674114950972816,0.000128050282388116186153,-0.0000201348547807882386557,-1.25049348214267065735e-6,1.13302723198169588237e-6,-2.05633841697760710345e-7,6.11609510448141581786e-9,5.00200764446922293006e-9,-1.18127457048702014459e-9,1.04342671169110051049e-10,7.78226343990507125405e-12,-3.69680561864220570819e-12,5.10037028745447597902e-13,-2.05832605356650678322e-14,-5.34812253942301798237e-15,1.22677862823826079016e-15,-1.18125930169745876951e-16,1.18669225475160033258e-18,1.41238065531803178156e-18,-2.29874568443537020659e-19,1.71440632192733743338e-20}
--https://oeis.org/A001163 、 https://oeis.org/A001164
local stirling_series_coeff = {1,0.0833333333333333333333333,0.00347222222222222222222222,-0.00268132716049382716049383,-0.000229472093621399176954733,0.000784039221720066627474035,0.0000697281375836585777429399,-0.000592166437353693882864836,-0.0000517179090826059219337058,0.000839498720672087279993358,0.0000720489541602001055908572,-0.00191443849856547752650090,-0.000162516262783915816898635,0.00640336283380806979482364,0.000540164767892604515180468,-0.0295278809456991205054407,-0.00248174360026499773091566,0.179540117061234856107699,0.0150561130400264244123842,-1.39180109326533748139915,-0.116546276599463200850734}
function p._gamma_high_imag(cal_z)
	local z = to_number(cal_z)
	if z ~= nil and math_lib.abs(math_lib.nonRealPart(z)) > 1 then
		local inv_z = math_lib.inverse(z)
		return math_lib.sqrt((math_lib.pi * 2) * inv_z) * math_lib.pow(z * math_lib.exp(-1) *
			math_lib.sqrt( (z * math_lib.sinh(inv_z) ) + math_lib.inverse(to_number(810) * z * z * z * z * z * z) ),z)
	end
	return nil
end
function p._gamma_morethen_lua_int(cal_z)
	local z = to_number(cal_z) - to_number(1)
	local lua_int_term = 18.1169 --FindRoot[ Factorial[ x ] == 2 ^ 53, {x, 20} ]
	if math_lib.abs(z) > (lua_int_term - 1) or (math_lib.re(z) < 0 and math_lib.abs(math_lib.nonRealPart(z)) > 1 ) then
		local sum = 1
		for i = 1, #stirling_series_coeff - 1 do
			local a, n = to_number(z), tonumber(i) local y, k, f = to_number(1), n, to_number(a)
			while k ~= 0 do 
				if k % 2 == 1 then y = y * f end 
				k = math.floor(k / 2); f = f * f
			end
			sum = sum + stirling_series_coeff[i + 1] * math_lib.inverse(y)
		end
		return math_lib.sqrt( (2 * math.pi) * z ) * math_lib.pow( z * math.exp(-1), z ) * sum
	end
	return nil
end
function p._gamma_abs_less1(cal_z)
	local z = to_number(cal_z)
	if math_lib.abs(z) <=1.001 then
		if math_lib.abs(math_lib.nonRealPart(z)) < 1e-14 and ( (math.abs(math_lib.re(z) - 1) < 1e-14) or (math.abs(math_lib.re(z) - 2) < 1e-14) ) then return to_number(1)end
		return math_lib.inverse(p._recigamma_abs_less1(z))
	end
	return nil
end
function p._recigamma_abs_less1(z)
	local result = to_number(0)
	for i=1,#Reciprocal_gamma_coeff do
		result = result + Reciprocal_gamma_coeff[i] * math_lib.pow(z,i)
	end
	return result
end
function p._gamma(cal_z)
	local z = to_number(cal_z)
	if math_lib.abs(math_lib.nonRealPart(z)) < 1e-14 and ((math_lib.re(z) < 0 or math.abs(math_lib.re(z)) < 1e-14)
		and math.abs(math.floor(math_lib.re(z)) - math_lib.re(z)) < 1e-14 ) then return tonumber("nan") end
	local pre_result = p._gamma_morethen_lua_int(z) or p._gamma_high_imag(z) or p._gamma_abs_less1(z)
	if pre_result then return pre_result end
	local real_check = math_lib.re(z)
	local loop_count = math.floor(real_check)
	local start_number, zero_flag = z - loop_count, false
	if math_lib.abs(start_number) <= 1e-14 then start_number = to_number(1);zero_flag = true end
	local result = math_lib.inverse(p._recigamma_abs_less1(start_number))
	if math_lib.abs(math_lib.nonRealPart(z)) < 1e-14 and ((math_lib.re(z) > 1e-14 )and math.abs(math.floor(math_lib.re(z)) - math_lib.re(z)) < 1e-14 ) then result = to_number(1)  end
	local j = to_number(start_number)
	for i=1,math.abs(loop_count) do
		if loop_count > 0 then result = result * j else result = result * math_lib.inverse(j-1) end
		if zero_flag==true and loop_count > 0 then zero_flag=false else if loop_count > 0 then j = j + 1 else j = j - 1 end end
	end
	if math_lib.abs(math_lib.nonRealPart(z)) < 1e-14 and ((math_lib.re(z) > 1e-14 )and math.abs(math.floor(math_lib.re(z)) - math_lib.re(z)) < 1e-14 ) then return math_lib.floor(result) end
	return result
end

Reference

  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 (2006). "Programmable Calculators: Calculators and the Gamma Function". Archived from the original on 2007-02-23.
  3. NIST Digital Library of Mathematical Functions.

说明

添加てんか一行文字以描述该文件所表现的内容

此文けんちゅう描述てき项目

描繪內容

ぶんけん历史

てん击某个日/时间查看对应时刻てきぶんけん

にち/时间缩⁠りゃく⁠图大小だいしょうよう备注
とうまえ2018ねん11月18にち (日)にち 17:512018年11月18日 (日) 17:51版本的缩略图539 × 482(10 KB)A2569875User created page with UploadWizard

以下いか3个页めん使用しよう本文ほんぶんけん

もとすうすえ