Datei:Lua Gamma Function in Chinese Wiki.svg
Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Erscheinungsbild

Größe der PNG-Vorschau dieser SVG-Datei: 539 × 482 Pixel. Weitere aus SVG automatisch erzeugte PNG-Grafiken in verschiedenen Auflösungen: 268 × 240 Pixel | 537 × 480 Pixel | 859 × 768 Pixel | 1.145 × 1.024 Pixel | 2.290 × 2.048 Pixel
Originaldatei (SVG-Datei, Basisgröße: 539 × 482 Pixel, Dateigröße: 10 KB)
Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.
Beschreibung
BeschreibungLua Gamma Function in Chinese Wiki.svg |
中文(臺灣):w:zh:Module:Complex Number/Functions中Gamma Function的定義方式
|
Datum | |
Quelle | Eigenes Werk |
Urheber | A2569875 |
Lizenz
Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:



Diese Datei ist lizenziert unter der Creative-Commons-Lizenz „Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 international“.
- Dieses Werk darf von dir
- verbreitet werden – vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden
- neu zusammengestellt werden – abgewandelt und bearbeitet werden
- Zu den folgenden Bedingungen:
- Namensnennung – Du musst angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade dich oder deine Nutzung besonders.
- Weitergabe unter gleichen Bedingungen – Wenn du das Material wiedermischst, transformierst oder darauf aufbaust, musst du deine Beiträge unter der gleichen oder einer kompatiblen Lizenz wie das Original verbreiten.
code
Weitere Informationen: w:zh:Module:Complex Number/Functions
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
- ↑ 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. - ↑ Viktor T. Toth (2006). "Programmable Calculators: Calculators and the Gamma Function". Archived from the original on 2007-02-23.
- ↑ NIST Digital Library of Mathematical Functions.
Kurzbeschreibungen
Ergänze eine einzeilige Erklärung, was diese Datei darstellt.
In dieser Datei abgebildete Objekte
Motiv
Einige Werte ohne einen Wikidata-Eintrag
18. November 2018
image/svg+xml
Dateiversionen
Klicke auf einen Zeitpunkt, um diese Version zu laden.
Version vom | Vorschaubild | Maße | Benutzer | Kommentar | |
---|---|---|---|---|---|
aktuell | 19:51, 18. Nov. 2018 | ![]() | 539 × 482 (10 KB) | A2569875 | User created page with UploadWizard |
Dateiverwendung
Keine Seiten verwenden diese Datei.
Globale Dateiverwendung
Die nachfolgenden anderen Wikis verwenden diese Datei:
- Verwendung auf zh.wikipedia.org
Metadaten
Diese Datei enthält weitere Informationen (beispielsweise Exif-Metadaten), die in der Regel von der Digitalkamera oder dem verwendeten Scanner stammen. Durch nachträgliche Bearbeitung der Originaldatei können einige Details verändert worden sein.
Breite | 538.58px |
---|---|
Höhe | 481.89px |