shufubisheng 发表于 2018-1-28 21:24:08

伽马函数的经络图问题

1、伽马函数的经络图:即 ImΓ(x+yi)=0 与 ReΓ(x+yi)=0的综合图象。
2、提出此问题的意图:考察是否有此绘图能力的数学软件,准备下载。

shufubisheng 发表于 2018-1-28 22:28:35

1、伽马函数Γ(z)=Γ(x+yi)(z为复变量)
2、在复平面上,ImΓ(x+yi)=0是伽马函数的经线, ReΓ(x+yi)=0是伽马函数的络线。二者在一个复平面上,统称叫伽马函数的经络图。此图是伽马函数复变性质的基本要素,就象人体的经络一样,所以叫经络图。

kastin 发表于 2018-1-28 22:48:31

ContourPlot[{Im] == 0,
Re] == 0}, {x, -10, 10}, {y, -10, 10},
PlotPoints -> 60, MaxRecursion -> 3, ContourStyle -> {Red, Blue},
FrameLabel -> {x, y}, PlotLegends -> "Expressions"]

kastin 发表于 2018-1-29 13:35:38

验证高度为零的水平平面与Re(Gamma(z))、Im(Gamma(z))平面的交线,和上述结果一样。
Plot3D[{Re], 0}, {x, -5, 5}, {y, -2, 2},
PlotPoints -> 100,
PlotStyle -> {Directive, Directive]},
MeshFunctions -> {#3 &}, Mesh -> {{0}}, MeshStyle -> {Thick, Blue},
ClippingStyle -> None, AxesLabel -> Automatic,
PlotLegends -> "Expressions"]

Plot3D[{Im], 0}, {x, -5, 5}, {y, -2, 2},
PlotPoints -> 100,
PlotStyle -> {Directive, Directive]},
MeshFunctions -> {#3 &}, Mesh -> {{0}}, MeshStyle -> {Thick, Red},
ClippingStyle -> None, AxesLabel -> Automatic,
PlotLegends -> "Expressions"]

wayne 发表于 2018-1-29 14:03:03

又是不知道楼主想要什么,那我来化腐朽为神奇.
1) 线条:黑色的以及虚的线条表示实部,虚线用来起到间隔的作用,红色线条表示虚部
2)区域:类似于地图的等高线,不同的颜色代表不同的值,如右侧的柱状线标注.


n = 5; m = 0.1; Show[{DensityPlot[
   Re], {x, -n, n}, {y, -n, n},
   MeshStyle -> {Red, Dashed},
   MeshFunctions ->
    Function @@@ {{{x, y, z}, Re]}, {{x, y, z},
       Im]}},
   Mesh -> {Range[-1, 1, m], Range[-1, 1, m]},
   PlotLegends -> Automatic, PlotPoints -> 100],
DensityPlot], {x, -n, n}, {y, -n, n},
   MeshStyle -> {Black, Dashed},
   MeshFunctions -> {Re] &, Im] &},
   Mesh -> {Range[-1, 1, m], Range[-1, 1, m]},
   PlotLegends -> Automatic, PlotPoints -> 100]}]

kastin 发表于 2018-1-29 15:04:05

wayne 发表于 2018-1-29 14:03
又是不知道楼主想要什么,那我来化腐朽为神奇.

不知道楼主是否想要的是这张图,但这种图与3、4楼是不一样的。

因为楼上给出的是实部曲面和虚部曲面的合成图的平面投影图,而网格(Mesh)线其实是落在实部或者虚部曲面上,然后投影在xOy平面的。注意到如果输入的曲面对 {Re],Im]}中任意一个(比如第一个)出现无穷大(奇异),那么相应数据在绘制的时候就会被挖空,于是第二个部分(虚部)曲面即使是完全的,也会被删除——从而导致网格线出现断开。

反观Contour等高线是直接绘制在高度为零的平面上的,正如4楼分别用实部和虚部曲面与零高度平面相交演示的那样,最后得到蓝色和红色交线一起放在一个xOy平面上就是3楼的结果。

如果愿意,还可以产生一个更美丽的图,纹理更丰富,将虚曲面和实曲面,以及模长等高线都显示在内(比如亮度从深到浅表示Gamma模长大小,色彩浓度表示实部或虚部),但谁又知道这是否是他想要的结果呢?至少楼主的表达让人无法知道他到底想要什么样的图,他也不从文字上详细界定、也没有拿出样图(他所谓“正确的”图),所以只能凭感觉猜。或许他看到的所谓的正确结果,只是在某个地方看到的一张图而已,但那张图的到底是按照什么要求来绘制的,我们无从知晓。

kastin 发表于 2018-1-29 15:18:37

比如下面的图,亮线表示模长的等高线,色相变化表示相位角,黑线就是实部等高线和虚部等高线交错成的网格。

wayne 发表于 2018-1-29 15:54:36

重新来一遍.这个可能就是楼主想要的.

$x-y$是我随便加的,用来表示背景色,如果将Abs]作为背景色会将图像的多处掏空.

n = 6; m=0.1;DensityPlot[-x + y, {x, -n, n}, {y, -n, n},
MeshStyle -> {Directive, Black, Thickness[.001]],
   Directive, Red]},
MeshFunctions ->
Function @@@ {{{x, y, z}, Re]}, {{x, y, z},
   Im]}}, Mesh -> {Range[-1, 1, m], Range[-1, 1, m]},
PlotPoints -> 100]

wayne 发表于 2018-1-29 22:14:55

上面作的图纵然漂亮,但不科学,综合图只是简单的将实部和虚部的mesh曲线 机械的摆在一块,所谓机械,就是每根线的意义是独立的,而不具有整体的参考意义,因为右侧的毛刺其实是[虚部或实部] 函数值各自增长非常剧烈的地方。

我们应该以gamma函数的模Abs作为底板。借用前面3#的kastin的代码,略作修改如下:
注释1:白色实线是实部,黑色虚线是虚部,线越密集的地方代表梯度越大.变化越剧烈。
注释2:区域的颜色类似于地图的等高线,反应的是海拔高度,越冷表示gamma函数的模越小,越暖表示模越大。

-------------------------------------------------------------------
配色方案我找了很久,最后还是使用了默认的配色。谁感兴趣可以挨个试试,加上选项。PlotTheme -> "Monochrome"
-------------------------------------------------------------------

n = 6; m = 20; ContourPlot[
Abs], {x, -n, n}, {y, -n, n},
MeshStyle -> {Directive, White],
   Directive, Black, Dashing]},
MeshFunctions ->
Function @@@ {{{x, y, z}, Re]}, {{x, y, z},
   Im]}},
Mesh -> {Range[-n, n, n/m], Range[-n, n, n/m]}, PlotPoints -> 100,
MaxRecursion -> 1, ContourStyle -> Opacity,
PlotLegends -> Automatic]

zeroieme 发表于 2018-1-30 21:58:30

wayne 发表于 2018-1-29 22:14
上面作的图纵然漂亮,但不科学,综合图只是简单的将实部和虚部的mesh曲线 机械的摆在一块,所谓机械,就是 ...

跑了跑代码,配色不同,可能是软件版本问题。
因为说图片大,于是我尝试存为SVG,结果更大(12Mb)。看了SVG代码,是一堆同色polygon拼接,没有渐变。
……
页: [1] 2
查看完整版本: 伽马函数的经络图问题