数学研发论坛

 找回密码
 欢迎注册
查看: 1198|回复: 57

[悬赏] 伽马函数的经络图问题

[复制链接]
发表于 2018-1-28 21:24:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

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

点评

什么叫经络图,什么叫综合图象?给个概念的解释呗  发表于 2018-1-28 22:08
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2018-1-28 22:28:35 | 显示全部楼层
1、伽马函数Γ(z)=Γ(x+yi)(z为复变量)
2、在复平面上,ImΓ(x+yi)=0是伽马函数的经线, ReΓ(x+yi)=0是伽马函数的络线。二者在一个复平面上,统称叫伽马函数的经络图。此图是伽马函数复变性质的基本要素,就象人体的经络一样,所以叫经络图。

点评

综合图象:二者图象在一个复平面上。  发表于 2018-1-28 22:31
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-28 22:48:31 | 显示全部楼层
  1. ContourPlot[{Im[Gamma[x + I y]] == 0,
  2.   Re[Gamma[x + I y]] == 0}, {x, -10, 10}, {y, -10, 10},
  3. PlotPoints -> 60, MaxRecursion -> 3, ContourStyle -> {Red, Blue},
  4. FrameLabel -> {x, y}, PlotLegends -> "Expressions"]
复制代码

gammac.png

点评

