我该如何制作一个Mathematica图形,以复制sage中complex_plot的行为?即
我知道有其他方法来可视化复杂函数 - 比如Plot3D文档中的“整洁示例”,但那不是我想要的。
此外,我确实有下面的一种解决方案(实际上已用于生成一些在维基百科中使用的图形),但它定义了一个相当低级的函数,我认为应该可以使用高级函数如
...取一个单变量的复杂函数,并将函数的输出绘制在指定的xrange和yrange上,如下所示。输出的大小由亮度表示(零为黑色,无穷为白色),而参数则由色调表示(红色为正实数,随着参数的增加而逐渐增加,从橙色、黄色等颜色开始)。
这里是一个例子(从Neutral Drifts的M. Hampton中窃取)zeta函数的绝对值轮廓叠加:
ContourPlot
和DensityPlot
"潜在地通过相位着色"来可视化复杂函数。但问题是在这两种类型的图中,ColorFunction
只接受一个变量等于该点处的轮廓或密度 - 因此似乎不可能在绘制绝对值时将其着色为相位/参数。请注意,这不是Plot3D
的问题,其中所有3个参数(x,y,z)
都传递给ColorFunction
。我知道有其他方法来可视化复杂函数 - 比如Plot3D文档中的“整洁示例”,但那不是我想要的。
此外,我确实有下面的一种解决方案(实际上已用于生成一些在维基百科中使用的图形),但它定义了一个相当低级的函数,我认为应该可以使用高级函数如
ContourPlot
或DensityPlot
来实现。不过这并不妨碍您提供使用较低级别构造的最喜欢的方法!
编辑:Mathematica杂志上有一些Michael Trott写的好文章,涉及以下内容:
可视化代数函数的黎曼曲面IIa、IIb、IIc、IId。
可视化黎曼曲面演示。
黎曼曲面重返(针对Mma v6的更新)
当然,Michael Trott也写了Mathematica指南书,其中包含许多精美的图形,但似乎已经落后于加速的Mathematica发布计划!
x
参数,并且对应于每个点的密度。请参阅 ColorFunction 文档中“更多信息”部分的第一个条目。奇怪的是它没有产生警告... - Simonx
给出了任何信息,如果您使用ColorFunction->Function[{x,y,z}, Hue@(y/maxy)]
,您只会得到灰色。但是,使用x/maxx
会给你带来一些东西。 - rcollyer