摘要
Mathematica code
based on this code:
but it doesn't support newer version of Mathematica.
The modification is as follows, it can run on Mathematica 11:
Options[PlotComplex] = {Mesh -> None, MeshStyle -> Automatic,
WorkingPrecision -> MachinePrecision, PlotPoints -> 240};
PlotComplex[fz_, {z_, min_, max_}, OptionsPattern[]] :=
Module[{fn}, fn[gx_] := fz /. z -> gx;
RegionPlot[x^2 y^2 > 0, {x, min, max}, {y, min, max},
ColorFunction ->
Function[{x, y},
Hue[Mod[Arg[
fn[-max + max x - min x + I (-max + max y - min y)]],
2 \[Pi]]/(2 \[Pi]),
1/(1 + 0.3 Log[
Abs[fn[-max + max x - min x +
I (-max + max y - min y)]] + 1]),
1 - 1/(1.1 +
5 Log[Abs[
fn[-max + max x - min x + I (-max + max y - min y)]] +
1])]], PlotPoints -> OptionValue[PlotPoints],
Mesh -> OptionValue[Mesh], MeshStyle -> OptionValue[MeshStyle],
WorkingPrecision -> OptionValue[WorkingPrecision]]];
Inverse gamma function is modified from Afacc.cin, Fac.cin in mizugadro.mydns.jp, and changed into a Mathematica program as follows:
facp[x_] := (\!\(
\*SubscriptBox[\(\[PartialD]\), \(y\)]\ \(Factorial[y]\)\)) /. y -> x;
afacb[zl_] := Module[{
z0 = 0.461632144968362341262659542325721328468196204,
F0 = -0.12148629053584960809551455717769158215135617313,
c2 = 0.483836122723810585213722380854825370205628608,
p = 0.2090973242496979633924701135209125815611056,
q = 0.0565790271828431799463572817754001404669620,
A = 0.0008685913050832152753870514845664790993724,
B = 0.0002046727298252365296379380008904113017495
}, Module[{
t = (Log[zl] - F0)/c2,
}, Module[{
v = Sqrt[t]
}, v*(1.0 + v*(p + A*t))/(1. + v*(q + B*t)) + z0]]];
afacc[z_] := Module[{a, c, d},
a = afacb[z];
d = facp[a]; c = z - Factorial[a]; a = a + c/d;
If[Abs[c] < 10^(-16), a,
d = facp[a]; c = z - Factorial[a]; a = a + c/d;
If[Abs[c] < 10^(-16), a,
d = facp[a]; c = z - Factorial[a]; a = a + c/d;
If[Abs[c] < 10^(-16), a,
d = facp[a]; c = z - Factorial[a]; a = a + c/d;
If[Abs[c] < 10^(-16), a,a]]]]
];
(Note that this program call by Plot may require more than 64GB of RAM.)
This function is the inverse of factorial. We can use the following relationship between the factorial function and the Gamma function:
to plot the inverse Gamma function.
plot = PlotComplex[afacc[z]+1, {z, -8, 8}, PlotPoints -> 4000];
Show[plot, ImageSize -> {4000,4000}]
许可协议
我,本作品著作权人,特此采用以下许可协议发表本作品:
- 您可以自由地:
- 共享 – 复制、发行并传播本作品
- 修改 – 改编作品
- 惟须遵守下列条件:
- 署名 – 您必须对作品进行署名,提供授权条款的链接,并说明是否对原始内容进行了更改。您可以用任何合理的方式来署名,但不得以任何方式表明许可人认可您或您的使用。
- 相同方式共享 – 如果您再混合、转换或者基于本作品进行创作,您必须以与原先许可协议相同或相兼容的许可协议分发您贡献的作品。
https://creativecommons.org/licenses/by-sa/4.0CC BY-SA 4.0 Creative Commons Attribution-Share Alike 4.0 truetrue反伽瑪函數的複變函數圖形