@我只看到你只出问题,没有给出任何实质解答方法或者标准答案,这叫做“教”?查查字典去,看看“教”的定义是什么,或者问你的儿子这个字是什么意思。  发表于 2018-1-29 17:12
免费教你懂一些经络知识,你倒牛逼————恩将仇报!  发表于 2018-1-29 16:30
那你说说:ImΓ(x+yi)=0 与 ReΓ(x+yi)=0 是啥意思?  发表于 2018-1-29 15:58
@shufubisheng,我根本没说我懂,是你自作多情。大家都是只是在猜你的话的意思,猜得不对干嘛发火,劝你反省一下自己的表达,或者跟你孙子一起去上语文课学好语言再上网发言。  发表于 2018-1-29 15:39
你不懂可不要装懂!  发表于 2018-1-29 15:34
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-29 13:35:38 | 显示全部楼层
验证高度为零的水平平面与Re(Gamma(z))、Im(Gamma(z))平面的交线,和上述结果一样。
  1. Plot3D[{Re[Gamma[x + I y]], 0}, {x, -5, 5}, {y, -2, 2},
  2. PlotPoints -> 100,
  3. PlotStyle -> {Directive[Green], Directive[Red, Opacity[0.8]]},
  4. MeshFunctions -> {#3 &}, Mesh -> {{0}}, MeshStyle -> {Thick, Blue},
  5. ClippingStyle -> None, AxesLabel -> Automatic,
  6. PlotLegends -> "Expressions"]

  7. Plot3D[{Im[Gamma[x + I y]], 0}, {x, -5, 5}, {y, -2, 2},
  8. PlotPoints -> 100,
  9. PlotStyle -> {Directive[Cyan], Directive[Orange, Opacity[0.8]]},
  10. MeshFunctions -> {#3 &}, Mesh -> {{0}}, MeshStyle -> {Thick, Red},
  11. ClippingStyle -> None, AxesLabel -> Automatic,
  12. PlotLegends -> "Expressions"]
复制代码

点评

@shufubisheng,论坛空间有限,不能传太多,有软件粘贴代码回车运行就能得到图,一样省事  发表于 2018-1-29 16:13
只见复制代码、不见图。  发表于 2018-1-29 15:46
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-29 14:03:03 | 显示全部楼层
又是不知道楼主想要什么,那我来化腐朽为神奇.
1) 线条:黑色的以及虚的线条表示实部,虚线用来起到间隔的作用,红色线条表示虚部
2)区域:类似于地图的等高线,不同的颜色代表不同的值,如右侧的柱状线标注.


  1. n = 5; m = 0.1; Show[{DensityPlot[
  2.    Re[Gamma[x + I y]], {x, -n, n}, {y, -n, n},
  3.    MeshStyle -> {Red, Dashed},
  4.    MeshFunctions ->
  5.     Function @@@ {{{x, y, z}, Re[Gamma[x + I y]]}, {{x, y, z},
  6.        Im[Gamma[x + I y]]}},
  7.    Mesh -> {Range[-1, 1, m], Range[-1, 1, m]},
  8.    PlotLegends -> Automatic, PlotPoints -> 100],
  9.   DensityPlot[Im[Gamma[x + I y]], {x, -n, n}, {y, -n, n},
  10.    MeshStyle -> {Black, Dashed},
  11.    MeshFunctions -> {Re[Gamma[#1 + I #2]] &, Im[Gamma[#1 + I #2]] &},
  12.    Mesh -> {Range[-1, 1, m], Range[-1, 1, m]},
  13.    PlotLegends -> Automatic, PlotPoints -> 100]}]
复制代码


点评

为了节省论坛空间,已经将图片删除,代码仍然留着。  发表于 2018-1-29 22:49
是画图的代码出现的问题.跟理解没关系呀.见下面的8楼  发表于 2018-1-29 16:27
与3楼一致?——————黑色的以及虚的线条表示实部,虚线用来起到间隔的作用,红色线条表示虚部。  发表于 2018-1-29 16:15
此图虽漂亮,但有好多问题表达不清楚。  发表于 2018-1-29 15:55
有道理呢  发表于 2018-1-29 15:24

评分

参与人数 2鲜花 +6 收起 理由
kastin + 3 是否可以透明化得到较好的效果,免得实部虚.
mathe + 3 漂亮

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-29 15:04:05 | 显示全部楼层
wayne 发表于 2018-1-29 14:03
又是不知道楼主想要什么,那我来化腐朽为神奇.


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

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

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

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

点评

@shufubisheng,Im(x+yi)=0等价y=0,Re(x+yi)=0等价x=0,wayne给出的是这种含义下y或x分别取不同值的图网格图  发表于 2018-1-29 16:02
那你说说:ImΓ(x+yi)=0 与 ReΓ(x+yi)=0 是啥意思?  发表于 2018-1-29 15:50
恩恩  发表于 2018-1-29 15:14
wayn已经将挖空部分补全,现在和3楼结果是一致的  发表于 2018-1-29 15:07
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-29 15:18:37 | 显示全部楼层
比如下面的图,亮线表示模长的等高线,色相变化表示相位角,黑线就是实部等高线和虚部等高线交错成的网格。
gammaz.png

点评

@zeroieme,谢谢。确实,颜色实体代表东西与其给人的感觉是有细微差别的,有对比时更严重,比如网上有一些颜色错觉的例子就是如此。这可能是人脑内部施加的一种偏差吧,更适应生存。  发表于 2018-1-29 18:13
@kastin,因为你的配色方案不是均匀色彩空间,参考Helmholtz–Kohlrausch effect : https://en.wikipedia.org/wiki/Helmholtz%E2%80%93Kohlrausch_effect https://en.wikipedia.org/wiki/OSA-UCS  发表于 2018-1-29 17:36
@shufubisheng,你能说出这种话,说明你没有认真看6楼文字。上面说了亮度表示模长大小,颜色表示相位。颜色有浓度和亮度两个属性。亮度高了显得发白,亮度低发暗;浓度高鲜艳,浓度低就灰暗,这是基本色彩常识  发表于 2018-1-29 16:07
此图虽有点意思,但看到模糊一片。  发表于 2018-1-29 15:54
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-29 15:54:36 | 显示全部楼层
重新来一遍.这个可能就是楼主想要的.

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

  1. n = 6; m=0.1;DensityPlot[-x + y, {x, -n, n}, {y, -n, n},
  2. MeshStyle -> {Directive[Opacity[1], Black, Thickness[.001]],
  3.    Directive[Opacity[1], Red]},
  4. MeshFunctions ->
  5.   Function @@@ {{{x, y, z}, Re[Gamma[x + I y]]}, {{x, y, z},
  6.      Im[Gamma[x + I y]]}}, Mesh -> {Range[-1, 1, m], Range[-1, 1, m]},
  7.   PlotPoints -> 100]
复制代码

1.png

点评

啊!此图更加漂亮呀!可以说是此论坛最漂亮的数学图象。伽马函数在图象左面部分的性质已经很清楚了,但在图象右面部分的性质不是很清楚。能否作一幅ReZ>1的图象?  发表于 2018-1-29 20:12
这个挺好的,估计他想要的就是这个,这应该叫实部虚部等值线图(1楼描述的却不是这个),或者正交网格图(勉强可以叫“经纬图”,因为解析函数是保角映射,保持网格正交)。  发表于 2018-1-29 16:10

评分

参与人数 1威望 +1 金币 +1 贡献 +1 鲜花 +1 收起 理由
shufubisheng + 1 + 1 + 1 + 1 赞一个!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-29 22:14:55 | 显示全部楼层
上面作的图纵然漂亮,但不科学,综合图只是简单的将实部和虚部的mesh曲线 机械的摆在一块,所谓机械,就是每根线的意义是独立的,而不具有整体的参考意义,因为右侧的毛刺其实是[虚部或实部] 函数值各自增长非常剧烈的地方。

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

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

  1. n = 6; m = 20; ContourPlot[
  2. Abs[Gamma[x + I y]], {x, -n, n}, {y, -n, n},
  3. MeshStyle -> {Directive[Opacity[1], White],
  4.    Directive[Opacity[1], Black, Dashing[0.003]]},
  5. MeshFunctions ->
  6.   Function @@@ {{{x, y, z}, Re[Gamma[x + I y]]}, {{x, y, z},
  7.      Im[Gamma[x + I y]]}},
  8. Mesh -> {Range[-n, n, n/m], Range[-n, n, n/m]}, PlotPoints -> 100,
  9. MaxRecursion -> 1, ContourStyle -> Opacity[0],
  10. PlotLegends -> Automatic]
复制代码


1.png

点评

恩恩.暂时先这样了,不搞了...  发表于 2018-1-30 15:35
可以将结果Normal一下,修改线条颜色数据,用另一套与底色不同的Tones来表示等值线的数值高低  发表于 2018-1-30 11:23
能否介绍一下你使用的是啥软件?下载地址?  发表于 2018-1-29 23:44
^_^, 各取所需。 首先很感谢你提供这么好的题材。其次,如有个性化的需求,最好的解决方案还是自己动手,丰衣足食,您是时候下载一个软件来玩玩了,对吧,呵呵  发表于 2018-1-29 23:26
图象是为研究函数性质服务的。现在是为了显示虚实等值线的大概分布,只要象征性地画几条就可以了。你把等值线画得那么密集,右面部分出现一片空白,结果是适得其反————为了梯度,失去风度。  发表于 2018-1-29 23:20
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-30 21:58:30 | 显示全部楼层
wayne 发表于 2018-1-29 22:14
上面作的图纵然漂亮,但不科学,综合图只是简单的将实部和虚部的mesh曲线 机械的摆在一块,所谓机械,就是 ...

跑了跑代码,配色不同,可能是软件版本问题。
因为说图片大,于是我尝试存为SVG,结果更大(12Mb)。看了SVG代码,是一堆同色polygon拼接,没有渐变。
……

点评

你是哪个版本?要不升级一下,新版本总得有新的道理,^_^  发表于 2018-1-31 09:52
我的版本是11.2,导出来有25M  发表于 2018-1-31 09:47
@wayne 你可以图形保存为SVG格式看看有多大吗?  发表于 2018-1-30 22:57
连PlotTheme指令都没有  发表于 2018-1-30 22:56
PlotTheme -> "Default" 也不一样么  发表于 2018-1-30 22:34
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2019-10-18 15:29 , Processed in 0.071881 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表